Is een eigen front-end framework nog van deze tijd?

In het begin van dit jaar begon ik mijn stage bij Ambrero. Het onderwerp: een technische analyse van het front-end framework dat Ambrero ontwikkelde en aan de basis ligt van alle maatwerk applicaties. Er werd mij gevraagd om diverse front-end frameworks te vergelijken en een advies te geven over de doorontwikkeling van het eigen framework.

Met een gezonde dosis skepsis begon ik mijn onderzoek: ik vroeg mij af waarom ontwikkel je een eigen framework terwijl er tientallen open-source frameworks op de markt zijn? In dit blog lees je de uitkomsten van mijn onderzoek en geef ik een antwoord op de vraag in welke gevallen de ontwikkeling van een eigen frond-end framework gelegitimeerd is.

Efficiënt ontwikkelen met een front-end framework

De reden dat Ambrero een eigen front-end framework heeft gebouwd is om zo efficiënt mogelijk maatwerk applicaties te kunnen ontwikkelen. Die keuze kwam niet uit het niks: er was geëxperimenteerd met enkele bestaande frameworks, maar na verloop van tijd werd geconcludeerd dat deze open-source front-end frameworks te veel wijzigingen ondergingen om de benodigde continuïteit te bieden. Het upgraden van het front-end framework naar een nieuwe (soms veiligere) versie zorgde voor veel extra ontwikkelkosten die uiteindelijk bij de klant in rekening moesten worden gebracht. Dat was nauwelijks verdedigbaar.

“Meer is niet altijd beter.”

Daarnaast bevatten de open-source frameworks steeds meer functionaliteit en werden ze complexer doordat de inzetbaarheid in verschillende situaties en in combinatie met allerlei technologieën een belangrijke factor werd voor het succes. Terwijl het doel van Ambrero was om applicaties klein en onderhoudbaar te houden.

De ontwikkeling van het front-end framework, Ambrero Base, startte als framework met beperkte functionaliteit om de Javascript logica op een gstructureerde manier op te zetten. In de afgelopen jaren is Ambrero Base verder ontwikkeld en werd het framework steeds efficiënter en veelzijdiger. Tegelijkertijd zijn open-source front-end frameworks natuurlijk ook verder geëvolueerd. Vandaar de vraag: Hoe verhoudt Ambrero Base zich tegen over de huidige populaire front-end frameworks. Ik onderzocht de architectuur, snelheid en het geheugengebruik, en vergeleek deze met het Angular en Nuxt framework. De vraag die in mijn achterhoofd bleef zitten: doet Ambrero er verstandig aan om het eigen framework te blijven hanteren?

Framework voor datagerichte applicaties

Elk framework heeft een verschillend uitgangspunt. Voorbeelden zijn het maken van een standalone applicatie en het maken van een simpele content website. Ambrero Base draait om data-gerichte webapplicaties. Het framework is bedoeld voor de ontwikkeling van veelal administratieve applicaties waar veel communicatie plaatsvindt tussen de webbrowser en de server. Dashboards en beheersystemen bijvoorbeeld.

Analyse van de verschillen tussen Ambrero Base, Nuxt en Angular

In mijn analyse vergeleek ik de frameworks eerst op snelheid en geheugengebruik. Mijn tests wezen uit dat de verschillen tussen deze frameworks in de praktijk marginaal zijn. Alleen bij de verwerking van grote hoeveelheden data zie je verschillen. Het Angular framework gebruikt bijvoorbeeld een “promise based” techniek waardoor er sneller en efficiënter wordt omgegaan met hogere aantallen data, iets wat in Ambrero Base ontbreekt.

Ambrero Base viel positief op qua geheugengebruik, veroorzaakt door de minder intensieve template engine. Deze biedt weliswaar minder functies dan Angular en Nuxt maar niet alle functies zijn nodig om hetzelfde eindresultaat te bereiken. Een goed voorbeeld dus van de manier waarop Ambrero bewust omgaat met schaalbaarheid.

Uit mijn technische analyse kwamen enkele adviezen voort over de architectuur van het framework. Hoewel het AB-framework is geoptimaliseerd voor de technology stack die Ambrero hanteert zijn er in de architectuur van de vergeleken open-source frameworks enkele kansen te ontdekken om het eigen framework nog krachtiger te maken. Ik heb bijvoorbeeld aan de hand van de werking van Nuxt en Angular enkele adviezen gegeven over de structurering van controllers: het afdwingen van een bepaalde structuur zorgt voor consistentie en dus voor een betere leesbaarheid. Bovendien geeft het mogelijkheden om controllers states te geven, iets wat op dit moment nog in het AB-framework ontbreekt.

Waar Angular en Nuxt in uitblinken

Met het open-source karakter van Angular en Nuxt ligt de implementatie van deze frameworks voor de hand. Er is een wereld aan documentatie en codevoorbeelden voorhanden. Dat maakt de overdraagbaarheid naar een andere ontwikkelaar, of het inwerken van een nieuwe collega veel makkelijker. Bij eventuele samenwerking met een andere partij heeft het gebruik van een dergelijk open-source framework dus sowieso de voorkeur.

