Autor Zpráva
FraMeRr
Profil
Zdravím,

rád bych se zeptal na názory ohledně CMS vs ruční kódování. Nemyslím teď třeba Wordpress atd., ale spíše CMS, které si sami firmy dělají. Je nějaký rozdíl, když je web vytvořen pomocí CMS nebo pokud ho programátor píše bez CMS? Jsem si vědom toho, že dost záleží i na CMS, ale ocenil bych názory nebo i zkušenosti, které s tímto soubojem máte.

Děkuji.
mckay
Profil
FraMeRr:
Tohle je poměrně rozsáhlá otázka s otevřeným koncem, podněcující hodně diskuse, a nebudu se pokoušet zodpovědět ji v celém rozsahu.

Vše má své výhody i nevýhody očividně. Ale myslím si, že obvyklý proce u jednotlivců i firem v průběhu kariéry je nějaký následující:
1. Nejprve kódují vše ručně a odkládají si třídy/sady funkcí, které znovu-používají => 2. Časem z odložených tříd vzniká obecně znovupoužitelný framework/CMS, který začnou znovu nasazovat tak často, že => 3. vytvoří seriozní FW/CMS pro vlastní potřeby a tak vznikne jejich CMS.

Na druhé straně jsou samozřejmě firmy, které mají nějaké CMS oblíbené a to používají a vlastní kód v podstatě neřeší. Plus? V případě open source CMS vyšší bezpečnost (protože všichni do toho kódu vidí, všichni se ho snaží zneužít/opravit) a vyšší spolehlivost (vše bude nejspíš řádně otestováno atd). Mínus? Menší flexibilita. Obecně asi nejde říct, že na všechno jde použít CMS a na některé věci nejde. Vždycky se všechno dá nějak ohnout.

Je nějaký rozdíl, když je web vytvořen pomocí CMS nebo pokud ho programátor píše bez CMS?
Ve své podstatě ne. Vždy je to kód, který nějakým způsobem popisuje co se má dít.

Těžko říct, co si představit pod pojmem názory na "tento souboj".

Asi bych to celé uzavřel tím, že k "vlastnímu CMS" či opakovanému stejnému způsobu použití frameworku se svou evolucí propracují všichni programátoři, a nebo se upíšou k smrti.
Joker
Profil
FraMeRr:
Rozdíl to samozřejmě je.

Asi jednoznačné to je v případě, kdy autory obsahu nejsou programátoři webu. Po běžném ne-IT zaměstnanci lze asi těžko chtít vytváření obsahu v HTML.

A proces, kdy někdo vytvoří např. novinku na web, pošle to webdesignerovi, ten to zkopíruje a vloží do nějaké HTML šablony a zveřejní, je pro všechny zúčastněné otravný. Navíc v tom ten webdesigner figuruje jako velmi drahá kopírka.

Takže čím častěji se obsah webu mění a čím víc lidí se na tom podílí, tím větší smysl dává použít CMS.

Naproti tomu programování vlastního CMS má taky dost úskalí, hlavně pokud za tím webem stojí jeden člověk.
Typický příklad je, že když si dělám vlastní web, udělám si pro něj vlastní CMS… a následně skončím tím, že na webu nic není, protože veškerý čas trávím programováním a údržbou toho CMS.
(I vlastní zkušenost :-) )
Takže si člověk musí rozmyslet, jestli chce udělat web, nebo programovat a udržovat CMS.
anonymni
Profil *
Trochu filozofická otázka, takže dám pár príkladov z praxe. Ako pri všetkom, aj pri CMS platí - používajte s rozumom. Zo skúseností ako/prečo (ne)používať.

1. Firma A - Myšlienka dávať nie-IT užívateľovi možnosť robiť zmeny na stránka je za istých okolností dobrý nápad, ale musí sa jednať o jednoduché plaintextové formuláre, ideálne bez <textarea>. Keď sme dali CMS s klasickým WYSIWYG editorom na celú stránku, s možnosťou zmeny farby textu, pozadia, fontu, veľkosti dopadlo to katastrofálne. Rovnako ako keď má užívateľ silne upravený WordPress layout a dostane inštrukcie meniť text presne medzi tagmi <xyz>

2. Firma B - Používali sme istý opensource CMS ktorý sme dobre ovládali. A nebol to ziadne lightweight CMS. Mali sme dobrého grafika a robili sme aj statické weby. Kvôli vlastnej pohodlnosti sa však aj tieto weby na ktoré by stačil maximálne Twitter bootstrap nasadzoval tento robustný CMS ktorý bol na to ako kanon na vrabce, a samozrejme rýchlosť načítania takýchto stránok bola zbytočne drasticky zdegradovaná. Okrem toho uživaťeľ vôbec netušil že web beži na nejakom CMS. Šéfovia však rozhodli že je pre nás jednoduchšie robiť prípadné zmeny v CMS ako pripájať sa na FTP alebo mať nejako rozumný zautomatizovaný workflow.

