Al 16 jaar lang ontwikkelen we websites met PHP bij Occhio, maar sinds begin 2016 werken we graag met Node.js. Wat is Node.js en wat betekent dit voor onze opdrachtgevers?

Wat is Node.js?

Node.js is de naam om JavaScript om te kunnen zetten in machinecode. In plaats van het gebruik in de browser van de bezoeker, wordt de machinecode op de server gebruikt als serverside taal en kan daarmee bijvoorbeeld PHP, C# of Python vervangen. Het omzetten van de code gebeurt d.m.v. de opensource V8 Engine van Google. Veel grote websites maken al gebruik van Node.js. Denk aan Netflix, PayPal, eBay, LinkedIN, Uber en natuurlijk Google zelf.

We gebruiken dankzij de NPM (de Node Package Manager) al een paar jaar Node.js packages, een soort pakketjes met opensource code, om websites beter in te kunnen richten. Nu zijn er inmiddels zo veel van deze goede packages, het is de grootste opensource bibliotheek ter wereld, dat we er volledige maatwerk websites mee ontwikkelen.

Voordelen van Node.js Snelheid

Natuurlijk zijn er grote voordelen om met Node.js te werken, anders hadden wij en hiervoor genoemde bedrijven er niet zo gretig gebruik van gemaakt. Ten eerste is Node.js ontzettend snel. Doordat de code omgezet wordt in machinecode, werkt op basis van events en a-synchroon is. Dit geldt voor PHP allemaal niet bijvoorbeeld. Maar het grootste snelheidsvoordeel wordt pas zichtbaar door de manier waarop je ontwikkelt met Node.js.

Onafhankelijke code

Met Node.js ontwikkelen wij geen maatwerk in een CMS of met een framework, maar ontwikkelen we maatwerk met daarin opensource packages. De code is dus niet afhankelijk van een CMS of framework en kan overal geïnstalleerd worden. De packages die worden gebruikt, kunnen altijd vervangen worden. Verhuizen van code of vervangen van onderdelen is een absolute must in deze tijd en een grote pre voor onze opdrachtgevers.

Minder onderhoud

Opensource CMS-pakketten vereisen zeer regelmatige updates. Telkens als er een nieuwe lek ontdekt is, moet het pakket en/of de plugins geüpdate worden. Het gebruik van packages daarintegen heeft het tegengestelde effect. Als je de nieuwste versie packages gebruikt tijdens het ontwikkelen en doortest, dan zet je die versie vast voor de live website. Waar plugins zelf URL's en formulieren aanmaken, is dat iets dan een package niet doet. Dit maakt het gebruik van packages veiliger en dat scheelt dan weer in de onderhoudskosten.

Makkelijker te koppelen

Het prettigste format voor het ontwikkelen en implementeren van een koppeling d.m.v. een webservice is JSON. Dit format wordt door steeds meer bedrijven gebruikt en gebruiken wij ook intensief. JSON is echter niets anders dan hoe je met informatie omgaat binnen JavaScript. Dit zorgt ervoor dat het gebruiken en ontwikkelen van webservices eenvoudiger is met Node.js.

Isomorfische JavaScript met Node.js en React

Om webapps en gewone apps te maken, gebruiken we regelmatig React. React is een opensource product van Facebook waar we gemakkelijker webapps kunnen maken, maar zelfs downloadbare apps mee kunnen maken voor in de Appstore en Google Play. Omdat React JavaScript is kan er code voor Node.js en React delen. Dus code maken om zowel de server als de browser of app mee te bedienen. Een opzet waarin de code gedeeld wordt, noemen we isomorfische JavaScript. Zelfs bij projecten zonder React kunnen we in de browser code hergebruiken die voor packages gebruikt wordt.

Schaalbaar

