In dit artikel maak ik een vergelijking tussen het implementeren van een CMS en het gebruik van een framework voor je softwareproject.
In mijn carrière heb ik vaak tijdens een consultatie met de klant moeten kiezen tussen het gebruiken van een CMS of een framework. Vaak keek de desbetreffende klant me vertwijfeld aan en vroeg vervolgens wat het verschil was.
In deze blog wil ik hier verder op ingaan, zodat je na het lezen iets meer kennis hebt over de voor- en nadelen van beide opties.
Bij Blijnder werk ik zowel met het Laravel framework als het Statamic CMS. Beide hebben hun voor- en nadelen. De vereisten van een project bepalen altijd welke van de twee de beste keuze zou zijn.
CMS
Je hebt waarschijnlijk al gehoord van verschillende CMS'en. Bekende systemen zijn Drupal, WordPress, Joomla! en Statamic. Als je voor een CMS kiest, kan een ontwikkelaar het binnen korte tijd operationeel hebben. Een goed CMS zorgt ervoor dat je de inhoud van je website of webtoepassing op een gebruiksvriendelijke manier kunt beheren.
Framework
Het framework is vaak de favoriete optie als je het aan een programmeur zou vragen. Dit heeft te maken met het feit dat een programmeur graag zoveel mogelijk zelf ontwikkelt en volledige controle wil houden. Een framework biedt hem/haar de mogelijkheid om dat te doen, maar met veel handige tools om het eindproduct snel te kunnen maken.
Laten we een huis bouwen
Om een goed beeld te schetsen van de verschillen, geef ik mijn klanten meestal de vergelijking van het bouwen van een huis.
Als jij (de softwareontwikkelaar) een huis zou bouwen met een CMS, kan dit gemakkelijk worden vergeleken met het kopen van een gloednieuw, volledig afgewerkt huis. Je kiest het CMS, laat het installeren en het staat er. (Als het een open-source CMS zoals Drupal of WordPress is, hoef je het niet eens te kopen).
In deze vergelijking moet je het CMS zien als de projectontwikkelaar van je nieuwe huis en het huis als je toepassing. Bij het ontwerpen van het huis moet de projectontwikkelaar rekening houden met de gemiddelde wensen van alle bewoners die dit type huis bij hem kopen. Misschien bevallen de gemiddelde wensen je, misschien ook niet.
Het enige wat je nog moet doen om je huis compleet te maken, is een beetje verven als je wensen overeenkomen met de gemiddelde wensen. Maar wat als je grote of kleine afwijkende wensen hebt? Dan moet je op zoek naar een bouwbedrijf dat die extra wensen voor je huis kan realiseren. Dit kost je meer tijd en geld en soms zijn je wensen zelfs niet mogelijk in het nieuwe huis.
Dit is het nadeel van werken met een CMS. Daarom raad ik aan om als je voor deze keuze staat, goed na te denken over je wensen en of ze overeenkomen met het CMS. Als de kloof tussen je wensen en de mogelijkheden van het CMS niet al te groot is, kan een CMS een zeer goede keuze zijn.
Laten we het huis bouwen met een framework
Als je een huis zou bouwen met een framework, zou ik het anders beschrijven. Je kunt een framework vergelijken met een mooi stuk grond dat zeer geschikt is voor je huis. Om het te bouwen heb je een paar elektriciens, een loodgieter, een paar bouwvakkers, schilders, een graafmachine, een kraan en waarschijnlijk nog veel meer andere mensen, gereedschappen en expertise nodig. In dit voorbeeld zou een goed framework de grond zijn, gecombineerd met al die werklui, gereedschappen en expertise die allemaal tot je beschikking staan.
Je kunt iedereen instructies geven om je huis volgens je wensen te bouwen. Je opties zijn zo uitgebreid dat je de toiletpotten kunt kiezen die de loodgieter in zijn bus heeft, of je kunt de hele mooie kopen in de bouwmarkt. Het is waarschijnlijk al duidelijk: het ideale huis dat optimaal aan je behoeften voldoet, kan op deze manier snel worden gerealiseerd. Je moet alles zelf beheren en over alles beslissingen nemen. Dit kost je tijd en energie.
En een huis bouwen zonder hulp?
Zonder een CMS of een framework zou het zeer onverstandig zijn om een huis te bouwen. Je moet dan je eigen verf maken en het varken van de buurman plukken om een kwast te maken van zijn haar. Krijg je het beeld? Je moet alles zelf weten en doen.
Conclusie
Werken met een goed CMS is een goede keuze als je geen specifieke eisen hebt of bereid bent concessies te doen. Je kunt dan een aanzienlijk goedkopere oplossing bereiken.
Heb je echter grote plannen met je toepassing en heb je hoge eisen? Moet je toepassing communiceren met andere systemen, of moet alles zeer schaalbaar zijn, of moet je flexibiliteit behouden? Dan kun je beter kiezen voor een goed framework.
Laravel framework en Statamic CMS
Mijn tools bij uitstek zijn Laravel en Statamic CMS.
Ik heb ervoor gekozen om met Statamic CMS te werken omdat het de perfecte balans biedt tussen het bieden van de basisbehoeften die je van een CMS zou verwachten, volledige flexibiliteit aan de voorkant van de dingen, het zich gedraagt als een solide moderne toepassing wat het een goede keuze maakt voor grotere toepassingen, en laten we de add-ons niet vergeten.
Bovendien is Statamic gebouwd op Laravel. Dus als de behoefte ooit ontstaat om iets meer te maken van je website, ben je er klaar voor!
Wanneer ik een framework nodig heb, is de keuze voor mij duidelijk. Laravel is momenteel het meest gebruikte framework en dat is naar mijn mening om een goede reden. (Let op, hier komen wat nerdy ontwikkelaarstermen.) Laravel heeft een enorme bibliotheek met modulaire functionaliteiten die direct gebruikt kunnen worden of uitgebreid kunnen worden, dankzij de grote gebruikersbasis is er veel kennisdeling, Eloquent (kampioen van ORM), een CLI-tool die veel scaffolding-functies bevat, en nog veel meer dingen waar ontwikkelaars blij van worden.
Ik combineer Laravel graag met Nova. Nova is een bouwer van een beheerderspaneel voor Laravel. Hiermee kunnen we heel snel een beheertool realiseren die het gebrek aan een CMS-UI compenseert om je gegevens te beheren.