maak een afspraak
Web development bureau
Code-on helpt uw bedrijf zijn werk te vereenvoudigen

Waarom je best een framework gebruikt.

Application frameworks zijn sets of tools bovenop een programmeertaal, ontworpen om het werk van een web developer te vereenvoudigen. Wanneer je het begrip “framework” volledig wil begrijpen is het best om de evolutie van de taken van een web developer eventjes van naderbij te bekijken. In wat volgt zal ik vier revolutionaire ontwikkelingen bespreken die tot het huidige gebruik van frameworks geleid hebben. Aan het einde van het artikel geef ik meer uitleg over het verschil tussen een framework en een CMS en welke van de twee het meest geschikt is voor jouw website! Maar eerst gaan we terug naar het einde van de vorige eeuw.

Revolutie 1: De opkomst van PHP

Aan het begin van het internettijdperk bouwden web developers websites in HTML, zonder extra versierinkjes of automatisaties. Het duurde echter niet lang voordat web designers herhalingen ontdekten in ontwikkelingspatronen en manier gingen zoeken om hun werk te vereenvoudigen. Dit vormde de start van de huidige scripttalen. Men startte met Perl maar dit werd al snel opgevolgd door PHP en andere scripttalen. Opmerkelijk is dat PHP een taal is die erg snel populair werd. De taal werd oorspronklijk ontworpen als een geavanceerde template taal en later, vanaf PHP 3 kon je er ook webscripts mee schrijven om je site te automatiseren.

De nadelen van PHP

Na de introductie van deze webscripts en de mogelijkheid tot automatisatie kwam PHP al snel bekend te staan als een slecht ontworpen taal. Er zit veel herhaling in en naarmate je meer code schrijft wordt het bijzonder lastig om het te onderhouden, laat staan dat je de code die je een paar jaar geleden schreef nog kan begrijpen. Spaghetticode en een overvloed van bad practices waren dan ook de gevolgen. Dit soort code is erg moeilijk te onderhouden en bovendien leerden veel webbouwers hierdoor de verkeerde technieken om een website op een goede manier te bouwen.

Hoe kon PHP zich ontwikkelen als een toptaal?

Het grote voordeel van PHP is duidelijk: het is heel erg simpel. PHP is bijzonder toegankelijk voor beginnende programmeurs en HTML kan samen met PHP door elkaar gebruikt worden. Je kan dus in PHP hele mooie projecten maken. Zo is Facebook ooit gestart met deze drieletterige scriptnaam en ook ik moet schuld bekennen. Als jonge programmeur ben ook ik ooit begonnen met PHP.

Revolutie 2: Het begin van CMS

De herhaling binnen de PHP-taal inspireerde slimme programmeurs om contentmanagementsystemen (CMS) te bouwen. Twee dingen zetten hen hiertoe aan:

  • Patronen herhalen zich steeds
  • De druk om snel websites te bouwen steeg

Freelancers gingen massaal aan de slag met open source pakketten zoals PHPnuke en PHPbb. Dit leidde tot veel websites van matige kwaliteit die binnen een paar uren of dagen in elkaar werden geflanst. Natuurlijk waren deze contentmanagementsystemen nuttig, maar freelancers liepen altijd tegen dezelfde tekortkomingen aan. Het was bijna onmogelijk om de wensen van de klant perfect uit te voeren en men moest dus steeds toegevingen doen. Het was een echte nachtmerrie om de constante stroom van veiligheidsupdates en versie-updates bij te houden. Tijd dus voor een volgende revolutie!

Revolutie 3: De ontwikkeling van CMS

Aan het begin van de 21ste eeuw kwamen er steeds meer open source CMS-applicaties online. De drie bekendste applicaties die vandaag nog veel gebruikt worden zijn:

  1. Wordpress
  2. Joomla
  3. Drupal

