Psát dnes vlastní CMS? Docela nesmysl

Doby kdy si vlastní systém pro správu obsahu (neboli CMS) psal kdejaký vývojář, který chtěl uspět na internetu, nejsou tak vzdálenou vzpomínkou. A když pořádně uměl databáze, tak mohla vzniknout i velmi zajímavá díla. Byly to doby, kdy se mi pomalu ani nezastavil proud školení PHP a SQL :-).

Psaní vlastními silami

Pro psaní systému vlastními silami musí být hodně důvodů. Představte si, že musíte vyřešit autentifikaci správců obsahu, editovatelnost stránek (jednoduché), řazení a stromovou strukturu stránek (to už není úplně úplně jednoduché), možnosti zákaznických formulářů, zabezpečení, možnosti pro dodatečné meta-tagy a to vše pokud možno velmi rychle. Dnes už snad jen pár programátorů bude psát vše vlastními silami, většinou budou stavět nad existujícím frameworkem (Cake, Symfony, Nette), ale přesto té práce bude mít nad hlavu.

Jednoduchý web se základními prvky, postaví kdejaký PHP junior. Aby byl web šetrný vůči systémovým zdrojům serveru, dostatečně flexibilní pro další úpravy a rozšíření, to už úplně snadné není. Psát jej od nuly se většinou nevyplatí.

Ale proč to dělat? Ve světě svobodného software existuje dostatek řešení. Podle mě je rozhodně efektivnější si jedno vybrat, to se pořádně naučit a „nepálit čas“ psaním základní funkcionality. Pokud to programátor myslí vážně, tak stejně bude potřebovat solidní znalosti PHP (nebo jiného jazyka), SQL, JavaScriptu (+ jQuery, React), HTML a CSS.

Některá CMS

Stručně alespoň těch několik nejznámějších. V abecedním pořadí, bez ohledu na jejich popularitu.

Drupal

Řadit Drupal mezi CMS je dost možná ošidné, několikrát jsem narazil na přístup k Drupalu, coby frameworku. Je mocný, nepřipadá mi úplně uživatelsky příjemný (ale to je osobní názor) a mimo jiné jej využívá třeba MTV, TV  Prima, nebo administrativa Bílého Domu.

Pro Drupal existují desetitisíce hotových rozšíření. Ačkoliv Drupal sám o sobě „kamarádí“ nejen s MySQL/MariaDB, ale i třeba PostgreSQL, může být velmi ošidné je použít, vývojáři s nimi leckdy nepočítají.

Já osobně jsem se s Drupalem seznámil při zkoušení, neznám jej v dostatečné míře, ale mohu doporučit Squelle Group.

Joomla!

Starší pamětníci si možná vzpomenou na Mambo, které je již mrtvým projektem a jehož forkem je právě Joomla. Počtem instalací je to druhý nejpoužívanější CMS.

Má skvělou dokumentaci, ale pro malé weby mi připadá Joomla neohrabaná a pro velké weby by jí možná došel dech (tam bude kralovat Drupal, nebo zákaznické řešení).

WordPress

WordPress je nejrozšířenější ze všech CMS, údajně jej využívá 25 % webů. Samotný WordPress je „kostra“ nabízející základní funkčnost. Někomu to stačí, ale správnou volbou pluginů jej lze doplnit na výborný nástroj pro prezentaci. Díky vynikajícímu API je snadné napsat potřebná rozšíření i postavit velmi kvalitní šablony/layouty.

Ze všech systémů pro správu obsahu mám nejradši WordPress. Používám jej zhruba od roku 2005, zpočátku holý, ale postupně jsem si odladil sestavu pluginů, která mi skvěle slouží. Na blogu občas napíšu článek, který se WordPressu dotýká. Před několika lety jsem se naučil psát pluginy, pro dlouholetého klienta (subdodávka), a od té doby jsem několik zákaznických (dále nedistribuovatelných) napsal.

