Jedna z podstawowych zasad Informatyki brzmi: nie wymyślaj koła na nowo. W tym artykule chciałbym wytłumaczyć w bardzo prosty sposób dlaczego nie ma nic gorszego niż tzw. autorski system CMS.
Sam byłem zagorzałym zwolennikiem tworzenia własnych rozwiązań CMS przez bardzo długi okres. Zmiana nastąpiła powoli w miarę zdobywania zawodowego doświadczenia i poznawania jak są tworzone otwarte systemy CMS. W pewnym momencie zrozumiałem, że tworzenie oprogramowania, które już istnieje – i rezygnacja z szeroko pojętych standardów – jest z jednej strony może i trochę romantyczne ale ogromnie niepraktyczne i generuje sztuczne koszty. Ale wszystko po kolei…
Argumenty twórców autorskich systemów CMS
Przywołanie argumentów zwolenników autorskich CMSów jest tutaj bardzo istotne, bo faktycznie robią wrażenie – na kimś kto nie ma pojęcia o programowaniu i istniejących rozwiązaniach Open-Source.
Argument 1: Systemy Open-Source są niebezpieczne
To jeden z najczęściej powtarzanych mitów. Gotowe systemy CMS takie jak Drupal, Joomla, WoordPress są bezpieczne, ponieważ zabezpieczenia tam wprowadzane spełniają tzw. zasadę Kerckhoffsa. Wiedza o tym jak działa zabezpieczenie nawet w najmniejszym stopniu nie ułatwia złamania go. Aby to zobrazować często podaje się przykład: To, że wiesz jak działa zamek nie znaczy że potrafisz otworzyć każde drzwi – nawet wtedy musisz mieć odpowiedni klucz. Jedynym możliwym sposobem na zhakowanie strony wyposażonej w otwarty system CMS są wtyczki i rozszerzenia, które są używane przez niedoświadczonych twórców stron.
Argument 2: Systemy Open-Source są przeładowane niepotrzebnymi funkcjonalnościami
To nie oznacza jakiegokolwiek uszczerbku na wydajności. Nieużywane funkcje nie biorą uczestnictwa w renderowaniu poszczególnych stron. To zaleta, bo kiedy pojawi się jakaś popularna potrzeba np. pisanie bloga lub uruchomienie prostego systemu sprzedaży, możemy tę funkcję za darmo wykorzystywać. Nie potrzebujemy do tego dopisywania żadnych funkcji ani dodatkowych kosztów obsługi.
Argument 3: Gotowe systemy uniemożliwiają rozbudowę lub dostosowanie do specyficznych potrzeb
Prawda jest taka, że umożliwiają. Problem w tym, że każde środowisko (takie jak WordPress, Drupal czy PrestaShop) wymagają solidnego doświadczenia a także znajomości standardów i paradygmatu obiektowego. Dużo bardziej otwarty na różne zmiany i przypadki użycia są systemy tworzone przez wiele firm na raz niż przez jedną. Motywację i interes w rozwoju tego oprogramowania ma wiele biznesów, o czym możesz przeczytać w następnych sekcjach.
Niedoświadczonemu i początkującemu programiście dużo prościej napisać „byle jaki” prosty autorski CMS, ponieważ może go napisać po swojemu. Jeżeli czyjeś umiejętności programowania nie wykraczają poza przypisywanie wartości i odczyt/zapis w bazie danych to faktycznie taka osoba będzie miała duży problem w dostosowaniu WordPressa, PrestaShop czy Magento do swoich celów.
Kiedy warto stosować dedykowane aplikacje i autorskie rozwiązania?
To bardzo proste, kiedy wymagania od początku nie są zgodne z tym co zapewnia CMS. Jeżeli modyfikacja obecnego oprogramowania jest dużo bardziej złożona od napisania uszytego na miarę frameworka to wtedy jak najbardziej – należy stworzyć autorski system, bo będzie to po prostu opłacalne. Serwisy społecznościowe, CRMy, złożone sklepy internetowe to sytuacje, kiedy tworzenie dedykowanego oprogramowania jest w pełni uzasadnione.
W takich sytuacjach i tak nie wykorzystamy zalet gotowych systemów CMS, bo nie ma wtyczek, które rozwiązywałyby nasze przypadki użycia ani nie ma szablonu, który pasowałby do naszego serwisu. Dużo prościej wszystko zrobić samemu od podstaw.
Zalety autorskich systemów CMS
Biorąc pod uwagę komentarz powyżej, da się (na siłę) wymyślić zalety:
- możliwość łatwiejszego wykonania funkcjonalności, których nie ma w istniejących i otwartych systemach CMS,
- przy odpowiedniej optymalizacji dużo większa wydajność stosunkowo rzadkich przypadków użycia,
- rozwój systemu jest mniej wymagający dla programisty, który jest jego autorem – wolność w rozbudowywaniu logiki brak „zależności z zewnątrz”.
Wady autorskich systemów CMS
Niestety lista zalet jest bardzo krótka i można ją przypasować do rzadkich sytuacji. W najczęstszych przypadkach rezygnacja ze standardowych CMSów to:
- przywiązanie do jednej firmy,
- opłaty za coś co inni mają za darmo,
- brak darmowych aktualizacji,
- brak kompatybilności i integracji z istniejącymi dodatkami oraz systemami (np. bramki płatności),
- brak możliwości rozwoju przez firmę, która nie jest jego autorem,
- brak możliwości skorzystania z wielu usług np. SEO, optymalizacje itd…
- brak możliwości wykorzystania gotowych szablonów – konieczność tworzenia motywów pod klienta lub wybór z ograniczonego zbioru gotowych szablonów,
- większa podatność na ataki hakerskie (XSS, SQL Injection, manipulacje parametrami Web)
I szczerze… na tym mógłbym skończyć. Nie ma nic gorszego jak sytuacja kiedy chcesz rozwinąć lub zaktualizować stronę i jesteś zdany na jedną firmę, która niczym monopolista ma przewagę w negocjacjach.
Strony i sklepy znanych firm to najczęściej WordPressy, Drupale, Magento itd…
90% Internetu nie może się mylić. Podać przykłady? Proszę bardzo, w Drupalu swoje strony mają miedzy innymi:
- tesla.com
- tagheuer.com
- lamborghini.com
Sklep na Magento mają stworzone firmy:
- messika.com
- nike.com
- christianlouboutin.com
Strony na WordPress mają między innymi:
- koenigsegg.com,
- mercedes-benz.com
- bbcamerica.com
- techcrunch.com
- sonymusic.com
Podsumowanie
Jeżeli ktoś Ci mówi (np. jakaś firma, która robi zwykłe strony i proste sklepy), że ma swój system CMS lub jest w stanie zrobić CMS dużo lepszy, bezpieczniejszy od istniejących projektów Open-Source – to przytaknij i jak najszybciej rozglądaj się za kimś innym. Jedyną motywacją do tworzenia własnych systemów CMS jest chęć zarobku ich autorów lub brak znajomości ogólnie obowiązujących standardów.
Odpowiedz lub skomentuj