# Frameworkiem w framework

Dodany dnia 05.08.2009 przez waXain

Postaci Rasmusa Lerdorfa myślę nikomu nie muszę przedstawiać (gdyby jednak odsyłam do Wikipedii: Rasmus Lerdorf).Spory czas temu Rasmus na swoim blogu (http://toys.lerdorf.com) napisał ciekawy artykuł o dość dziwnym tytule "The no-framework PHP MVC framework" który wywołał tam burzliwą dyskusję w efekcie której autor dodał coś na kształt sprostowania.

W wielkim skrócie - Rasmus poruszył temat uproszczenia MVC do niezbędnego mininum, podpierając się przykładem aplikacji którą napisał na potrzeby tegoż artykułu. Co więcej w sporym stopniu odciął się od zewnętrznych frameworków (nie tyle je krytykując co raczej mówiąc iż są "nadużywane"). Niektórzy z komentujących odebrali treść tego artykułu jako swego rodzaju atak na OOP a tym samym obstawienie za programowaniem proceduralnym - co oczywiście jest bzdurą.

Nie będę tu dokonywał streszczenia czy tez dogłębnej analizy tegoż artykułu - każdy zainteresowany po jego przeczytaniu sam powinien do pewnych wniosków dojść. Ja podzielę się swoimi.

Po pierwsze nie dajmy się zwariować podczas poszukiwań "idealnych rozwiązań" na potrzeby naszych aplikacji - bo takich nie ma i pewnie nigdy nie będzie. Użycie każdego z dostępnych frameworków, rozbudowanych CMS-ów / CMF-ów ma swój koszt o którym często się zapomina i o których najczęściej nikt oficjalnie nie mówi. Kosztem może być bariera wydajności, czas nauki, małe wsparcie społeczności itd. Często wręcz okazuje się że coś co jest banalne w napisaniu w "czystym PHP" tak bardzo chcemy opakować frameworkiem, że więcej czasu poświęcamy na analize dokumetacji, for czy blogów w poszukiwaniu rozwiązań pod niego iż zapominamy o głównym celu (przy okazji tracąc czas) - napisaniu prostego kodu.

Po drugie, nie starajmy się pisać naszego kodu w OOP tylko po to by było w OOP. Dobrym na to przykładem jest opakowywanie HTML-a szeregiem klas, gdzie wygenerowanie jakiegokolwiek elementu formularza (jego właściwości, stylu itd.) leży po stronie PHP. Najgorsze są sytuacje gdzie część elementów formularza jest obiektem PHP a część zwykłym HTML-em, praca w czymś takim może być naprawdę irytująca. Tego typu sytujacje mogą mieć miejsce gdy np. dana biblioteka nie radzi sobie z bardziej rozbudowanymi formularzami lub po prostu ich stworzenie w oparciu o te biblioteki staje się zbyt czasochłonne. Oczywiście można skorzystać chociażby z takiego Zend_Form, jednakże powinno być to zawsze poparte konkretnymi korzyściami w konfrontacji z kosztami, które pamiętajmy - zawsze ponosimy.

Mniej istotne jest to co dany framework nam oferuje (większość oferuje już bardzo dużo), za to dużo bardziej to w jaki sposób to co oferuje mamy w planach wykorzystać. Przypuszczam, że przeciętnie korzystamy z ok. 5% funkcjonalności oferowanych przez frameworki, pozostałe 95% wciąż czeka na swoją kolej.

Tak naprawdę wszystko jak zawsze oscyluje wokół zdrowego rozsądku - jeśli zostanie zachowany, jesteśmy uratowani, w przeciwnym wypadku, piekło nas pochłonie ;)

Na koniec przytoczę słowa Rasmusa, które wyjatkowo przypadły mi do gustu: "Nothing is going to build your application for you, no matter what it promises".

artykuł Rasmusa Lerdorfa

Tagi: php Rasmus Lerdorf framework cms cmf oop

 

x
  •  
* - pola wymagane