Sukces i powodzenie każdego projektu Open Source…

Spis treści

…zależy od jego dokumentacji. Mam tutaj na myśli każde wolne oprogramowanie gdzie pracuje się przy źródłach czy API. Z racji na to, że pracujemy już z gotowym oprogramowniem to musimy wiedzieć jak go używać. Jeżeli wszystkie inne metody zawiodły, należy przeczytać instrukcję. Instrukcja wiadomo – zło konieczne, czasami jednak trzeba w niej pogrzebać żeby znaleźć właściwy pstryczek. Dzisiaj więc będzie o instrukcjach, dokumentacjach i ogólnie o wsparciu dla Open Source.

Wiadomo – Open Source – jest za darmo. Najczęściej. Największym kosztem każdego produktu / usługi jest tzw. support – wsparcie. Przy Open Source sprawa jest skomplikowana, bo najczęściej system wsparcia tworzy sama społeczność zorganizowana wokoło danego projektu. Żeby projekt stał się popularny należy go najpierw spopularyzować. Jeżeli nie ma dobrej dokumentacji – wydawać by się mogło, że jest to niemożliwe. A jednak…

Magento

Zaczniemy od mojego “antyfaworyta”:   Magento – największa platforma e-commerce,  która jest bardzo skomplikowanym systemem. Każda zmiana / moduł / implementacja wymaga zahaczenia 20 różnych plików i znajomości conajmniej 30 różnych metod to znalezienie czegokolwiek w dokumentacji graniczy z cudem. Przykłady zastosowania istnieją tylko w Googlach. Żeby było zabawniej – nikt nie bawi się w podawanie numeru wersji dla której dany przykład działał więc… wymaga to sprawdzenia każdego przykładu i szukania działającej wersji. Dlaczeogo? Bo dokumentacja jest słaba – nie zawiera żadnych szczegółowych informacji ani opisów poszczególnych funkcji.

Yii Framework

Dalej – Yii vs CodeIgniter.  Yii , który pomimo tego że faktycznie jest szybszy od CodeIgniter’a, który ma bardzo dużo modułów (mam wrażenie, że są bardziej uporządkowane niż burdel w Wiki  CodeIgniter ‘a). Me lepiej zorganizowany CRUD (zasadniczo posiada CRUD), realizuje MVC czyli teoretycznie wszystko jest idealnie… ale jego dokumentacja jest słaba. Cieżko znaleźć jednoznaczne objaśnienia do klas i przykłady zastosowania. Pomijam problemy z realizacją nawet często podstawowych operacji takich jak łączenie się do dwóch baz danych na raz (różne hosty / loginy) spróbujcie znaleźć to w dokumentacji) Ba.. przeczytałem nawet książke o tworzeniu projektów w Yii – poza przykładami nie dała mi wielkiego oświecenia w kwestii rozwiązania określonych problemów.

CodeIgniter

Dokumentacja jaką oferuje CodeIgniter jest dużo bardziej czytelna i klarowna. Uważam, że jest to z jeden z lepiej udokumentowanych projektów z jakimi pracowałem ( codeigniter.com/user_guide ). Tak CodeIgniter jest wolniejszy (chociaż uważam, że testy przeprowadzone są tendencyjne:) jest prostszy, ale jeżeli czegoś nie wiem – wiem gdzie to znaleźć i jak to sprawdzić. A CRUD? No cóż – napisanie klasy – a w zasadzie modelu bazowego dla CRUD zajęło mi 30 minut. Działa, linkuje go do każdego projektu. Poza co 2 MB źródeł to nie 12 MB (mowa tutaj o bibliotekach systemowych Yii i CI) – jednak nie wierzę w zbyt skomplikowane system które robią wszystko za mnie. Tutaj też przeczytałem książkę – dobra. Nie była potrzeba, nie wniosła wiele w moją przygodę z CI.

OpenCart

Tutaj zasadniczo problemu nie ma, bo… nie ma dokumentacji. Wszystko jest na “czuja” – komentarzy w kodzie nie ma, dokumentacji nie ma, kod pisany jest niechlujnie i na sklejke. Nie mniej jednak projekt działa 🙂 Nie mniej jednak rozszerzalność i rozbudowa systemu jest bardzo uciążliwa. Prawdopodobnie projkt czeka taki los jak OsCommerce – jeżeli ktoś się nie weźmie i nie przepisze całości od podstaw. Też przeczytałem podręcznik… wprawdzie opisuje tylko tworzenie szablonów graficznych, ale… no cóż… więcej się nie da.

WordPress

Tutaj nie jest tak źle. Dokumentacja jest, w miarę klarowna i czytelna. Miałem okazję napisać kilka pluginów do WP i wszystkie działają. Da się znaleźć co trzeba w dokumentajci, chociaż głównie korzysta się z wyszukiwarki – nawigacja po systemie pomocy jest raczej słaba.

Drupal

No coż… tutaj trzeba zacząć od książki – naprawdę – pierwsze zetknięcie z tym systemem było traumatyczne. Napisanie modułu było potwornie skomplikowane i męczące. Postanowiłem znaleźć rozwiązanie w inny sposób. Znalazłem jakaś książke na temat Drupala – przeczytałem ją – a potem poszło z górki. Po zrozumieniu ogólnych zasad panujących w systemie byłem w stanie w bardzo krótkim czasie i w prostu sposób tworzyć nowe moduły i rozszerzenia dla Drupala. Także… dokumentacja jest dobra, nie mniej jednak trzeba poznać najpierw podstawowe zasadu.