46
Michał Łukaszewski Intel Software Engineer Budowanie aplikacji PHP bez użycia frameworków

Budowanie aplikacji PHP bez użycia frameworków

Embed Size (px)

Citation preview

Page 1: Budowanie aplikacji PHP bez użycia frameworków

Michał ŁukaszewskiIntelSoftware Engineer

Budowanie aplikacji PHP

bez użycia frameworków

Page 2: Budowanie aplikacji PHP bez użycia frameworków

Plan historyjki

• Smuteczki

• Mądrzenie się

• Wnioski

Page 3: Budowanie aplikacji PHP bez użycia frameworków

Smuteczki

Page 4: Budowanie aplikacji PHP bez użycia frameworków

Czemu się czepiam frameworków?

Page 5: Budowanie aplikacji PHP bez użycia frameworków

Problemy jakie rozwiązują

Rapid Development

Te, które same stworzyły

Page 6: Budowanie aplikacji PHP bez użycia frameworków

Problemy jakie stwarzają

• Mnóstwo kodu

Page 7: Budowanie aplikacji PHP bez użycia frameworków

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

Page 8: Budowanie aplikacji PHP bez użycia frameworków

Problemy jakie stwarzają

• Mnóstwo kodu

• Mnóstwo zależności

Casus Left-pad gate

Page 9: Budowanie aplikacji PHP bez użycia frameworków

Problemy jakie stwarzają

• Mnóstwo kodu

• Mnóstwo zależności

• Mnóstwo dokumentacji

Page 10: Budowanie aplikacji PHP bez użycia frameworków

Problemy jakie stwarzają

• Mnóstwo kodu

• Mnóstwo zależności

• Mnóstwo dokumentacji kiepskiej dokumentacji

Page 11: Budowanie aplikacji PHP bez użycia frameworków

Problemy jakie stwarzają

• Mnóstwo kodu

• Mnóstwo zależności

• Mnóstwo dokumentacji kiepskiej dokumentacji

• Opóźnione aktualizacje komponentów

Page 12: Budowanie aplikacji PHP bez użycia frameworkó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

Page 13: Budowanie aplikacji PHP bez użycia frameworkó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

• Są coraz wolniejsze i nikogo to nie obchodzi

Page 14: Budowanie aplikacji PHP bez użycia frameworkó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

• Są coraz wolniejsze i nikogo to nie obchodzi

• Brak kontroli nad bezpieczeństwem (np. OWASP A9)

Page 15: Budowanie aplikacji PHP bez użycia frameworkó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

• Są coraz wolniejsze i nikogo to nie obchodzi

• Brak kontroli nad bezpieczeństwem (np. OWASP A9)

• Zależności jego zależności

Page 16: Budowanie aplikacji PHP bez użycia frameworkó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

• 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

Page 17: Budowanie aplikacji PHP bez użycia frameworków

Wojny frameworków

Page 18: Budowanie aplikacji PHP bez użycia 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

Page 19: Budowanie aplikacji PHP bez użycia frameworków

Mądrzenie się

Page 20: Budowanie aplikacji PHP bez użycia frameworków

Czego tak naprawdę potrzebujemy

Page 21: Budowanie aplikacji PHP bez użycia frameworków

Czego tak naprawdę potrzebujemy

Router/Dispatcher

Page 22: Budowanie aplikacji PHP bez użycia frameworków

Czego tak naprawdę potrzebujemy

Router/Dispatcher Responder/Renderer

Page 23: Budowanie aplikacji PHP bez użycia frameworków

Warstwy, ogry mają warstwy

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Page 24: Budowanie aplikacji PHP bez użycia frameworków

Warstwy, ogry mają warstwy

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source

Page 25: Budowanie aplikacji PHP bez użycia frameworków

Warstwy, ogry mają warstwy

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source

Serializers

Page 26: Budowanie aplikacji PHP bez użycia frameworków

Warstwy, ogry mają warstwy

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source

SerializersValidators

Page 27: Budowanie aplikacji PHP bez użycia frameworków

Warstwy, ogry mają warstwy

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source

SerializersValidators

Ca

ch

e

Page 28: Budowanie aplikacji PHP bez użycia frameworków

Warstwy, ogry mają warstwy

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source

SerializersValidators

Ca

ch

eC

ac

he

Page 29: Budowanie aplikacji PHP bez użycia frameworków

Warstwy, ogry mają warstwy

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source

SerializersValidators

Ca

ch

eC

ac

he

Cache

Page 30: Budowanie aplikacji PHP bez użycia frameworków

Warstwy, ogry mają warstwy

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source

SerializersValidators

Ca

ch

eC

ac

he

Cache

Cache

Page 31: Budowanie aplikacji PHP bez użycia frameworków

Warstwy, ogry mają warstwy

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source

SerializersValidators

Ca

ch

eC

ac

he

Cache

Cache

Cache

Page 32: Budowanie aplikacji PHP bez użycia frameworków

Architektura über alles

Business requirements

Architecture Implementation

Page 33: Budowanie aplikacji PHP bez użycia frameworków

Elastyczność

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source

SerializersValidators

Ca

ch

eC

ac

he

Cache

Cache

Cache

Page 34: Budowanie aplikacji PHP bez użycia frameworków

Elastyczność

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source

SerializersValidators

Ca

ch

eC

ac

he

Cache

Cache

Cache

Page 35: Budowanie aplikacji PHP bez użycia frameworków

Elastyczność

Router/Dispatcher Responder/Renderer

Magic/Unicorns/Fairies

Data Source A

SerializersValidators

Ca

ch

eC

ac

he

Cache

Cache

Cache

Data Source B

Page 36: Budowanie aplikacji PHP bez użycia frameworków

Elastyczność

http://getprooph.org

Page 37: Budowanie aplikacji PHP bez użycia frameworków

Wnioski

Page 38: Budowanie aplikacji PHP bez użycia frameworków

Ale...

Page 39: Budowanie aplikacji PHP bez użycia frameworków

Tak, zbudowaliście framework

Page 40: Budowanie aplikacji PHP bez użycia frameworków

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

Page 41: Budowanie aplikacji PHP bez użycia frameworków

Nigdy więcej frameworka?

Page 42: Budowanie aplikacji PHP bez użycia frameworków

Nigdy więcej frameworka?

Business requirements

Architecture Implementation

Page 43: Budowanie aplikacji PHP bez użycia frameworków

Nigdy więcej frameworka?

Business requirements

Architecture Implementation

Page 44: Budowanie aplikacji PHP bez użycia frameworków

Architecture Implementation

Nigdy więcej frameworka?

Implementation

Framework

Microframework

Full framework

Specialiazedframework

(i.e. Magento)

Custom Do you best

Page 45: Budowanie aplikacji PHP bez użycia frameworków

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

Page 46: Budowanie aplikacji PHP bez użycia frameworków

&Michał ŁukaszewskiIntelSoftware Engineer