
Dostałem niedawno zlecenie poprawienia niezbyt skomplikowanego serwisu internetowego. W zasadzie nieco bardziej rozbudowanej wizytówki. Na pierwszy rzut oka nie wyglądało to na coś skomplikowanego, zwłaszcza, że klient powiedział, że strona jest raczej statyczna i nie ma żadnego CMSa. Zgodziłem się, niemniej zanim dokonałem wyceny "prostego" zadania poprosiłem o dostęp do plików źródłowych.
I to mnie uratowało. Na serwerze były setki plików powiązanych ze sobą w nieznany mi sposób. Niektóre foldery nazywały się ZEND i SMARTY, więc wywnioskowałem, że mogły być użyte (chociaż niekoniecznie). Dałem sobie godzinę na wgryzienie się w temat i "na oko" wyceniłem swoją pracę. Klient złapał się za głowę i poszedł szukać programisty, który mu ową stronę stawiał.
A mnie zaczęło zastanawiać, dlaczego ludzie lubią robić proste rzeczy przy pomocy skomplikowanych mechanizmów. Przecież na tej stronce nawet baza danych nie była potrzebna. Na siłę można było to nawet zrobić przy pomocy plików HTML i JavaScripta. Może mniej przyjazne z punktu widzenia SEO, ale do zrobienia.
Często też widuję na różnych grupach dyskusyjnych propozycje zaprzęgnięcia WordPressa do prostego systemu newsów.
Ja rozumiem, że ktoś może nie umieć programować. Wtedy takie "gotowce" są przyjazne. Wrzuca się na serwer, czyta instrukcję, klika tu i ówdzie i strona gotowa bez konieczności wpisania nawet jednego rozkazu PHP. Ale gdy widzę, że programiści ze stażem robią takie rzeczy, to mi ręce opadają. Napisanie prostego, ale efektywnego systemu newsów to godzina, góra dwie. Ale dzięki temu kod jest prosty i czytelny (oczywiście zakładając, że programista zna swój fach) w odróżnieniu od takiego WP, którego podstawowy silnik to kilka MB kodu, w większości zbędnego.
| Jak coś jest do wszystkiego to jest do niczego |
Przyznaję się bez bicia - nie jestem zwolennikiem gotowych CMSów i frameworków. Wg mnie posiadają za dużo mechanizmów, z których zazwyczaj i tak się nie skorzysta. Owszem, są pewne, rozbudowane projekty, do których pisanie najniższej warstwy mija się z celem, zbyt wiele błędów można popełnić. Ale do prostych stron to jest wytaczanie armaty na komara.
Dla mnie szczytem perfekcji byłby framework zawierający TYLKO NAJPOTRZEBNIEJSZE mechanizmy, takie minimum funkcjonalne oraz możliwość łatwej rozbudowy o własne moduły. Przy czym nie potrzebuję całego panelu administracyjnego do obsługi i konfiguracji tych modułów. W zupełności wystarczy mi mały plik z najważniejszymi zmiennymi. Z programów desktopowych dobrym przykładem jest multikomunikator Miranda. Uwielbiam go. Podstawowy plik EXE to w zasadzie tylko kontener. Każda funkcjonalność jest bibliotece DLL. Potrzebuję GG? Proszę bardzo - wrzucam jeden plik i działam. Inny wygląd listy kontaktów? Wrzucam inny plik. Tak powinien wyglądać dobry framework.
Często widuję reklamy sklepów internetowych: "kilka kliknięć w konfiguracji i już możesz zarabiać". Owszem, tylko...
I to, podobnie jak CMSy, dobre jest dla laika, który za niewielkie pieniądze dostanie coś, co będzie "jakoś" działać. Ale jeśli coś ma być dobre, to powinny być szyte na miarę i odpowiednio kosztować. Zresztą żeby daleko nie szukać. Jaki garnitur będzie lepszy? Kupiony za 100zł w Tesco czy uszyty przez krawca za 2000zł?
Znajomy prosił mnie, żebym zerknął w kod jednego sklepu, bo coś muli, może znajdę problem. Zerknąłem i czym prędzej odzerknąłem. Nawet nie wiedziałbym gdzie szukać problemu a przeglądanie całego kodu mija się z celem. A robiła to firma, która ma całkiem niezłą renomę (kiedyś sam chciałem u nich pracować, ale losy pokierowały moim życiem inaczej). No cóż, sklep jest jeszcze na gwarancji - niech autor się tym zajmie...