NestJS

Vaak wordt er veel aandacht besteed aan wat de eindgebruiker te zien krijgt, maar een goede user experience draait natuurlijk om veel meer dan alleen looks. Om achter de schermen te zorgen dat alles op rolletjes verloopt gebruiken we graag NestJS.

Wat is NestJS?

NestJS is een framework voor het maken van schaalbare, efficiënte server-side applicaties en API’s met Node.js. Het maakt gebruik van JavaScript met TypeScript-ondersteuning en is momenteel waarschijnlijk het enige beschikbare, goed gestructureerde framework met volledige TypeScript ondersteuning. Met 1,5 miljoen downloads per week (juli 2022) is NestJS het snelst groeiende Node.js framework. Vooral als je bedenkt dat dit in juli van 2021 nog 350K downloads per week waren (check hier de actuele populariteitscijfers).

Nieuwe uitdagingen vragen om nieuwe oplossingen

Mede dankzij de populariteit van Node.js is JavaScript al jaren de programmeertaal bij uitstek op het web voor zowel front- als backend applicaties. Door het enorme scala aan mogelijkheden verbetert het de productiviteit van ontwikkelaars en maakt het de ontwikkeling van interactieve software mogelijk.

Dit heeft geleid tot prachtige projecten zoals React, Vue en Angular. Maar de laatste jaren neemt Node.js af in populariteit. Dat komt voornamelijk door de uitdagingen op het gebied van softwarearchitectuur die zich voordoen als je het hebt over schalen of het toevoegen van functies. Het betere alternatief blijkt NestJS. Door de architectuur van Nest is het relatief gemakkelijk om zeer testbare, schaalbare, ‘loosely coupled’ en gemakkelijk te onderhouden applicaties te creëren.

De voor- en nadelen van vrijheid

Zonder nu een enorm technisch verhaal te gaan houden zijn er grofgezegd twee soorten frameworks: een framework wat je enorm veel vrijheid geeft om alles te doen en te laten wat je als developer maar kan bedenken of een framework waar je je aan allerlei regels moet houden. In eerste instantie klinkt het misschien alsof ontwikkelaars zoveel mogelijk vrijheid willen hebben in het creëren en ontwikkelen van software, maar deze vrijheid komt wel vaak met een prijskaartje. Zo is het van essentieel belang dat een developer de juiste keuzes maakt; bijvoorbeeld op het gebied van tools, technologieën en de structuur van de code. Hoe minder regels een framework stelt, hoe groter het risico op een ongestructureerde bende. Dit kan vooral problemen geven als een project groter wordt en er meerdere verschillende developers aan werken. NestJS is een zogenaamd ‘highly opinionated framework’. Dit betekent dat ontwikkelaars zich aan allerlei regels dienen te houden. Bepaalde code wordt op specifieke plekken geschreven, volgens een duidelijke structuur, gebruikmakend van specifieke tools. Deze regels zorgen ervoor dat iedereen die bekend is met Nest relatief eenvoudig kan aanhaken bij een project, zonder zich eerst uitgebreid te moeten inlezen in de tools die worden gebruikt of de organisatie van de codebase. Dat maakt het relatief eenvoudig om meerdere developers op één project te zetten en zo de productiesnelheid te verhogen. Daarnaast is het daardoor dus ook eenvoudiger om een Nest-project te onderhouden.

Voordelen

  • De schaalbaarheid van NestJS-applicaties maakt het een ideale keuze voor het ontwikkelen van grote enterprise-webapplicaties op bedrijfsniveau;
  • De combinatie van NestJS met frontend-frameworks zoals React, Angular en Vue is ideaal voor e-commerce websites met veel traffic;
  • De documentatie van NestJS is mega uitgebreid wat het goed mogelijk maakt om specifieke uitdagingen op te lossen.

Nadelen

  • NestJS is erg interessant voor snelle, grote, schaalbare projecten. Als het echter gaat om kleine applicaties met weinig vereisten, dan kan Nest de opstartsnelheid van een applicatie onnodig vertragen.
Raymond
Ondersteuning nodig bij jouw NestJS applicatie?

Wil je NestJS inzetten voor jouw volgende project of maatwerksoftware? Of misschien heb je wel behoefte aan het inhuren van een van onze developers, NestJS programmeurs of consultants om de capaciteit van jouw development team te vergroten.