budowanie aplikacji php bez użycia frameworków
Post on 13-Apr-2017
35 Views
Preview:
TRANSCRIPT
Michał ŁukaszewskiIntelSoftware Engineer
Budowanie aplikacji PHP
bez użycia frameworków
Plan historyjki
• Smuteczki
• Mądrzenie się
• Wnioski
Smuteczki
Czemu się czepiam frameworków?
Problemy jakie rozwiązują
Rapid Development
Te, które same stworzyły
Problemy jakie stwarzają
• Mnóstwo kodu
Problemy jakie stwarzają
• Mnóstwo kodu
• Korzystasz z kodu, którego nie rozumiesz
• Opcache ma limity
• Zaczynasz wykorzystywać rozwiązania, które „dostałeś”, a nie tych, których
na danym etapie projektu naprawdę potrzebujesz
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
Casus Left-pad gate
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
• Latami utrzymywana zgodność ze starszymi wersjami środowisk
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
• Latami utrzymywana zgodność ze starszymi wersjami środowisk
• Są coraz wolniejsze i nikogo to nie obchodzi
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
• Latami utrzymywana zgodność ze starszymi wersjami środowisk
• Są coraz wolniejsze i nikogo to nie obchodzi
• Brak kontroli nad bezpieczeństwem (np. OWASP A9)
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
• Latami utrzymywana zgodność ze starszymi wersjami środowisk
• Są coraz wolniejsze i nikogo to nie obchodzi
• Brak kontroli nad bezpieczeństwem (np. OWASP A9)
• Zależności jego zależności
Problemy jakie stwarzają
• Mnóstwo kodu
• Mnóstwo zależności
• Mnóstwo dokumentacji kiepskiej dokumentacji
• Opóźnione aktualizacje komponentów
• Latami utrzymywana zgodność ze starszymi wersjami środowisk
• Są coraz wolniejsze i nikogo to nie obchodzi
• Brak kontroli nad bezpieczeństwem (np. OWASP A9)
• Zależności jego zależności
• Degeneracja umysłowa programistów
Wojny frameworków
Programista frameworka
• Dopasowuje świat do frameworka
• Spędza godziny wertując dokumentację frameworka
• Która i tak go okłamuje, więc potem zamęcza innych na grupach dyskusyjnych
• Każde rozwiązanie czy architektura musi pasować do frameworka
• Coś co nie jest w bundlu – nie istnieje
• Rozwiązuje problemy stwarzane przez framework, a nie przypadki biznesowe.
• Święcie wierzy, że reszta świata się myli
Mądrzenie się
Czego tak naprawdę potrzebujemy
Czego tak naprawdę potrzebujemy
Router/Dispatcher
Czego tak naprawdę potrzebujemy
Router/Dispatcher Responder/Renderer
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
Serializers
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
e
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Cache
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Cache
Cache
Warstwy, ogry mają warstwy
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Cache
Cache
Cache
Architektura über alles
Business requirements
Architecture Implementation
Elastyczność
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Cache
Cache
Cache
Elastyczność
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source
SerializersValidators
Ca
ch
eC
ac
he
Cache
Cache
Cache
Elastyczność
Router/Dispatcher Responder/Renderer
Magic/Unicorns/Fairies
Data Source A
SerializersValidators
Ca
ch
eC
ac
he
Cache
Cache
Cache
Data Source B
Elastyczność
http://getprooph.org
Wnioski
Ale...
Tak, zbudowaliście framework
Tak, zbudowaliście framework
• Minimalny
• Oparty ma architekturze, którą rozumiecie
• Bo dopasowanej bo biznesu, któremu ma służyć
• Optymalny dla Waszych możliwości technicznych i poznawczych
Nigdy więcej frameworka?
Nigdy więcej frameworka?
Business requirements
Architecture Implementation
Nigdy więcej frameworka?
Business requirements
Architecture Implementation
Architecture Implementation
Nigdy więcej frameworka?
Implementation
Framework
Microframework
Full framework
Specialiazedframework
(i.e. Magento)
Custom Do you best
Nigdy więcej frameworka?
• Nie odkrywaj koła na nowo
• Potrzeby biznesowe są ważniejsze od mojej strefy komfortu
• Za pomocą dużego frameworka można zrobić wszystko
• Ale nie wszystko jej sens
• Samodzielne myślenie boli tylko nie przyzwyczajonych
&Michał ŁukaszewskiIntelSoftware Engineer
top related