Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Budowanie aplikacji PHP bez użycia frameworków

177 Aufrufe

Veröffentlicht am

Jak zostać samodzielnie myslącym programistą webowym budującym aplikacje skrojone pod potrzeby biznesowe, a nie modę.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Budowanie aplikacji PHP bez użycia frameworków

  1. 1. Michał Łukaszewski Intel Software Engineer Budowanie aplikacji PHP bez użycia frameworków
  2. 2. Plan historyjki • Smuteczki • Mądrzenie się • Wnioski
  3. 3. Smuteczki
  4. 4. Czemu się czepiam frameworków?
  5. 5. Problemy jakie rozwiązują Rapid Development Te, które same stworzyły
  6. 6. Problemy jakie stwarzają • Mnóstwo kodu
  7. 7. 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
  8. 8. Problemy jakie stwarzają • Mnóstwo kodu • Mnóstwo zależności Casus Left-pad gate
  9. 9. Problemy jakie stwarzają • Mnóstwo kodu • Mnóstwo zależności • Mnóstwo dokumentacji
  10. 10. Problemy jakie stwarzają • Mnóstwo kodu • Mnóstwo zależności • Mnóstwo dokumentacji kiepskiej dokumentacji
  11. 11. Problemy jakie stwarzają • Mnóstwo kodu • Mnóstwo zależności • Mnóstwo dokumentacji kiepskiej dokumentacji • Opóźnione aktualizacje komponentów
  12. 12. 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
  13. 13. 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
  14. 14. 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)
  15. 15. 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
  16. 16. 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
  17. 17. Wojny frameworków
  18. 18. 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
  19. 19. Mądrzenie się
  20. 20. Czego tak naprawdę potrzebujemy
  21. 21. Czego tak naprawdę potrzebujemy Router/Dispatcher
  22. 22. Czego tak naprawdę potrzebujemy Router/Dispatcher Responder/Renderer
  23. 23. Warstwy, ogry mają warstwy Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies
  24. 24. Warstwy, ogry mają warstwy Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source
  25. 25. Warstwy, ogry mają warstwy Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source Serializers
  26. 26. Warstwy, ogry mają warstwy Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source SerializersValidators
  27. 27. Warstwy, ogry mają warstwy Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source SerializersValidators Cache
  28. 28. Warstwy, ogry mają warstwy Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source SerializersValidators Cache Cache
  29. 29. Warstwy, ogry mają warstwy Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source SerializersValidators Cache Cache Cache
  30. 30. Warstwy, ogry mają warstwy Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source SerializersValidators Cache Cache Cache Cache
  31. 31. Warstwy, ogry mają warstwy Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source SerializersValidators Cache Cache Cache Cache Cache
  32. 32. Architektura über alles Business requirements Architecture Implementation
  33. 33. Elastyczność Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source SerializersValidators Cache Cache Cache Cache Cache
  34. 34. Elastyczność Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source SerializersValidators Cache Cache Cache Cache Cache
  35. 35. Elastyczność Router/Dispatcher Responder/Renderer Magic/Unicorns/Fairies Data Source A SerializersValidators Cache Cache Cache Cache Cache Data Source B
  36. 36. Elastyczność http://getprooph.org
  37. 37. Wnioski
  38. 38. Ale...
  39. 39. Tak, zbudowaliście framework
  40. 40. 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
  41. 41. Nigdy więcej frameworka?
  42. 42. Nigdy więcej frameworka? Business requirements Architecture Implementation
  43. 43. Nigdy więcej frameworka? Business requirements Architecture Implementation
  44. 44. tecture Implementation Nigdy więcej frameworka? Implementation Framework Microframework Full framework Specialiazed framework (i.e. Magento) Custom Do you best
  45. 45. 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
  46. 46. & Michał Łukaszewski Intel Software Engineer

×