Proč vytvářet vlastní CMS?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jirka_
Člen | 1
+
0
-

Je rok 2016 a stále jsem i po několika letech „u fochu“ nezískal úplně ucelený názor na zásadní otázku lidstva – Používat při tvorbě webu s požadavkem na editovatelný obsah nějaké hotové řešení typu Wordpress / Drupal nebo si napsat vlastní systém?

Osobně jsem jako spousta PHPkařů absolvoval následující cestu

  1. Udělám vlastní CMS na Nette protože je to cool a naučím se nové věci – toto řešení jsem chvíli používal, ale bohužel kvalita tohoto nástroje nedosahovala takové výše aby bylo používání dlouhodobě udržitelné (ikdyž na pár webech stále běží – přece jenom to byl výukový pokus)
  2. Jdu s proudem začnu nasazovat na Wordpress – netřeba popisovat. Časem se ale pro mě stal nevyhovující, protože človek prostě potřebuje někdy nějaké zásadnější úpravy, které s Wordpressem jdou velmi složitě.
  3. Udělám si vlastní CMS na Nette V2 – Navrhnu vlastní CMS které bude vyhovovat mým potřebám a potřebám mé firmy.

Momentálně se nacházím někde mezi fázemi 2 a 3.

Krutou pravdou je, že najít ideální řešení „problému“ je asi nemožné.

Můj názor se postupem času vykrystalizoval do té podoby, že používat na rozsáhlé projekty vlastní vydupaný CMS, který bude sedět firemním potřebám a na projekty typu blogýsky atp používat WP, který byl k tomu původně koncipovaný.

Tímto postem bych chtěl rozpoutat diskuzi na toto téma.
Jaké CMS používáte? K čemu konkrétně? A proč?
Vyplatí se dle vás vytvořit vlastní řešení?

Díky za všechny názory :)

Editoval Jirka_ (22. 1. 2016 19:56)

Oli
Člen | 1215
+
+1
-

My jsme teď ve fázi víceméně 3.

Záleží hodně na tom co děláš a jaký máš zkušenosti. My jsme pro specifický úkony dělali v nette nějaký tooly a web běžel na wordpressu. V tu dobu (asi 4 roky zpátky) jsme se s Nette učili a naše znalost wordpressu byla poměrně solidní, takže nějakým způsobem ho ohnout nebo něco doprogramovat nebyl problém.

Pak jsme se rozhodli na jednom větším projektu že nasadíme CMS psaný v Nette. Byl to relativně velký projekt a my jsme vytvořili CMS (který už je teď kompletně předělaný) a naučili se zase o něco víc v Nette. V tu chvíli naše znalosti byli tak 50:50 WP vs Nette.

Pak jsme vylepšovali CMS, doprogramovávali funkcionalitu, nasazovali na další weby a na závěr kompletně přepsali a začali používat Doctrine. Náš CMS nyní umí to co WP v základu + nějaký doplňky. Naše znalosti tak 1:99. Jeho nastavení, doprogramování požadovaných funkcionalit, nasazení je už z ekonomického hlediska prostě jednoznačně výhodnější.

Věřím ale tomu, že když je někdo opravdu odborník na WP, tak by byl schopnej udělat hodně toho (možná všechno, nevím) co my v podobným čase nad Nette. Bude mít vlastní pluginy a bude vědět kam „šáhnout“ aby se to chovalo tak jak potřebuje…

Prostě si myslím, že je dobrý si vyzkoušet oboje a dělat v tom co ti víc vyhovuje. Časem se to asi srovná že to je jedno. Asi jako PHP vs .NET…

Tomáš Jablonický
Člen | 115
+
+1
-

Je tady hodně CMS psaných nad Nette. Ty co jsou volně k dispozici však stačí jen na malé blogy ale nic většího (bez velkých úprav) s tím nejde dělat. Pak jsou tu CMS interní a ty jsou hodně nadupané.

Jen si tak říkám, proč žádné pořádné OpenSource CMS nad Nette ještě nevzniklo. Je to velký prostor jak se zviditelnit :-).

Editoval Tomáš Jablonický (27. 1. 2016 9:16)

Tomáš Jacík
Člen | 147
+
+1
-

@TomášJablonický Ono to není tak easy. Třeba @FilipProcházka CMS píše už pár let :-) Během té doby vzniklo spoustu skvělých balíčků, ale udělat CMS ve stejné kvalitě je pro jednoho člověka moc práce nebo fakt nadlouho. Musela by se domluvit skupinka lidí, kteří se nepohádájí ohledně implementace :-)

newPOPE
Člen | 648
+
+2
-

@TomášJacík no a to je tu medzi miestnymi velmi velmi tazke.

