Proč (ne)používat vlastní CMS

Možná by se mohlo zdát nadbytečně vytvářet vlastní CMS, když exituje mnoho hotových systémů, které jsou zdarma a využívá je velké množství tvůrců webových stránek. Mezi nejznámější patří WordPress, Joomla, Drupal a další. Existují však i méně známé CMS s menší komunitou vývojářů. Přesto si mnoho firem vytváří vlastní CMS, neboť to přináší hned několik výhod, ale pochopitelně také nevýhod. Neoddiskutovatelnou nevýhodou je pracnost. Vytvořit propracovaný a konzistentní CMS systém není jednoduché a viděl jsem několik příkladů, kdy i zaběhnuté firmy používaly systémy ne tak robustní a výkonné, jak by se dalo očekávat. Vytvoření CMS systému totiž znamená více než jen napsat fungující systém s použitím moderních postupů, ty sami o sobě systém kvalitnějším neudělají. Samotný návrh systému vyžaduje určité zkušenosti a mnoho přemýšlení a plánování ještě před začátkem programování. Samotná práce na CMS pak jde, hlavně zpočátku, velmi pomalu a při hledání optimálníhořešení je mnohdy nutné se vracet zpět, někdy i na úplný začátek. Takové "couvání" ze slepých uliček samozřejmě ve firmě, která závisí na na nepřerušované tvorbě webových stránek, není snadné financovat. Proto se vývoji, který nemá okamžitý finanční efekt, mnoho času nevěnuje. Mnohdy také megalomanské požadavky mangementu ve smyslu "aby to umělo všechno" bývají na škodu věci. I přesto bývá tvorba vlastního CMS opodstatněná, protože tak firma získá jednotnou platformu, nezávislou na třtí straně. Protože tvůrci OpenSource systémů pochopitelně tyto systémy, často nekriticky, prosazují, pokusím se uvést na pravou míru některá jejich tvrzení.

1. Open Source řešení je zadarmo

Tohle bývá pravda jen zčásti. Samotný CMS je obvykle skutečně zadarmo, nicméně pro určité funkce webu (něpř. galerii) je často zapotřebí doinstalovat příslušný zásuvný modul (plugin). Ty nejjednodušší bývají rovněž zadarmo, ale často bývá obtížné nebo nemožné najít mezi nimi takový, který by vyhovoval konkrétním požadavkům. Samozřejmě existuje celá řada komerčních pluginů, které jsou zpravidla velmi propracované, ale ty už zdarma nejsou.

2. V CMS je jednotné ovládání na které jsou uživatelé zvyklí

Opět se to spíše týká základního balíčku CMS systému. Jednotlivé pluginy se často v ovládání podstatně liší a mnohdy je třeba se naučit pracovat s každým z nich zvlášť a bývají také odličně graficky zpracované, protože pocházejí od různých autorů. Často se pak i na jednom webu modul článků ovládá jinak než modul galerie, což přehlednosti nepřispívá. Výsledkem pak může být, že kdo ovládá svůj web od jedné firmy např. s pomocí CMS Joomla se musí znovu učit ovládat administraci webu od jiné firmy i když běží rovněž na CMS Joomla.

3. Open Source systémy jsou bezpečnější

Toto tvrzení se zpravidla opírá o skutečnost, že  tyto systémy mají širokou komunitu vývojářů, kteří opravují nalezené bezpečností chyby. U open source řešení je však jejich zdrojový kód veřejně k dispozici a proto je pro útočníky snadné takové chyby v kódu najít a zneužít je. Nebezpečí pokusu o nalzení takové chyby se pak zvyšuje s popularitou systému. Jistě se útočníkům nevyplatí hledat slabiny v systému, který využívá několik desítek webů, pokud necílí na konkrétní web. Daleko lákavější je najít chybu v rozšířeném systému, protože tu lze následně využít na mnoha tisících webových stránkách (např. oblíbený WordPress údajně používá až 16% všech webů).  Pokud má web vlastní CMS, jehož kód, navíc není veřejně přístupný, je hledání takové slabiny mnohem obtížnější (i když jistě ne nemožné).

4. Open Source systémy jsou stabilnější

Tohle lze opět říci spíše o základní instalaci systému. Sabilita jednotlivých pluginů (zásuvných modulů) do značné míry závisí také na programátorovi takového modulu. Pokud pomineme, že jím může být kdokoli a může v něm nechat bezpečností chybu úmyslně, je bezpečnost takového modulu závisla na znalostech programátora a ty nejsou nikde garantovány. Při případném zjištění chyby pak je zpravidla třeba tvůrce systému (nebo modulu) upozornit a počkat až cyba bude (okud vůbec bude) opravena. Vím o více než jednom případu, kdy to vedlo k nutnosti změny použitého modulu, což s sebou obvykle přínáší další komplikace (nové šablony, převody dat a pod.). Open source projekt Vám však také umožňuje tuto chybu opravit a opravu poslat správci systému (pluginu) k začlenění. Je třeba se ovšem připravit na schvalovací proceduru bez které by začlenění do kódu nebylo možné. Oprava pouze na vlastních projektech je totiž problematická. Bude třeba ji na každém dalším webu dělat znovu, případně obnovovat po aktualizaci.

Samozřejmě nemohu tvrdit, že Open Source CMS mají pouze nedostatky. Pokud se jedná o nepříliš komplikovaný web, případně jednoduchý E-shop bez speciálních funkcí, kde postačí hlavní instalace s jedním či dvěma zásuvnými moduly, zvládne pomocí takového CMS vytvořit web i pokročilý uživatel PC bez hlubší znalosti programování. Když však máte složitější webové stránky, bývá situace o dost komplikovanější. Zavedené firmy a programátoři pak často vytvářejí sadu vlastních zásuvných modulů, které používají na svých porjektech. Toto řešení je asi nejlepší cestou při použití takového systému, ale pokud tyto balíčky nejsou veřejně a zdarma k dispozici, pak už nelze bez výhrad prohlásit, že se jedná o Open Source CMS..