Jak nie używać
frameworków?
Paweł Abramowicz
Memory is cheap these days. Go with what will
make your development easiest (which is usually
what your team knows best).
~ Jason Baker
odp. na stackoverflow, 2.01.2009
1
I ve gone down this path already...
Projekty na ZPI i ZTW wykonane w Laravelu.
Własny framework nawet zanim tamte projekty powstały.
Czy naprawdę potrzebuję choćby połowy z tego, co oferuje mi framework?
PHP: {C, C++, Java}-like web framework
Społeczność programistyczna była już w tym miejscu.
PHP powstał jako framework dla skryptów CGI i zamiennik dla pisania własnych
rozszerzeń Apache.
2
Dlaczego frameworki?
szybkie tworzenie skomplikowanych serwisów,
no-bullshit: nie piszesz już żadnej z funkcjonalności, które powinny być w
bibliotece standardowej języka,
zaawansowane mechanizmy cache, które działają zwykle całkiem dobrze out-of-
the-box.
Argument 1: muszę być zbyt rozwlekły (verbose)
Ten argument istnieje głównie w językach bazowanych na rodzinie C (PHP).
Jeśli nie obchodzi Cię implementacja funkcjonalności, wybierz Ruby lub Python!
We front-endzie: czy na pewno nie możesz użyć jakiegoś rozwiązania HTML5?
Kiedy ostatnim razem przejrzałeś dokumentację swojego języka?
http://caniuse.com
http://bitworking.org/news/2014/05/zero_framework_manifesto
3
Argument 2: nie chcę implementować wszystkiego
Ups, leftpad ;)
Na początku 2016 roku wielu programistów siadając przy swoich biurkach zauważyło, że ich
przechodzące testy programy z dnia na dzień przestały się kompilować.
Winny był pakiet leftpad, mająca paręnaście linii biblioteka dostarczająca pojedynczą
funkcję, uzupełniającą łańcuch znaków od lewej podanym znakiem, aż do pożądanej
długości znaków. Zniknęła ona z sieci po zawirowaniach wokół innej biblioteki tego samego
autora, który usunął w przypływie gniewu wszystkie swoje projekty z repozytorium npm.
Nie udawało się zbudować kolejnych wersji wielu frameworków Javascriptowych,
korzystających z leftpad. Dodatkowo, problemy zanotowano także w zespołach
deweloperskich dużych portali, takich jak Facebook.
Argument 3: potrzebuję cache, ale bez rozmyślania
Mechanizmy cache kodu są często wbudowane w język.
Mechanizmy cache zasobów HTTP są wbudowane w HTTP po prostu
przeczytaj speckę, dobrze zrobi to Twojej stronie; możesz osiągnąć dużo więcej,
niż to, co robią domyślne ustawienia Twojego frameworka.
Redis is fun!
Czy w ogóle potrzebujesz cache po stronie serwera?
4
Plus cache, plus mailer, plus baza danych, plus ORM...
Często potrzebujesz tylko podstawowej funkcjonalności bazy danych, wysłać
maila, zapisać plik na chwilę&
& dlaczego nie użyć wbudowanych lub lekkich rozwiązań?
https://levels.io
Kwestie wydajności
Jeśli potrzebujesz wysokiej wydajności, a korzystasz już z frameworka i wszystkich
dostępnych przyspieszeń, często przytaczanym argumentem będzie Jeśli
potrzebujesz wydajności, skorzystaj z kompilowanych rozwiązań .
Ale chwila, przecież same języki to kompilowane rozwiązania, dlaczego nie
skorzystać z ich bibliotek standardowych?
Języki oferują również możliwość implementacji funkcji w formie wtyczek php-ds1
1
http://tiny.cc/phpds
5
Co zamiast frameworków?
Zero framework manifesto wcale nie chcemy pisać wszystkiego sami.
Zamiast używać całości frameworka, może potrzebujesz tylko jednego z jego
modułów?
Może podstawowe funkcje, z których korzystasz, pokrywa jakiś microframework?
Może sytuację rozwiąże mały zestaw wzajemnie rozłącznych narzędzi?
( za moich czasów używaliśmy lightboksa do galerii, nie potrzebowaliśmy całego jQuery)
Case study: zafri
21 linii bootstrappingu1 + 11 linii routingu
SQLite czy dla małego serwisu potrzebny Ci MySQL? Może wystarczy JSON?
własne biblioteki do obsługi plików .env i infrastruktury do wysyłania maili
1
Bootstrap to nazwa biblioteki, bootstrap to proces wiązania sznurówek do biegu
6
Pamiętaj o pamięci!
Wymagania pamięciowe frameworków potrafią być pokazne: aplikacja Hello World
napisana w Ruby on Rails pochłania 35 MiB pamięci RAM. Dla porównania ta
sama aplikacja w czystym Ruby poniżej 10 MiB; w Pythonie 7,3 MiB.
http://nuald.blogspot.com/2011/08/web-application-framework-comparison-by.html
7
Wyszukiwarka
Podobne podstrony:
GG o miłości Jak nie zranić cudzych uczućSekty w internecie Jak nie dać się złapać w siecijak nie zostac antysemita analiza pod rozwagejak nie zapomniec o kabelkuCzytaj jak nie wiesz co robiczrozumiec stres jak nie dac sie nerwom i zadbac o spokoj cała książkaWstretni szefowie Jak nie pozwolic im sie dluzej ranic?z znizania sie do ich poziomu wstrszJak nie płacić podatku Belki (podatek od odsetek)Fotografowanie w zimie, czyli jak nie dać się zrobić na szaro!JAK NIE POPŁYNĄĆ NA GIEŁDZIEwięcej podobnych podstron