Node werkt eventdriven en asynchroon. Dit maakt Node.js bijzonder schaalbaar. Als je een pagina opent kunnen er meerdere processen parallel lopen zodat de code sneller klaar is. Maar niet alleen dat, dankzij het feit dat Node.js eventdriven is, is er maar één instantie van de website waardoor er vele verzoeken tegelijk afgehandeld kunnen worden. Bezoekers hoeven dus nooit te wachten op het laden van de site tot er weer een instantie beschikbaar is.

Makkelijk te verhuizen en vervangen

Omdat koppelen makkelijker wordt en het eenvoudig is om zelf packages te ontwikkelen leent Node.js zich uitstekend voor loose coupling en microservices. Het komt er op neer dat we functionaliteiten als op zich staand ontwikkelen. Hierdoor kunnen onderdelen makkelijker vervangen worden en kunnen onderdelen makkelijker door andere partijen overgenomen worden en andersom.

We kunnen zo de kwaliteit van de code en database heel hoog maken en multi-inzetbaar maken. Al die losse onderdelen vormen een naadloos geheel, als gebruiker merk je er niets van. Als opdrachtgever heeft het een enorm voordeel, zeker als je gebruik maakt van onze Cloudservice. Zo is het mogelijk om je site te beheren met een eigen interface, of met WordPress, Drupal, SalesForce of welk systeem je ook maar in gedachte hebt.

Nadelen & risico's

Het enige nadeel op dit moment is dat Node.js out of the box weinig functionaliteit biedt. Voor developers is het echt even terug naar de tekentafel. Gelukkig zien we echter de ontwikkelingen zo hard gaan, dat we ons daar geen zorgen over maken. Er is wel ook een risico en dat is die van geheugenlekken. Dit klinkt misschien erger dan het is. Als we ontwikkelen in Node.js is het belangrijker dan met andere talen om geen zaken in te zetten die niet gebruikt worden, anders loopt het geheugen van de server langzaam vol. We hebben diverse maatregelen om dit te voorkomen en uiteraard houden we onze servers altijd goed in de gaten.

Conclusie en meer informatie

Wij zijn heel enthousiast over Node.js en alle mogelijkheden die deze manier van werken biedt. Wil je ook je nieuwe website in Node.js laten ontwikkelen, Neem gerust contact met ons op.

Deel dit artikel via
X

Welkom! Deze website maakt gebruik van cookies

Geef hier aan welke cookies we mogen plaatsen. De noodzakelijke en statistiek-cookies verzamelen geen persoonsgegevens en helpen ons de site te verbeteren.

Noodzakelijke cookies helpen een website bruikbaarder te maken, door basisfuncties als paginanavigatie en toegang tot beveiligde gedeelten van de website mogelijk te maken. Zonder deze cookies kan de website niet naar behoren werken.

NaamAanbiederDoelVervaldatum
admin_authOcchio.nlWij gebruiken deze cookie om te onthouden of een Occhio.nl gebruiker is ingelogd in ons systeem.5 jaar
October_sessionOcchio.nlDeze cookie wordt gebruikt door ons content management systeem en wordt geplaatst bij bezoek aan willekeurig welke pagina van onze website. Sessie
NaamAanbiederDoelVervaldatum
_gat_gtag_UA_63158_1Google-analytics.comGebruikt door Google Analytics om verzoeksnelheid te vertragen1 minuut
_gaGoogle-analytics.comRegistreert een uniek ID die wordt gebruikt om statistische gegevens te genereren over hoe de bezoeker de website gebruikt.1 jaar
_gidGoogle-analytics.comRegistreert een uniek ID die wordt gebruikt om statistische gegevens te genereren over hoe de bezoeker de website gebruikt.24 uur

Occhio.nl maakt geen gebruik van marketing cookies.

Cookies

Een cookie is een klein tekstbestand dat tijdens uw bezoek aan een website wordt geplaatst. In dit tekstbestand wordt informatie opgeslagen. Deze informatie kan bij een later bezoek weer worden herkend door deze website.

Bekijk hier onze privacy verklaring