Deze nieuwe CMS-applicaties probeerden de problemen van de vorige contentmanagementsystemen op te lossen met simpelere plug-in systemen, verbeterde CMS-opbouw, snellere updates enzovoort. Deze systemen wisten zo veel van de vernoemde problemen op te losen en boden programmeurs handvatten aan om snel een website op te zetten aan de hand van een standaardtemplate. Hiermee waren echter niet alle problemen van de baan.

De blijvende nadelen van CMS

Er blijven nadelen verbonden aan contentmanagementsystemen. Het blijft een prefab systeem dat je dwingt om te denken en te handelen via een bepaalde logica bij het ontwikkelen van je concept. Op het moment dat je van deze logica wenst af te wijken wordt het proces erg arbeidsintensief en merk je dat de custom code updates moeilijk te onderhouden zijn. Dit komt door het hoge aantal veiligheidsupdates en versie-upgrades zoals reeds eerder vermeld. Voor innovatieve programmeurs zijn CMS simpelweg niet flexibel genoeg. Programmeurs moeten rekening kunnen houden met ongebruikelijke situaties en willen liever niet hele uren verliezen aan het oplossen van problemen die met een andere methode gemakkelijk op te lossen zijn.

Revolutie 4: De introductie van frameworks

Aan het begin van de 21ste eeuw was het reeds mijn wens om gebruik te maken van een systeem dat mij maximale vrijheid zou geven in combinatie met een vaststaande logica die ook mijn collega’s zouden begrijpen. Het was enorm frustrerend om voor iedere website steeds het wiel weer uit te vinden maar ik wilde ook niet gebruik maken van rare database schema’s en moeilijk te onderhouden systemen. Gelukkig bleek ik niet de enige programmeur met deze wens en kwam er rond 2005 een nieuwe revolutie op gang. Door toedoen van slimme ontwikkelaars ontstond een nieuwe generatie van open source frameworks.

Frameworks bieden programmeurs alle vrijheid om te maken wat ze willen terwijl ze de mogelijkheid behouden om voorgeprogrameerde patronen toe te passen. Mijn interesse was alvast onmiddellijk gewekt om met deze vorm van programmeren aan de slag te gaan. Binnen het framework worden webapplicaties gebouwd vanuit het:

  • MVC patroon
  • DRY principe

MVC patroon

De model view controller is een ontwikkelpatroon dat complexiteit in drie delen opdeelt. Elk deel heeft zijn eigen logica:

  • Model: de informatie waar de applicatie mee gaat werken
  • View: de informatie die weergegeven wordt
  • Controller: reageert op evenementen

Het MVC patroon is een praktische manier voor het ontwikkelen van een website of applicatie. Aan de hand van dit patroon voeg je op een heel simpele wijze functionaliteit en logica toe. Daarnaast is de code ook makkelijk te volgen door eventuele nieuwe leden in je team. Dit zijn de grote voordelen van het MVC patroon: het is herkenbaar en makkelijk te volgen.

DRY principe

Wanneer je op school iets mispeutert dan moet je soms wel honderd keer dezelfde paragraaf overschrijven. Dit is een echte straf. Dit is de essentie van het DRY principe. Don’t Repeat Yourself. Als je een programmeur bent wil je niet honderd keer dezelfde code schrijven. DRY is één van de core principes van Django. Omdat je niet telkens de functionaliteit herhaalt op verschillende plekken, maar slechts eenmaal een code invoegt en die code constant opnieuw gebruikt, zorgt het voor een cleane code,. Zo wordt het makkelijker om bugs te vinden en deze op te lossen.

Welk taal met welk framework?