3. Firma C - Ďalší nasadený heavyweight CMS na malý web, už ani neviem kvôli čomu. Pár pluginov. V jednom z nich však bola kritická bezpečnostná chyba. Kvôli pohodlnej automatickej inštalácií pluginov mal ich adresár chmod 777. Hackeri sa na ňom nádherne vybláznili, servírovali odtiaľ phisingové weby na kradnutie čísel kreditných kariet, mal som možnosť videť kód, kreatívna práca. Doména dostala na blacklisty, chvíľu bol web zablokovaní u providera a po oprava aj tak ostala zabanovaná na rôznych proxinách.
Ako tu niekto spomenul - do kódu vidno a chyby sa nájdu a opravia, ale keď sa o web nikto nestará tak to nemá kto aktualizovať. Znova uživateľ CMS vôbec nevyužíval.

Ešte za mlada som raz robil web kde chceli meniť len to že tam raz za čas pridajú novinky, tak som na to urobil vlastný "CMS" čo bolo vlastne len CRUD položiek nadpis a krátky obsah. V takom Wordpresse toto dosiahnuť trvá oveľa dlhšie ako si to napísať aj v čistom PHP alebo s použitim nejakého mini frameworku (silex?).

Vo firme kde sme si robili vlastné CMS som nepracoval, ale pracoval som na vývoji komerčného CMS, ktoré si kupovali firmy čo robili weby. To však nebolo v PHP, ale výhody pre dodavaťeľskú firmu sú support, bugfixing policy, implementovanie nových featur podľa prieskumu čo zákazníci chcú, prípadne aj SaaS spolu s maintainance ak sa o to nechceš starať.
Určite existujú aj komerčné PHP CMS ak si to nechceš písať sám a je to stredná cesta ktorú môžeš zvážiť ak sa chystáš na rozsiahlejšie projekty s ECommerce, pokročilím Marketing Automation atd. Čo tak zvážiť že sa systém bude musieť pustiť na Clustri alebo Distribuovanej databáze? Ak príde na to že budeš potrebovať dopísať tieto zložky do vlastného CMS, to už nie je len o editácií obsahu.

Takže je dobré si zvážiť účel webu alebo zameranie tvojho podnikania a potom sa zamyslieť čo je na to vhodné.

Zhrnul by som to tak - ak chceš robiť statické stránky a robiť zmeny neskôr zadané zákazníkom sám, nepotrebuješ na to CMS, len rozumný workflow (grunt?), sablonovací systém (Jade?), node.js u teba na PC. Ak chceš aj tak robiť zmeny vo vlastnom CMS tak si napíš nejaký rýchly a ľahky CMS. Ak chce zmeny robiť zákazník, dovoľ mu len minimálne nutné. Toto sa týkalo viac menej textového obsahu.

Ak chceš zložitejšiu aplikáciu (Eshop, fórum, nejake sociálne funkcie) tak CMS je zrejme nutnosť. Úplne nevidím zmysel v tom písať si vlastné CMS na bežné účely. Ak chceš rozbehnúť firmu ktorá robí weby, vlastne CMS robíš len v prípade že v ňom ponúkneš niečo čo v žiadnom inom nie je, alebo ho robiš na nejaký účel pre ktorý CMS neexistuje, prípadne sa nedá ohnúť. Inak je na začiatok zbytočná dlhodobá investícia.

Ak sa chceš učiť tak si pozri ako sa to robí v iných CMS samozrejme píš najprv všetko sám. :D Osobne nepoznám nikoho koho by bavilo programovať CMS a "tvoriť" obsah webov resp. weby zároveň. Ja nemám žiadny web a to robím okolo webových stránok a teraz aplikácií už tak 14 rokov. :D Jedna malá rada na záver ak sa chceš učiť jazyk alebo vytvoriť vlastné CMS, zabudni na PHP :D (Žiadny flamewar!)
Joker
Profil
anonymni:
2. Firma B (…) CMS ktorý bol na to ako kanon na vrabce, a samozrejme rýchlosť načítania takýchto stránok bola zbytočne drasticky zdegradovaná.
Nevidím důvod, proč by rozumně udělaný CMS měl „drasticky degradovat“ rychlost načítání statických stránek.
Resp. proč by se statická stránka od druhého zobrazení neměla načítat z cache, kde bude rychlost srovnatelná.

ad 3.: Jo, to mi přijde jako podstatný (a předtím nezmíněný) argument proti používání masově rozšířeného CMS: Hackeři se zaměřují na jeho bezpečnostní díry a možná budou existovat i připravené skripty, se kterými web hackne i laik.
Sice se často ty bezpečnostní díry opraví, jenže většina lidí na aktualizace kašle.
Takže pak jde narazit na weby postavené na nějaké starší verzi WordPressu, kde vesele řádí spammeři apod.
FraMeRr
Profil
Mnohokrát děkuji všem zúčastněným za čas! :)

Domníval jsem se, že na to nebude jednoduchá odpověď a že to bude hodně záviset na každém projektu. Každopádně vaše odpovědi mi pomohly a vnesly trochu světla do jinak tmavé místnosti.


Ještě jednou tedy děkuji a přeji hezký zbytek dne.
Joker
Profil
Vyhodil jsem zbytečně konfliktní reakci na „zabudni na PHP“.
Na fakt, že ten výrok není odborně zrovna na výši, se dá upozornit věcně a ne argumentací ad hominem.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: