Wat is een tech stack en hoe kies je de juiste?

Gepubliceerd op 1-6-2021 door Gitanjali Maria en Quirine Storm van Leeuwen

Wat is een tech stack?

Ben je van plan om een software- of mobiele app voor je bedrijf te gaan maken? Je krijgt dan soms te horen dat het met jouw huidige tech stack niet mogelijk is om bepaalde functies aan je app toe te voegen of dat het door je tech stack komt dat je website zo traag is.

Als je dan eigenlijk geen idee hebt waar ze het over hebben, moet je dit artikel lezen. Hierin wordt uitgelegd wat een tech stack is, wat de verschillen en overeenkomsten zijn met een software stack, waarom die stack zo belangrijk is en hoe je de juiste stack kiest voor jouw bedrijf. Je vindt hier ook een voorbeeld van een social media gigant die zijn tech stack grondig heeft herzien om klantvriendelijker te worden.

Wat is een tech stack?

Een tech stack of technologiestack wordt ook wel een solution stack genoemd. Het is een verzameling technologieën die worden gebruikt om softwareapplicaties te bouwen en uit te voeren. De stack omvat de webframeworks, programmeertalen, servers, besturingssystemen, databases enzovoort die nodig zijn voor het ontwikkelen en uitvoeren van een webapplicatie of een mobiele app.

Stel, je hebt een webapplicatie (zoals een website) gemaakt met de programmeertaal Python en die wordt gehost op een Apache-webserver. Python en Apache zijn dan elementen van de tech stack van jouw website.

Twee onderdelen van een tech stack

Elke tech stack bestaat uit twee onderdelen:

  • Client side (front-end): Dit zijn de componenten waarmee klanten rechtstreeks in aanraking komen of die ze op hun scherm te zien krijgen. Enkele voorbeelden van front-end technologieën zijn HTML, CSS en JavaScript. Deze worden respectievelijk gebruikt om de structuur van de website te ontwerpen, opmaakelementen toe te voegen en interactieve componenten te introduceren, zoals social media knoppen of animatieknoppen.
  • Server side (back-end): Dit zijn de technologiecomponenten die klanten niet te zien krijgen en waarmee ze niet rechtstreeks iets doen, maar die nodig zijn om de client-side technologieën te laten werken. Programmeertalen zoals PHP, webframeworks zoals Django en servers zoals Apache maken allemaal deel uit van back-end ontwikkeling.

* Opmerking: zie de bijlage voor een definitie van algemene componenten.

server side en client side
Componenten van een tech stack (bron)

Wat is een software stack?

Een software stack is een subset van een tech stack en bevat alleen de softwarecomponenten die worden gebruikt om een applicatie te bouwen. De software stack bestaat uit programmeertalen, codeframeworks, besturingssystemen, middleware, webservers en installeerbare bestanden. Net zoals een tech stack heeft een software stack ook server-side en client-side elementen.

Als je cloudservices zoals Azure gebruikt voor de infrastructuur van je applicatie, maken deze ook deel uit van de software stack. Eigenlijk is er dan nauwelijks verschil tussen je tech stack en je software stack.

Verschil tech stack en software stack
tech stack vs. sofware stack

3 veelgebruikte tech stacks

Het is meestal niet nodig om je tech stack helemaal zelf samen te stellen. Hier zijn enkele populaire kant-en-klare stacks die je veel tijd en moeite besparen.

  1. LAMP

Deze stack bevat de programmeertaal Linux, een Apache-server, MySQL-database en de scripttaal PHP. Omdat alle componenten open source zijn, kun je de stack gemakkelijk aanpassen. Je kunt bijvoorbeeld Python gebruiken in plaats van PHP en de andere elementen ongewijzigd laten. De LAMP-stack wordt veel gebruikt om webapplicaties met dynamische content te maken, dat wil zeggen met webcontent die wordt aangepast op basis van bepaalde gebruikerskenmerken, zoals het gedrag binnen de sessie, data van eerdere interacties en voorkeuren.

  1. MEAN

De MEAN-stack omvat de MongoDB-database, een Express.js-server, het AngularJS-framework en de Node.js-runtimeomgeving. Hiermee kun je eenvoudig van een Minimum Viable Product (MVP) opschalen naar een compleet product met volledige functionaliteit. Er moet dan wel in alle fasen van de app-ontwikkeling dezelfde programmeertaal (JavaScript) worden gebruikt. Deze stack is geschikt voor applicaties zoals agenda’s, kaarten, workflow management systemen en aggregatiewebsites voor nieuws.

  1. MERN

Het belangrijkste verschil tussen MERN en MEAN is dat MERN niet Angular maar React als webframework gebruikt. Dat maakt het werken met deze stack iets lastiger, maar je kunt dan wel hoogwaardige applicaties en interactieve gebruikersinterfaces (UI’s) maken. Angular heeft een vooraf gedefinieerd framework, maar met React kunnen ontwikkelaars kleine wijzigingen aanbrengen in de code om aangepaste UI-elementen te maken.

Tech stacks die door populaire applicaties worden gebruikt

Hier zijn de tech stacks van enkele populaire webapplicaties om je een indruk te geven van het soort output en de UI-ervaringen die je van verschillende tech stack-combinaties mag verwachten.

componenten webapplicaties

Waarom is jouw tech stack belangrijk?

Je app-ontwikkelaar zal je ongetwijfeld op het hart drukken dat de keuze van de juiste tech stack heel belangrijk is en wel om de volgende redenen:

Bepaalt de schaalbaarheid van je app

Je kunt je tech stack vergelijken met het fundament en de draagconstructie van een gebouw. Die bepalen hoe sterk het gebouw is en welke aanpassingen er naderhand nog mogelijk zijn. Je tech stack bepaalt ook of je nog meer functionaliteit kunt toevoegen aan je applicatie, de snelheid kunt verbeteren of de app kleiner kunt maken zodat deze eenvoudiger kan worden gedownload.

Is van invloed op de integratiemogelijkheden van je app

Je software moet met andere applicaties van derden kunnen worden geïntegreerd om een zo breed mogelijke functionaliteit te bieden. Als je bijvoorbeeld een app voor payrollbeheer maakt, moet deze geïntegreerd kunnen worden met HR-apps. Java, C#, .NET en NGINX- en Apache-webservers zijn bijvoorbeeld tech stack-elementen die eenvoudige integratie ondersteunen.

Is van invloed op de prijs van de app

De tech stack die je kiest, is rechtstreeks van invloed op de ontwikkelingskosten voor je app, zoals de kosten voor technische tools en ontwikkelaars. Het ontwikkelen van een app in PHP is bijvoorbeeld goedkoper dan in Java of Python, omdat het PHP-programmeurs makkelijker te vinden zijn.

Hoe kies je de juiste tech stack?

Er is geen standaardmanier om een tech stack te kiezen. Je keuze is afhankelijk van wat jouw project nodig heeft, de marktintroductietijd en de vereisten voor beveiliging en schaalbaarheid. Het is ook van belang of je een webapplicatie of een mobiele app ontwikkelt.

Hier zijn vijf dingen waarmee je rekening moet houden bij het maken van een keuze.

belangrijke factoren bij de selectie van je tech stack

Ook als je rekening houdt met al deze factoren en de juiste tech stack hebt gekozen, zul je je stack toch af en toe moeten aanpassen of zelfs opnieuw moeten opbouwen om in te spelen op veranderende voorkeuren van consumenten (zoals video’s en dynamische content) of nieuwe ontwikkelingen in de technologie voor app-ontwikkeling.

Case story: Facebook herziet zijn tech stack om aan te haken bij veranderende technologieën en gebruikersvoorkeuren:                                                                                                                                                                          Toen Facebook.com in 2004 werd gelanceerd, was het een PHP-website. In de vijftien jaar die daarop volgden, werden er aan de oorspronkelijke code geleidelijk steeds meer technologielagen toegevoegd om gebruikers verschillende interactieve functies te bieden. Door die veranderingen werd de site echter trager en werd het onderhoud lastiger. Bovendien waren enkele van de nieuwe functies die het team wilde toevoegen, zoals de “donkere modus”, moeilijk te integreren. Het tech team van Facebook moest daarom de oorspronkelijke tech stack aanpassen om zowel de UI als de prestaties te verbeteren. Het team besloot om de tech stack helemaal opnieuw op te bouwen. In de nieuwe stack werden naast andere elementen React, Relay, GraphQL en JavaScript gebruikt. Hierdoor werd niet alleen de snelheid van de Facebook-website verbeterd, maar kon er ook nieuwe functionaliteit worden toegevoegd. Klik hier om meer te lezen over de tech stack van Facebook.

Tips om jouw tech stack te selecteren

Een bedrijf kan tegenwoordig niet meer zonder website en/of mobiele app. Dat kan ingewikkeld zijn als je er nog geen ervaring mee hebt. Hier zijn enkele handige tips:

  • Gebruik een beproefde tech stack: Ga niet zelf het wiel uitvinden, maar zoek kant-en-klare stacks die passen bij jouw projectvereisten, integratiebehoeften en beschikbare middelen.
  • Bouw eerst een MVP: Probeer niet in één keer een complete app of service met alle toeters en bellen te bouwen, maar maak eerst een prototype of een MVP dat de essentiële functies ondersteunt. Test dit met gebruikers en bepaal dan hoe je een applicatie met volledige functionaliteit wilt ontwikkelen.

Zoek hulp in community forums: Op community forums zoals GitHub en SourceForge vind je veel antwoorden op vragen over problemen waar je tegenaan kunt lopen wanneer je een kant-en-klare tech stack gebruikt. Je kunt er ook freelanceontwikkelaars zoeken die je webapplicatie of mobiele app voor een lagere prijs kunnen bouwen.

En nu? Bekijk onze catalogus met een uitgebreid aanbod aan app development software om de juiste tool te vinden.

Bijlage
Definities van enkele veel voorkomende componenten van een “tech stack”.

Programmeertaal: Een computertaal die programmeurs of ontwikkelaars gebruiken om codes te schrijven die een app uitvoeren. Bijv. Java, C, C++, Python

Web framework: Een standaard manier om webapplicaties te bouwen en te implementeren op het internet.

Database: Hardware- en softwaretools die helpen gegevens op een gestructureerde manier te organiseren en op te slaan.

Webservers: Hardware (computersystemen) en software (serversoftware) die helpen bij het verwerken van webverzoeken en het weergeven van website- of app-inhoud.

Geïntegreerde ontwikkelingsomgeving (IDE): Een softwaretoepassing die alle benodigde middelen biedt voor ontwikkelaars om een programma te bouwen.

Runtime-omgeving: Softwarecodes, bibliotheken en andere bestanden die het uitvoeren of werken van programmacodes ondersteunen.

Middleware: Software die applicaties verbindt met de besturingssystemen van gebruikers.

Besturingssysteem: Systeemsoftware die de hardware- en softwarecomponenten van een computer beheert en ze helpt soepel te werken. Bv. Microsoft Windows, Linux, macOS

Hypertext markup language (HTML): Een systeem dat wordt gebruikt om de structuur van de inhoud op een webpagina te definiëren.

Cascading stylesheets (CSS): Een mechanisme dat helpt bij het verbeteren van de presentatie van inhoud in een HTML-raamwerk.


In dit artikel wordt er mogelijk naar producten, programma’s of diensten verwezen die niet in uw land beschikbaar zijn, of die misschien niet voldoen aan de wet- of regelgeving van uw land. Wij raden u aan om de softwareleverancier rechtstreeks te benaderen voor informatie over de beschikbaarheid van de producten en overeenstemming met lokale wetgeving.


Deel dit artikel