In de meeste gevallen vind ik het niet voor de hand liggen om een eigen framework op te zetten: de kracht van frameworks als Angular en Nuxt is juist de flexibiliteit. En heb je tóch goede redenen om een eigen framework te ontwikkelen, je zet niet zomaar een goed fundament neer: daar is de nodige kennis en ervaring voor nodig. Met het gebruik van een veelgebruikt open-source framework weet je zeker dat het met de architectuur van je front-end wel goed zit: de keuzes die ontwikkelaars daarin hebben gemaakt zijn uitgebreid bediscussieerd en in praktijk gebracht.

Voordelen van een framework dat geoptimaliseerd is voor een specialistische werkwijze

Je dus ziet dat open-source frameworks in de loop der jaren steeds verder geoptimaliseerd zijn. De community achter een framework als Angular tunet continu aan het framework. Nuxt en Angular zijn zeer veelzijdig: ze zijn in een veelvoud van situaties een goede keuze.

Ik zie echter ook dat de keuze voor een eigen Ambrero de nodige voordelen heeft. Het grootste voordeel zie ik in de consistentie over de verschillende lagen van de applicatie: de wijze waarop op de back-end logica wordt gestructureerd heeft Ambrero als het ware doorgezet naar de front-end. Voor de developer is de manier van werken in het front-end gedeelte ongeveer hetzelfde als op de back-end. Dat concept heeft natuurlijk voordelen voor de onderhoudbaarheid: de structuur van de logica is eenduidig en zowel back-end als front-end kunnen door dezelfde developer geschreven worden.

Ambrero Base is veel verder geïntegreerd met het back-end dan dat mogelijk zou zijn bij het gebruik van een ander framework. De specifieke opbouw van het framework maakt dit mogelijk. De integratie met het C# of Java back-end is heel direct. Zaken als routing (de manier waarop de logica in de browser wordt gekoppeld aan de juiste functies op het back-end) hoeven daardoor ook niet dubbel te worden uitgevoerd. Dat maakt de ontwikkeling efficiënt.

Een derde voordeel is de onderhoudbaarheid: eerder schreef ik over de ongewenste situatie dat updates van open-source frameworks teveel kosten met zich meebrachten wanneer die updates moesten worden doorgevoerd in de applicaties van Ambrero. Het gebruik van een eigen framework (of een eigen fork van een bestaand open-source framework) geeft daar uiteraard meer controle in.

Antwoord op de vraag; is een front-end framework wel van deze tijd?

Daarmee kom ik terug op de kernvraag: is de doorontwikkeling van het eigen front-end framework nog steeds een goede keuze, of kan Ambrero in dit geval beter meeliften op de ontwikkelingen van de open-source community?

Zeker is dat het eigen framework voor Ambrero de nodige voordelen biedt in efficiëntie en onderhoudbaarheid. De controle die Ambrero heeft wat betreft het uitrollen van updates en het behoud van consistentie tussen het back-end en front-end zijn voor ontwikkelaars grote voordelen. Die zullen echter lang niet in elke situatie opwegen tegen de flexibiliteit, functionaliteit en documentatie van bestaande frameworks.

In het geval van Ambrero werpt de minimalistische aanpak binnen Ambrero Base zijn vruchten af: het framework kan gebruikt worden voor complexe applicaties zonder dat er functies worden gemist. De snelheid waarmee ontwikkelaars over de hele linie (van backend tot browser) kunnen programmeren zorgt voor lagere ontwikkelkosten.

Op basis van mijn adviezen is de roadmap van het Ambrero Base framework bijgewerkt. De punten ‘structuur’ en ‘data ophalen’ krijgen prioriteit en worden binnenkort geoptimaliseerd. En wat brengt mijn onderzoek binnen Ambrero? “Een les die we leren uit dit onderzoek is dat we ons framework regelmatig objectief moeten vergelijken met andere frameworks. Zo komen de verbeterpunten naar boven en blijft het up-to-date”, aldus Bart Overbeek, Front-end developer bij Ambrero.

Concluderend stel ik dat de ontwikkeling van een eigen framework voor organisaties zonder stabiele ontwikkelafdeling niet effectief is. Hen adviseer ik om te vertrouwen op de open-source community. Maar voor Ambrero is de ontwikkeling van het eigen front-end framework een goede keuze geweest. Het framework draagt bij aan efficiënte ontwikkeling en onderhoud van complexe webapplicaties. Daarmee is het een vitale schakel geworden in het betaalbaar houden van maatwerk ontwikkeling.

Job Vermeulen
Over de auteur

Stagiair Ambrero

Mis niets meer!

Ontvang inside informatie over software innovatie in je mailbox. Meld je aan en krijg The innovator’s book cadeau.

Ambrero cadeau

Bedankt! Wil je ook het kado ontvangen? Vul dan je adres in, zodat we het kunnen opsturen. Zolang de voorraad strekt.

Bedankt!

Houd je brievenbus in de gaten.

Vond je dit interessant? Ontdek meer!

Lees meer over deze onderwerpen

Software ontwikkeling Development

Software ontwikkeling voorop lopen in de markt

Wil je snel vooruit met je organisatie? Innoveren met software ontwikkeling is de manier om dit te realiseren. Maar eigen software laten maken brengt ook onzekerheid en lastige keuzes met zich mee. Hoe lang duurt het en wat krijg je uiteindelijk?

Meer info
Nu zijn we nieuwsgierig naar jou. Waar wil jij heen?
Neem contact op

Bel ons direct op
088 262 7376 100% van onze klanten beveelt ons aan bij andere organisaties
Feedback Company

© 2005 - 2022     Ambrero Software BV • Algemene voorwaardenPrivacyverklaring
Klantwaardering