Troufám si říct, že s WordPressem umím, byť stále vidím kolik se toho mohu naučit. Jelikož s nastaveními WP a vývojem pluginů dělám dlouho, nastal pomalu čas nabídnout znalosti dále, za nutné spolupráce grafika (pokud nepřijde zákazník s designem, který potřebuje „jen“ nakódovat do šablony).

Mimo pořadí

  • Concrete5 je podobně jako Drupal někde na pomezí frameworku a CMS. Má výborné recenze. Mám jej ve škatulce „někdy otestuji a možná se naučím“.
  • Serendipity patří k menším CMS, osobně znám jen jednoho uživatele. Otestoval jsem a vedle extrémně liberální licence (BSD) umožňuje i snadnou rozšiřitelnost. Líbí se mi, byť nemá moc agilní vývoj a je docela raritkou.
  • TYPO3 patří do „velké čtyřky“ s WP, Drupalem a Joomla! Populární je hlavně v německy mluvících zemích.
BTW:

Myslím si, že pokud si někdo vybere některé svobodné řešení a vydělává na něm, měl by část svého zisku nějakým způsobem investovat zpět do vývoje.


Uveřejněno

v

od

Komentáře

10 komentářů: „Psát dnes vlastní CMS? Docela nesmysl“

  1. Ales Hakl avatar

    Ono hlavne, 90% vsech tech webu by si krasne vystacilo s nejakym offline CMS (nebo dokonce s jednou strankou). Unika mi, proc kazdy obsahu-prosty web o dvou strankach („Vitejte“, „Kontakt“) musi nutne potrebovat databazi a vi buh jake bambukatory.

    1. Marek Olšavský avatar

      [Ales Hakl]: Odpověď je poměrně triviální. Když chce firma třeba jen změnit otevírací dobu, nebo změnit nějakou kontaktní informaci, tak je pro ní praktičtější editor v administraci, než editovat uprostřed HTML, nebo oslovit svého webmastera a platit za úpravu. Většinový zákazník není jako my, že takový zásah není problém, dokonce většina se ani aktivně a systematicky o obsah starat nechce :-).

    1. Marek Olšavský avatar

      [Petr]: Taky možnost. Nebo používat službu typu WebNode, ale tam vlastně máte v rukou jen to, jaký text napíšete a jakou máte šablonu.

  2. sue avatar
    sue

    tak teď už znáte druhého uživatele s9y a příjemně se v tom dělá 🙂

    http://harrington.suewebik.net/

    1. Marek Olšavský avatar

      [sue] Výborně. Mě se s9y docela líbí, jen je to trochu neaktivní a bohužel plugin base není (zatím) tak rozsáhlá. Ale úvaha věnovat se mu, jako druhému CMS, mi už několikrát proběhla hlavou.

  3. Pavel Stěhule avatar

    [Ales Hakl]: Pokud už jednou umíš nějaké CMSko, tak je pro tebe efektivnější jej použít i pro prkotinu. U velké většiny webů není problém s výkonem, a důležitější jsou spíš počáteční náklady. Je to sice kánon na vrabce, ale ve výsledku to provozovatel na financích téměř vůbec nepozná.

  4. Miloslav Ponkrác avatar
    Miloslav Ponkrác

    A právě proto jsem si napsal nedávno svůj vlastní CMS systém. Proč?
    1) Protože to dokáži lépe (z mého hlediska) po 35 letech programátorské praxe, než třeba Nette a lépe to splňuje mé požadavky.
    2) Protože takový dobře použitelný základ CMS napíšete za týden, počítaje v to i analýzu a návrh API. Valnou většinu času děláte tu analýzu, přetavit to v řádky kódy je menší část času.
    3) Protože daleko spíše vám někdo hackne CMS, který používá obrovská spousta lidí, jsou od toho veřejně zdrojové kódy a je to spíše nalepovák mnoha pluginů od mnoha autorů různé programátorské úrovně. (Minulý můj CMS běžel 10 let bez jediného upgrade, s velkým počtem návštěv, mnoho pokusů o hacking, vydržel vše.)
    4) Protože ve výsledku ušetřím čas: a) Nemusím se učit cizí CMS. b) Nemusím obcházet opakovaně nelogičnosti při následném používání (zvláště opakovaném).
    5) Nejdůležitější argument: Kdyby se všichni řídili heslem, že nemá smysl psát vlastní CMS, tak tu žádný CMS, který tu můžete nabízet, dnes nemáte, protože nikdo jej nenapíše.

    Miloslav Ponkrác

    1. Marek Olšavský avatar

      [Miloslav Ponkrác]: Někoho mi připomínáte. Někoho, koho znám. Aha, mně, ještě před 5 lety.
      Radši se připojím k vývoji Open Source řešení, než vařit vše sám, za zavřenými dveřmi. Nepopírám, že jsou projekty, kde se jinak než „closed source“ řešením fungovat nedá, ale tohle není ta oblast.

  5. Miloslav Ponkrác avatar
    Miloslav Ponkrác

    Marek Olšavský: Já se k open source vývoji již nepřipojuji, protože pro relativně malé projekty, jako je třeba CMS, to nemá smysl, a vynaložená energie je vyšší, než napsat si to celé sám. V minulosti jsem to u řady projektů zkoušel.

    1) Musíte věnovat čas a námahu přesvědčit vedoucí/organizátory projektu, že vám DOVOLÍ se připojit. Obvykle jsou strašně vytíženi, a reakce je všelijaká. Musíte je přesvědčovat, že vaše práce/patch je kvalitní. Kromě toho musíte věnovat další čas a námahu ke studiu cizího kódu, cizích zvyků, stylů a vůbec to, co vyžaduje cizí projekt.
    2) Nevyhovuje mi jiná licence, než public domain, případně BSD. V žádném případě nechci podporovat GPL licenci a jiné.
    3) Své období cca 10 let, kdy jsem podporval a nechával stopy v open source projektech už mám za sebou, a auž mě to přešlo. Třeba vás to také čeká, jsem evidentně napřed.
    4) Naprostá většina open source projektů má otřesnou kvalitu, alespoň v jednom z těchto směrů: po stránce architektury aplikace, zvolených technologií, kvality kódu, možností projektu, zvoleného API, uživatelského rozhraní, nebo organizace projektu. Proč napravovat nalepováky, když to můžete udělat dobře?
    5) Udělat projekt od nuly dobře je pro valnou většinu projektů rychlejší a dává lepší výsledek s menší námahou, než se snažit vylepšovat horší: jednak napsat opravný kód, jednak přesvědčovat lidi, že to může být lepší. Jediný open source projekt, kde to vedou úžasně, a kde je tato námaha minimalizována, byl Scribus – můj dávný poslední příspěvek do open source.
    6) Řeknu to natvrdo: Jsem většinou lepší programátor, než ti, co dělají open source. Nemám už náladu přesvědčovat, že se vyplatí analýza, rozmysl, přehlednost zdrojového kódu a další, protože většina programátorů open source je na začátku programátorské cesty, a cokoli jiného, než sednout a programovat se necení. Jen pro opravdu obrovské projekty se vyplatí se připojit, protože to sám rozumně neuděláte (třeba gcc).

    Už jsem si udělat řadu náhražek za open source i komerční sw, a nemohu si než pochvalovat. Napsal jsem si třeba svůj control version system, protože se mi nelíbil styl ani implementace gitu. Ve wxWidgets jsem přepsal od nuly databázovou vrstvu. A CMS jsem si také napsal sám. To je minulý rok.
    Takže já jsem došel opačně, od podpory open source k tomu, že je lépe si menší projekt napsat sám. Plně mě to uspokojuje a už to nebudu dělat jinak.

    Jednoduše nechápu, co je na vytvoření CMS těžkého? Chce to trochu času, který se vám bohatě vrátí, pokud ho intenztivněji používáte.

    K open source se připojím jen tehdy, pokud je to pro mě přínos. Tedy k velkému projektu, který sám nezvládnu, nebo k projektu, který vedou nadprůměrní lidé a nadprůměrnými znalostmi a zkušenostmi (což je jen zřídka u open source), protože mi to pak dá mnohem více, než jen vylepšený projekt.

    Miloslav Ponkrác

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *