Sinds twee jaar is mijn voornaamste bezigheid back-end web development. Met programmeren op zich redde ik me wel, dit doe ik al langer. Desondanks is het uitdagend om een goede back-end neer te zetten.
Het probleem
Vanaf het begin ervoer ik een gebrek aan structuur in het opbouwen van een website. Niet alleen wat betreft de logische structuur (hoe maak ik het probleem behapbaar?), ook wat betreft de fysieke structuur (wat voor mappenstructuur hanteer ik?). Bovendien duurde het niet lang voordat ik ook handvatten zocht voor het schrijven van de code zelf; een oplossing kent vele vormen, maar hoe schrijf je een goede oplossing (overzichtelijk, efficiënt, ...)?
De oplossing?
Al snel stuitte ik op het fenomeen framework als zijnde een groot deel van de oplossing voor mijn problemen. In web development is een framework een verzameling code dat een zekere visie op goede website opbouw deels realiseert. Deze realisatie komt in de vorm van op elkaar afgestemde componenten (functies en objecten) als implementatie van veel voorkomende functionaliteit, en ook een mappenstructuur waarin de toepassing van deze componenten dient te komen. Oftewel, een framework biedt een gestructureerde aanpak van het website maken.
Maar hoewel frameworks al snel in beeld waren, voelde ik me wat te naïef om ze meteen toe te passen. Het voelde te magisch en obscuur om met concepten als routing, MVC en ORM aan de slag te gaan zonder enig idee te hebben hoe het werkt. Dit ondanks dat er veel vragen en antwoorden te vinden zijn rondom wat deze concepten voorstellen.
Stap terug: improvisatie
In plaats daarvan heb ik zelf geëxperimenteerd met het implementeren van deze concepten. Ik ben aan de slag gegaan met een front controller (en routing), models, controllers en views (MVC) en recentelijk een uitbreiding van de models functionaliteit tot iets in de richting van ORM. Dit slaagde in zoverre dat m'n code begon aan te voelen als niet langer een verzameling scripts, maar als een web applicatie. Zodoende kon ik m'n websites zonder veel moeite uitbreiden tot sites van praktisch nut.
Zolang je alleen werkt is je eigen brouwsel prima; wellicht leer je daar zelfs het meest van. Maar wil je verder groeien, dan is eigen code minder ideaal. Het lijkt me zeer gewenst dat iemand anders aan de slag kan en wil gaan met mijn code. Maar eigen code is niet goed gedocumenteerd en, laat ik eerlijk zijn, geïmproviseerd. Wat te doen?
Een boek
Mijn ervaring is dat je met een boek een grote stap kunt maken—een goed beschouwend boek resulteert ten minste in overzicht over wat iets is en wat niet. Ik besloot daarom op zoek te gaan naar goed leesmateriaal, in de hoop dat iemand de kunst van het websites-maken heeft beschreven.
Tot mijn teleurstelling viel dit tegen. Wanneer het gaat om websites in het bijzonder was mijn conclusie dat ik genoegen moest nemen met het concretere onderwerp van de beschouwing van een specifiek framework. In de hoop dat ik zelf de kunst kon afleiden op basis van een uitgebreide beschrijving van een framework heb ik gekozen voor een boek over Laravel; een PHP framework dat momenteel aardig populair lijkt.
Aan de slag
Het is me duidelijk geworden dat Laravel veel werk uit handen neemt. Naast eerder genoemde concepten levert het uitgebreide templating, middleware, autenticatie en autorisatie, een verzameling tools voor het maken van API's en veel meer. Het gevoel dat ik met een framework in te diep water duik is weg, en het plaatst geavanceerdere websites binnen mijn bereik. Dit blog is mijn eerste applicatie in Laravel. Enjoy!