Ono treba si uvedomit ze CMS je CMS a nie system ktory bude spravovat objednavky, riesit eshop a podobne hluposti. To ze existuju podobne „moduly“ ako ecommerce modul pre Drupal ktory je taky velky ako drupal neznamena ze to je good. Akonahle pride na rozne ohybania CMS tak je to takpovediac cele v prde… a tam zacne CMS velmi rychlo stracat oproti custom implementacii systemu na mieru.

Editoval newPOPE (27. 1. 2016 14:09)

Myiyk
Člen | 321
+
+4
-

Na implementaci CMS se nikdy neshodnem, protože každý od toho chce něco jiného.
Já bych to viděl na vytvoření pouhého základu pro CMS, který bude umět připojit moduly. Všechno ostatní už dokáží moduly udělat samy.

Hlavně vymyslet, aby byly všechny moduly kompatibilní mezi sebou.

Tomáš Jacík
Člen | 147
+
0
-

Právě s těmi moduly je dost problém. Pár lidí už to vymyslelo dost různých systémů, Nette žádné default způsob pro moduly nemá (ne pro ty, které chápeme jako moduly CMS). Pokud by se dořešil n2jak inteligentně ten modulový systém, tak jsem si jist, že by CMS pak vnikaly mnohem snadněji.

chap
Člen | 81
+
0
-

Ahoj – k původní otázce za mne … webové prezentace dělám ve WP, ale popravdě to nedělám tak úplně rád. Pořádně nevidím pod pokličku, ale na druhou stranu je tam vše připravené a modulů je mraky … a vlastní moduly nejsou takový problém připravit. Nějakou dobu si pohrávám s myšlenkou vlastního CMS, ale trochu je problém v prvotní časové investici a pak pořádně nevím, jak bych řešil právě modularitu takového systému … což je důvod, proč zde odpovídám – chtěl bych se zeptat, zda řešíte někdo nějak zajímavě právě modularitu systému v podobném principu jako zmíněný WP? Tzn. máte nějaký základní IS, který umí řekněme to CMS, a pak máte řadu submodůlů (e-commerce, plánování, atp.), které s pokud možno co nejmenším úsilím přidali do systému (např. jen přidáním parametru v configu). :) … prostě mě jen zajímá, jestli máte nějaký zajímavý přístup k modularitě Nette aplikací. Díky.

Myiyk
Člen | 321
+
+4
-

Modulový systém musí podporovat události.
Pomocí vhodných událostí se už dá udělat cokoliv.

Systémové události:

  1. instalace/odinstalace/update modulu
  2. spouštění presenteru ⇒ modul dokáže řídit přístupová práva
  3. vytváření routeru ⇒ modul si může zřídit vlastní adresu

a další

Vlastní události. Moduly spouštějí vlastní události, aby šly na moduly napojovat další moduly.
A zbytek se udělá pomocí DI.

Jinou možnost nevidím. Jak jinak by šlo udělat modul, který např. loguje přihlášení? Musí mít možnost se zavěsit na událost odeslání formuláře.

yonix
Člen | 37
+
0
-

Ahoj Jirka_, Nette mám rád a rád ho podporím v akejkoľvek aktivite ale podobnú otázku som riešil asi pred pol rokom. Prešiel som si všetko čo na nette bolo postavené a medzi moje posledné nádeje patrilo už len vlastné cms to som mal v štádiu použiteľnom pre malé projekty ale stále bolo na čom pracovať. Až jedného dňa som lustroval iné riešenia objavil OctoberCMS. Nejdede o CMS nad Nette ide skôr o laravel a twig ale prechod k tomúto systému z nette programátora vôbec nebol problém. Možno v počiatkoch sa mi nepáčil twig ale je jednoduchý a intuitivný a zhruba po mesiaci som sekal webové appky ako baťa botičky :). Skús toto riešenie podľa mňa neobanuješ :)

Václav Pávek
Backer | 100
+
0
-

Také tuto otázku řeším. Problémem všech CMS je, že mají nějakou filozofii která se nekryje s tou tvojí. WP je dost žádaný takže pro business ok, ale časem pokud web bude úspěšný tak jeho provoz a optimalizace bude stát více než u systému který znáš. Vlastní systém nemusí být namakaný, ale hlavně funkční.

Osobně bych bral kdyby se podařilo komunitně vytvořit spíše CMS framework dle komentářů výše.

