[Discussie] Eigen CMS of niet?
het topic van Bram, lijkt het mij verstandig om hier een algemene discussie topic te houden met betrekking tot CMS-systemen.
Wat vind jij voor en nadelen van een eigen systeem, en van bestaande systemen?
N.a.v. Wat vind jij voor en nadelen van een eigen systeem, en van bestaande systemen?
Mijn (persoonlijke) voordelen:
- je kunt het systeem precies zo maken als je zelf wilt
- je weet precies hoe alles werkt (je hebt het systeem immers zelf gemaakt) dus je kunt makkelijker en sneller wijzigingen aanbrengen in de code. Dit in tegenstelling tot de enorm uitgebreide open-source pakketten waar je nooit precies zult weten hoe de code tot in de details in elkaar steekt.
- er is geen sprake van overbodige features (alleen het noodzakelijke is aanwezig)
- je bent niet afhankelijk van andere partijen
- mits goed geprogrammeerd minder kans om gehackt te worden (bij bekende open-source pakketten worden de bugs uitvoerig gepubliceerd en vervolgens kan een hacker zijn slag slaan)
Nadeel:
- Het kost behoorlijk wat tijd om te maken
- het is veel werk (zoals Ozzie PHP al zei)
- de garantie dat het goed geprogrammeerd is is 50% want als je een groot CMS maakt
dan kan je sommige dingen toch nog over het hoofd zien
- wil je het gaan verkopen aan bedrijven o.i.d. dan zul je toch moeten gaan nadenken:
gebruik ik een centrale database (zou ik niet doen qua laadtijden, maar goed), of
diverse databases (dan moet je met PDO aan de slag), of installeer ik de database
bij de bedrijven zelf....
- Wil je het gaan verkopen ; denk na over de modules, opzet enz., dit moet gemakkelijk
zijn en begrijpbaar. (niet elk bedrijf wil dezelfde module(s).
Enz. Enz. Enz.
Ik denk dat de voornaamste reden om het niet te doen is: TIJD.
Gewijzigd op 10/06/2011 11:59:33 door Kevin van Leeuwen
Om heel veel tijd te besparen is het raadzaam om van te voren alles op papier te hebben staan van wat je allemaal wilt.
Het nadeel van een bestaand CMS systeem is wel weer dat het soms te uitgebreid is. De gebruiker heeft niet alles nodig, dus waarom zou het erin zitten?
Ik denk dat dit vooral een eigen keuze is. Wat vind jij het makkelijkst werken en wat wil je je klanten aanbieden.
Oetzie cookie op 10/06/2011 08:47:21:
@The Force,
1 ) De code is wat ik helemaal ken ja, maar daar heeft iemand anders ook niks mee nodig. Maar het CMS dat ik wil is speciaal in gericht voor de klant en dus veel makkelijker in gebruik. En het klopt een programmeur heeft er geen moeite mee, maar een klant wel. De helft van mijn klanten zijn alfabetisch als het aankomt op de computer en dus gaan ze niet 1 2 3 leren hoe een CMS werkt. Door deze ervaring heb ik mijn CMS aan gepast zodat die erg gebruiksvriendelijk is.
2 ) Toch komt er heel veel onnodige troep mee.
3 ) Ja maar vaak zijn de modules niet altijd naar wens bij de klant, als je dan weer de hele code moet doorspitten...
4 ) Dus je bent altijd afhankelijk van anderen. Het nadeel van een open-source CMS is dat het populair is en veel meer hackers aan trekt. Kijk maar naar Windows en Mac. Windows heeft veel virussen en bugs, dit komt omdat er 1000-en ogen opgericht zijn. Mac heeft nog niet veel virussen en bugs, over paar jaar is dit wel anders want dan is Mac net zo groot als Windows en zit Mac vol met virussen en bugs.
Maar hier valt veel over te discussiëren en het is ook een kwestie van smaak van wat de programmeur wil. Zelf werk ik liever met eigen gemaakte projecten en niet open-source dingen.
1 ) De code is wat ik helemaal ken ja, maar daar heeft iemand anders ook niks mee nodig. Maar het CMS dat ik wil is speciaal in gericht voor de klant en dus veel makkelijker in gebruik. En het klopt een programmeur heeft er geen moeite mee, maar een klant wel. De helft van mijn klanten zijn alfabetisch als het aankomt op de computer en dus gaan ze niet 1 2 3 leren hoe een CMS werkt. Door deze ervaring heb ik mijn CMS aan gepast zodat die erg gebruiksvriendelijk is.
2 ) Toch komt er heel veel onnodige troep mee.
3 ) Ja maar vaak zijn de modules niet altijd naar wens bij de klant, als je dan weer de hele code moet doorspitten...
4 ) Dus je bent altijd afhankelijk van anderen. Het nadeel van een open-source CMS is dat het populair is en veel meer hackers aan trekt. Kijk maar naar Windows en Mac. Windows heeft veel virussen en bugs, dit komt omdat er 1000-en ogen opgericht zijn. Mac heeft nog niet veel virussen en bugs, over paar jaar is dit wel anders want dan is Mac net zo groot als Windows en zit Mac vol met virussen en bugs.
Maar hier valt veel over te discussiëren en het is ook een kwestie van smaak van wat de programmeur wil. Zelf werk ik liever met eigen gemaakte projecten en niet open-source dingen.
Digibeet zul je bedoelen (of analfabeet als het op computers aankomt) ;). Het zou overigens ook helemaal geen kwestie van smaak moeten zijn ("van wat de programmeur wil"). Beide kanten hebben hun eigen voor- en nadelen. Je moet je daarvan bewust zijn en je moet de optie kiezen die voor het project het beste is!
1) En wat als je ziek wordt? Of als je een andere programmeur er aan verder wilt laten werken? Heb je dan net zo'n goede userguide en heb je alles goed gedocumenteerd/gecommentarieerd? Heb je usabilitytesten gedaan? En vind je het te lastig om voort te bouwen op andermans basis? Programmeurs horen lui te zijn en moeten niet telkens het wiel opnieuw willen uitvinden.
2) Nogmaals, er zijn genoeg CMS'en beschikbaar die dat niet hebben.
3) Vaak ook wel. En goh, code doorspitten. Uit ervaring kan ik zeggen dat het gebruik van standaard modules veel tijd scheelt. Altijd alles zelf moeten schrijven omdat je voor al je projecten alleen je eigen systeem wil gebruiken is niet bepaald ideaal te noemen.
4) Kijk dan eens naar Linux als je een goede vergelijking wilt trekken. Bugs worden daar sneller opgelost dan bij Windows en Mac. Kijk eens naar wikipedia en hoe actueel die is.
Het punt is dat iedereen vindt dat hij/zij goed kan programmeren maar dat bij minstens de helft van de scripten die hier binnen komen gevoelig zijn voor allerlei vormen van hackpogingen. Iedereen moet natuurlijk ook zijn eigen systeem maken, want dat is 'veiliger'.
Ozzie PHP op 10/06/2011 11:35:51:
Nou, laat ik maar eens een voorzetje doen...
Mijn (persoonlijke) voordelen:
- je kunt het systeem precies zo maken als je zelf wilt
- je weet precies hoe alles werkt (je hebt het systeem immers zelf gemaakt) dus je kunt makkelijker en sneller wijzigingen aanbrengen in de code. Dit in tegenstelling tot de enorm uitgebreide open-source pakketten waar je nooit precies zult weten hoe de code tot in de details in elkaar steekt.
- er is geen sprake van overbodige features (alleen het noodzakelijke is aanwezig)
- je bent niet afhankelijk van andere partijen
- mits goed geprogrammeerd minder kans om gehackt te worden (bij bekende open-source pakketten worden de bugs uitvoerig gepubliceerd en vervolgens kan een hacker zijn slag slaan)
Nadeel:
- Het kost behoorlijk wat tijd om te maken
Mijn (persoonlijke) voordelen:
- je kunt het systeem precies zo maken als je zelf wilt
- je weet precies hoe alles werkt (je hebt het systeem immers zelf gemaakt) dus je kunt makkelijker en sneller wijzigingen aanbrengen in de code. Dit in tegenstelling tot de enorm uitgebreide open-source pakketten waar je nooit precies zult weten hoe de code tot in de details in elkaar steekt.
- er is geen sprake van overbodige features (alleen het noodzakelijke is aanwezig)
- je bent niet afhankelijk van andere partijen
- mits goed geprogrammeerd minder kans om gehackt te worden (bij bekende open-source pakketten worden de bugs uitvoerig gepubliceerd en vervolgens kan een hacker zijn slag slaan)
Nadeel:
- Het kost behoorlijk wat tijd om te maken
"je weet precies hoe alles werkt (je hebt het systeem immers zelf gemaakt) dus je kunt makkelijker en sneller wijzigingen aanbrengen in de code." Als je het goed hebt opgezet en je structuur goed is wel. Als je als niet ervaren programmeur zo'n systeem maakt die groeit en groeit dan kan het ook onlogische spaghetticode worden. En kom op, zo moeilijk is het nu ook niet om een niet zelfgemaakt systeem aan te leren...
Het kan zijn dat er geen sprake is van overbodige features, maar vaak zie je dat nodige features of handige features ook ontbreken of niet goed zijn uitgewerkt (omdat dat te veel tijd kost). Als je een CMS hebt waar een grote community achter zit dan kan het zijn dat mensen zich specialiseren in één onderdeel en die zo goed maken als ze maar kunnen. Een team van mensen die zich puur richten op het maken van bijvoorbeeld het ultieme gastenboek. De kans is groot dat hun module beter werkt dan die van iemand die in zijn eentje het hele systeem moet maken. De klant zit dan weer met het nadeel dat er bijvoorbeeld geen goede antispam is ingebouwd of dat hij niet alle mogelijkheden tot zijn beschikking heeft die hij nodig (gaat) hebben. En nee, een klant zal niet snel zeggen dat hij per se een woordfilter in zijn gastenboek wil hebben. Daar komt hij pas achter als hij het nodig heeft.
Kevin van Leeuwen op 10/06/2011 11:56:49:
[...]
- wil je het gaan verkopen aan bedrijven o.i.d. dan zul je toch moeten gaan nadenken:
gebruik ik een centrale database (zou ik niet doen qua laadtijden, maar goed), of
diverse databases (dan moet je met PDO aan de slag), of installeer ik de database
bij de bedrijven zelf....
[...]
- wil je het gaan verkopen aan bedrijven o.i.d. dan zul je toch moeten gaan nadenken:
gebruik ik een centrale database (zou ik niet doen qua laadtijden, maar goed), of
diverse databases (dan moet je met PDO aan de slag), of installeer ik de database
bij de bedrijven zelf....
[...]
Los van de hele discussie vind ik deze opmerking erg vaag. Centrale database versus diverse databases? En waarom moet je dan opeens met PDO aan de slag? Je maakt een CMS met een bijbehorende database. Die installeer je in principe gewoon op de webhost waar je de CMS host. Ook vanwege de veiligheid (of je moet investeren in een SSL connectie). Een centrale database is eigenlijk nooit van toepassing op een CMS.
Oetzie cookie op 10/06/2011 12:06:35:
Om heel veel tijd te besparen is het raadzaam om van te voren alles op papier te hebben staan van wat je allemaal wilt.
Oke...
Nogmaals, ik zeg niet dat je nooit je eigen CMS moet maken, maar ik denk niet dat de klant er altijd bij gebaat is.
Ook flexibiliteit is voor mij belangrijk. Ik wil dat mijn csm werkt zoals ik wil dat het werkt. Omdat ik nu zelf wat gemaakt heb kan ik makkelijker aanpassingen maken of fouten herstellen.
Grootste nadelen: Tijd, tijd, tijd, kennis, kennis, kennis.
Ik heb een eigen CMS, dat komt omdat ik nog geen fatsoenlijk CMS systeem heb gezien die mijn mogelijkheden fatsoenlijk hebben geïmplementeerd. Het heeft me veel tijd gekost om het te maken maar het geeft een goed gevoel nu het af is .. :)
Niels, aangezien jij het gemaakt hebt ga ik er vanuit dat het allemaal goed en veilig in elkaar zit. Wat ik me nu afvraag... stel jij gaat voor iemand een website maken en je wilt daarvoor je eigen cms gebruiken... heb jij dit dan op de een of andere manier beveiligd? Zoals je zelft aangeeft heb je er veel tijd in gestoken. Maar stel nu jij maakt voor iemand anders een site, en diegene denkt.. he das een handig systeem... en die gebruikt vervolgens jouw systeem om een andere website mee te maken?
Voordelen.
Geen broncode online.
het is van jou
precies op maat
je kent de site
je zit niet te zoeken
Nadelen
Veel voorbereidingen
Je moet geen haast hebben
Veel typwerk
Veel designen waar ik niet t beste in ben.
Gewijzigd op 13/06/2011 00:24:50 door Jordi Kroon
Voor en nadelen van eigen systeem:
- Veel werk
- Goed te integreren
- Bugs waarvan je soms niet weet hoe je ze moet oplossen
Voor en nadelen van open source:
- Meestal apart systeem
- Niet goed te integreren
- Erg weinig werk
- Meestal met design
- Moeilijk aanpasbaar
Toevoeging op 13/06/2011 08:40:47:
Ozzie PHP op 12/06/2011 23:42:18:
Niels, aangezien jij het gemaakt hebt ga ik er vanuit dat het allemaal goed en veilig in elkaar zit. Wat ik me nu afvraag... stel jij gaat voor iemand een website maken en je wilt daarvoor je eigen cms gebruiken... heb jij dit dan op de een of andere manier beveiligd? Zoals je zelft aangeeft heb je er veel tijd in gestoken. Maar stel nu jij maakt voor iemand anders een site, en diegene denkt.. he das een handig systeem... en die gebruikt vervolgens jouw systeem om een andere website mee te maken?
Tja, dat is dan de fout van degene die het als eerste online zette. Als hij wil dat dat niet mag, moet hij er licenties op zetten
Maar mijn vraag is hoe mensen dat hier doen? Geven ze hun eigen code vrij en hopen ze maar dat niemand daar misbruik van maakt?
Voordelen:
- Makkelijk uitbreidbaar met modules
- Makkelijk uitbreidbare extra menu's door de gebruiker zonder PHP-kennis (zolang je maar een array'tje goed kan vullen..)
- Template is uitwisselbaar. Elk design zou erin kunnen (Smarty)
- Precies wat de gebruiker nodig heeft, en deze zal niet meer door de vele bomen het bos niet meer zien.
Nadelen:
- Systeem is nog geen OOP ;-)
Mijn CMS (MultiPage) geef ik in eerste instantie alleen aan aan bekenden vrij gezien de source nog niet encoded is. Dit zijn wel mijn plannen, maar ik moet eerst nog wat verdienen om Zend/IonCube encoder te kunnen kopen ;-).
Mijn opvolger zal volledig uit OOP bestaan en een eigen MCV framework aan bord hebben. Dit omdat Zend en CakePHP in mijn ogen gewoon best wel omslachtig eruit zien, met een eigen framework hoef je ook niet zat documentaties door te spitten en functies van dat framework te leren.
Aan het begin kost het idd een hoop tijd en typ werk om het te maken maar het scheeld erna ook een hoop tijd omdat je dat alles al klaar hebt staan en dan enkel en alleen als je wat extra's erin wilt hebben dat hoeft te maken en daarbij niet afhankelijk bent van anderen.
of je het nu modulair of anders maakt in mijn ogen enkel echt wat uit als je doel is om een grote cms te gaan verkopen en dan alsnog is het de voorkeur van de programmeur waar zijn of haar voorkeur licht.
Tuurlijk heb ook ik wel eens bij een open-source cms gekeken hoe sommige dingen in elkaar zitten (zoals ongetwijfeld zoveel hier) en om te kijken waar de bugs/fouten zitten en hoe je sommige dingen wel dan wel niet lopen maar daarbij vind ik het beter om het zelf te maken dan een open-source cms te gebruiken.
@Ozzie: Ik wil soms best wat code vrij geven zodat andere mensen er eventueel hun voordeel mee kunnen doen maar ik denk niet dat ik alles vrij geef omdat het toch mijn creatie blijft en anders zou ik het onder licentie doe of er ééntje maken die bedoelt is om weg te geven.
Ah oke... het lijkt mij namelijk super kl#te als je ooit voor iemand een eigen website maakt met daarin je eigen cms sysyteem verwerkt en dat ik dan ineens een half jaar later andere sites tegenkomt die draaien op mijn cms! Dan zou ik heeeel boos worden :) Maar encoden is dan inderdaad denk ik de enige optie. Of je zou er op een of andere manier een soort code in moeten stoppen zodat het alleen werkt met die code... maar ja dat zul je vast niet waterdicht krijgen.
Op die manier kan je, mocht je CMS bij iemand anders draaien, makkelijker juridische stappen ondernemen.
Gezien mijn CMS nog niet encoded is, zit er wel een licentiecheck in die ophaalt of iemand een geldige licentie heeft. Dit wordt geloof ik gedaan op de hostname en een username/key....
Gewijzigd op 13/06/2011 19:41:04 door - Ariën -
Maar hievoor heb je wel wat extra dingen nodig zoals een 'eigen' (stukje) server en daar word niet iedereen blij van om dat te betalen...
ik heb er ook eerst overna gedacht om het d.m.v licenties te doen door dan de server te laten checken bij mij of het goed was maar dat was na een tijdje en stukje code aanpassen opzich ook nog te omzeilen...
Gewijzigd op 13/06/2011 19:47:16 door Marco PHPJunky
@Aar: jij doet een licentiecheck? Hoe moet ik dat zien dan? Dat het CMS contact zoekt met jouw eigen website / server of iets dergelijks? En als mensen in de code die check er nou gewoon uitslopen?
Als ze dat eruit slopen, tja... dan euhm... mag iemand me van zijn IRL-vriendenlijst halen en een taartje minder klaarzetten op zijn verjaardag ;-)
...totdat ik het ga encoden.
Tut nu toe draait het systeem bij drie kennissen die een bedrijf hebben en weinig PHP ervaring hebben.
Gewijzigd op 13/06/2011 19:54:50 door - Ariën -
Ah oke... grappig... maar wat nu als jouw site platligt? Werken hun sites dan ook niet meer?
Mocht een licentie ingetrokken worden zal ik daar belangrijke functies gaan blokkeren, ik ga de bbezoekers/eindgebruikers gelukkig niet lastigvallen met deze administratieve zaken. Mocht de server platliggen, dan zal ik een foutmelding tonen d.m.v. AJAX en een divje dat er geen controle plaats kan vinden ofzo...
Gewijzigd op 13/06/2011 20:09:57 door - Ariën -