Na een uitgebreid onderzoek naar de ideale programmeertaal viel mijn oog op Ruby en Python. Beide talen schrijven compact en zijn makkelijk te lezen. De keuze van Code-on ging uiteindelijk naar Python, omdat er geen nodeloze leestekens werden gebruikt. De leestekens, ;()$, zijn vanaf nu verleden tijd. Nu moest er nog een keuze gemaakt worden omtrent het framework. Het was een strijd tussen Django en Ruby on Rails. Django was toendertijd een bètaversie, terwijl Ruby al een eerste versie uitgebracht had. Deze twee frameworks ontketenden gezamelijk een revolutie binnen de wereld van opensourceontwikkeling. Ondanks dat deze frameworks niet de eerste op de markt waren, wonnen ze wel direct aan populariteit.

Bij Code-on hebben we ervoor gekozen om te werken met het Django framework. In een ander artikel kan je meer informatie en motivatie vinden over de keuze.

CMS of Framework? Wanneer gebruik je wat?

Natuurlijk zijn CMS per definitie niet minder geschikt voor jou dan een Framework. Het hangt namelijk allemaal af van je doel. Indien je een standaardwebsite nodig hebt, met een homepage, nieuwsafdeling, blog, contactpagina en comments, dan kun je kiezen voor een CMS. Het voordeel is dat deze websites goedkoper zijn, omdat ze simpel te maken en aan te passen zijn aan de hand van een template.

Heb je echter specifieke wensen? Wil je een specifieke functionaliteit toevoegen aan je website met bepaalde dataconnecties, import/export van gegevens of gebruik van API? Dan ben je beter af met een framework. Het zal je op de korte en lange termijn vele uren werk en problemen besparen.

Gebruik je geen framework voor een gewone website?

Het klinkt je misschien raar in je oren maar voor een simpele website maak je natuurlijk ook gebruik van een framework! De CMS die je namelijk gebruikt is ook via een framework opgebouwd. Met een CMS kan je echter geen framework bouwen. In simpele taal betekent dit dat je Wordpress zou kunnen bouwen met Django, maar dat je Django niet kan bouwen met een standaard Wordpress thema. Code-on maakt vaak gebruik van Django-cms voor klanten zonder bijzondere eisen. Het voordeel is dat je naast de CMS nog steeds de voordelen van het framework kan gebruiken.

Ons advies: Gebruik een framework!

De conclusie van dit artikel is zo klaar als een klontje. Ik raad iedereen aan om een framework te gebruiken voor alle online projecten. Deze vorm van ontwikkeling is het modernst en zorgt voor de hoogste kwaliteit. Natuurlijk kun je voor simpele opdrachten kiezen voor contentmanagementsystemen zoals Drupal of Wordpress, maar als je een platform, een nieuw sociaal netwerk of een nieuwe applicatie met specifieke functionaliteit wilt ontwikkelen, kies dan altijd voor een framework.

Code-on is de marktleider in het gebruik van Django in Vlaanderen en wij helpen jou graag met jouw volgende project. Neem gerust vrijblijvend contact met ons op om de verschillende opties te bespreken.

Portfolio

Husky marketing planner

Huskymarketingplanner
SAAS
  • SAAS
  • tool
  • django, python

Travelbird

Djangowebstudio
Reiswebsite met dagelijkse promoties
  • High traffic e-commerce site
  • High urgency development
  • Onderhoud en uitbreiding bestaande code

Digital signage web management systeem

wow
Digital signage
  • Digital signage
  • Raspberry PI
  • Online beheer

VentureFund.io

Code-on
Venture Capitale Fonds
  • Platform voor startups
  • Dashboard voor data-analyse
  • High traffic website

Web en software toepassingen voor sp.a

Communication Matters
Een langdurige samenwerking
  • In opdracht van communicatie bureau
  • Verscheidene projecten op maat
  • Web en mobiele toepassingen

Roeland VZW

Code-on
Taalkampen en vakanties voor jongeren
  • Optimalisatie van de bedrijfsprocessen
  • Administratieve verlichting
  • Diverse groepen van gebruikers

DJ-Matic

Code-on
Encore Music Player
  • Online muziekapplicatie
  • Beschikbaar via browser of app
  • Geschikt voor iOS en Android