Půjdu cestou vlastního cms resp. to bude framework – ale ne nic univerzálního. Ikdyž ještě zvažuji October CMS, ale není to Nette :-(

Editoval Václav Pávek (13. 3. 2016 21:56)

llook
Člen | 407
+
+3
-

… časem pokud web bude úspěšný tak jeho provoz a optimalizace bude stát více než u systému který znáš. Vlastní systém nemusí být namakaný, ale hlavně funkční.

Poznat víc do hloubky existující systém bude vždy snazší, než napsat nějaký podobný vlastními silami.

Pár let zpátky se podobné řeči vedly o frameworcích, jako je Nette. Dost lidí tehdy zastávalo názor, že je lepší mít vlastní framework, který třeba bude funkčně chudší, ale jako autor mu budeš dokonale rozumět. Ale není tomu tak. A já myslím, že v případě většiny „vlastních“ CMS to platí stejně.

Na nějakých menších CMS jsem se párkrát podílel a zpětně mi přijde, že kdybychom radši přiohnuli třeba Drupal, měli bychom s tím méně práce, výsledek by byl lepší a mohli bychom snadno dodat i takové featury, o které se nám nikdo neodvážil ani říct. Ale ono to vždycky začne jako primitivní CRUD nad pár tabulkami, na to přece nepotřebujeme nic složitého a nového, pak se to nabaluje a nakonec už není cesty zpět…

Když budeš chtít provozovat a optimalizovat WordPress nebo Drupal a ještě ho moc neznáš, tak najdeš spoustu rad na StackOverflow. Když budeš chtít optimalizovat vlastní systém, tak jsi v tom sám. A když se začneš o práci dělit s někým dalším, padne i ta zdánlivá výhoda znalosti vlastního kódu.

MirekTH
Člen | 20
+
+1
-

Je potřeba si to pořádně rozvrhnout a rozmyslet. Pokud jsem odoborník / firma tak mi přijde lepší napsat si vlastní systém a neřešit pak zbytečné problémy a vrtání se v kódu kdejakého pluginu jen aby to nějak fungovalo. V dnešní době frameworků, bootstrap šablon, super balíčků (Kdyby, Nextras), hotových komponent (gridy apod …) + několik balíčků ze Symfony (třeba console) + pár dobře zvolených balíčků z githubu atd … a kvalitní základ je na světě.

Všichni říkají, že v dnešní době je psaní vlastního CSM/systému již zbytečné, já si právě naopak myslím, že v dnešní době to dává smysl víc než kdy před tím. Vývoj je rychlý, není potřeba řešit UX administrace apod … stačí si za 30$ koupit šablonu a použít. Když si vzpomenu jaká řehole to naopak byla před 10ti lety … ufff :) Dnes bych tomu neříkal ani tak CMS jako spíš „CMS dev stack“ :)

Navíc je to také hodně o klientele, na kterou se člověk zaměřuje. Pokud je psána většina věcí na míru tak bude řešení asi jiné, než když sekám weby podle šablony a má klientela není v tomto ohledu až tak náročná.

Ale toto je jen můj názor.

iguana007
Člen | 970
+
+2
-

Já už se nad podobným problémem pozastavil před pár lety a zvítězilo vlastní CMS, zde jsou hlavní důvody:

  • asi nejvyšší priorita (divím se, že to tady jako argument ještě nezaznělo) byla pro mne bezpečnost, jelikož už mne nebavilo řešit hacknuté open source weby (většinou přes SQL injection ukradený admin účet, smazané soubory v filesystému atd.) – zde má dnes trochu plus WP, protože ten už se umí updatovat sám a Joomla snad taky, ale pořád to neřeší „0-day vulnerabilities“. Kdežto mé CMS bude hacknout o něco težší, protože zdrojáky nikde nevystavuji
  • rychlost customizace – již to zde zaznělo, své CMS znám skrz naskrz a doprogramovat cokoli trvá podstatně méně času než studovat dokumentaci abych mohl napsat modul, který mi bude fungovat jak bych očekával
  • za ty roky mám již systém (určitě je ještě pořád co zlepšovat), který mi pokryje cca 90% případů bez nutnosti zasahovat do PHP, jen případně nasadím HTML/CSS šablonu a udělám pár konfigurací v administraci
llook
Člen | 407
+
0
-

Ano, přesně takové důvody uváděli lidé a firmy, co si udržovali své vlastní MVC frameworky. Včetně toho „security through obscurity“. :-)

Pokud potřebujete CMS s nějakými velmi specifickými vlastnostmi, tak někdy může dávat smysl napsat si ho od nuly. Ale ohledně znalosti systému a rychlosti kustomizace – je snazší si cizí systém a jeho ekosystém nastudovat, než vlastní vytvořit. Platí to pro Nette, stejně jako pro Wordpress, Drupal nebo Joomlu. Stejně tak bude vždycky snazší sledovat novinky v cizím systému, než je sám programovat.