Wij werken graag met zorg en oog voor detail. Dat doen we niet alleen bij de producten en diensten die we leveren, maar ook bij het kiezen van de tools die we gebruiken. De keuzes die wij maken in onze tech stack zijn daar een voorbeeld van. Door deze slim samen te stellen, ontwikkelen we een manier van werken die snel, veilig en efficiënt is.
Software ontwikkelen doen we met een bewuste selectie van programmeertalen en frameworks. Alles wat we gebruiken is met aandacht geselecteerd. Op deze manier zorgen wij ervoor dat de programmatuur het best aansluit bij onze producten en onze manier van werken. Binnen die selectie is onderscheid te maken tussen drie delen:
Back end
Front end
Mobiele app
Voor deze drie onderdelen gebruiken we dus losse sets, die samen onze totale stack vormen. De verschillende onderdelen en de talen die daarbij horen, lichten we in deze blog even toe.
Wat is een tech stack eigenlijk
Een tech stack (of: development stack) is de verzamelnaam voor de codeertalen, technologieën en servers waarmee de developer software ontwikkelt en beheert. In de basis valt zo’n stack in te delen in twee delen: De hosting en de programmatuur.
De hosting van een stack zijn de onderdelen waar de applicatie op draait. De database servers, web servers en load balancers. Dit is als het ware de infrastructuur van de stack.
De programmatuur van een stack bestaat uit onderdelen die gebruikt worden om de software mee te realiseren. Dit zijn de programmeertalen en frameworks waarmee gebouwd wordt.
Verschil back end en front end
De back end van software of van een app is simpel gezegd: 'de achterkant'. Het is alles wat je niet ziet, maar wat wel gebruikt wordt om de applicatie draaiende te houden. Dit zijn alle codes, maar ook bijvoorbeeld de databases waar informatie vandaan wordt gehaald. De front end is te omschrijven als 'alles wat de gebruiker ziet'. Dit zijn de interfaces, menustructuren en alle weergaven van informatie uit de back end. De twee werken dus nauw samen, en moeten goed op elkaar aansluiten.
Onze back end
Om onze back end zo goed mogelijk te laten aansluiten op onze producten, gaan we vaak voor API (Application Programming Interface)-based . Door dit te doen, kunnen we verschillende front ends of mobiele apps aan elkaar koppelen. In de praktijk betekent dit dat we zowel de mobiele app als de webapplicatie (de klant- of beheerdersomgeving) van een product aan elkaar kunnen koppelen.
We ontwikkelen de back end bijna altijd in Laravel. Dit is een open source framework geschreven in PHP (een codeertaal dat 'openbaar' gebruikt mag worden). Doordat Laravel een veelgebruikt open source framework is, heeft het een gigantische community, is het goed gedocumenteerd, goed door ontwikkeld en biedt het een zeer goede developer experience. Het is een 'batteries included' framework. Dit betekent dat het framework komt met alles wat nodig is om het draaiende te houden. Dus standaard routing, authenticatie, database abstractie, caching, queueing en meer functionaliteiten zijn direct beschikbaar!
Onze front end
Voor de front end van webapplicaties ontwikkelen we voornamelijk in Vue.js. Dit is een JavaScript framework met ook een grote community en goede documentatie. Met dit framework kunnen we van eenvoudige formulieren tot complexe dynamische user interfaces (UI) bouwen. Bovenop Vue.js gebruiken we een toolkit voor de vormgeving van de user interface: BootstrapVue. BootstrapVue maakt weer gebruik van Bootstrap, een toolkit met vaak terugkerende componenten. Door deze toolkit te gebruiken, vormen we een betrouwbare en solide basis om vaak terugkerende elementen snel en goed in de UI kunnen verwerken. Denk aan tables, modals, forms, buttons, lists, etc. Op deze manier werken we snel, houden we de kwaliteit altijd constant (hoog) en hoeven we het wiel niet steeds opnieuw uit te vinden.
Onze mobiele apps
Het laatste open source framework dat we hier bespreken is React Native. Dit framework gebruiken we voor het ontwikkelen van onze mobiele apps. React Native is een framework gebaseerd op React.js (een JavaScript library). Het 'native' gedeelte refereert hier naar de native functionaliteiten van een apparaat. Denk aan interactie via push notificaties, het gebruik van een camera, maar ook vloeiende overgangen bij het navigeren tussen schermen. Een groot voordeel van React Native is dat we één codebase kunnen hanteren, geschreven in JavaScript, maar deze kunnen uitrollen voor zowel iOS als Android. Zo hoeven we niet constant twee verschillende apps te bouwen voor de verschillende besturingssystemen, maar hebben we wel toegang tot de 'native' functies van een moderne telefoon.
Precies wat we willen
In ons werk richten we ons op efficiënt, veilig en duurzaam werken. Door in onze programmatuur te werken met open source frameworks, kunnen we dit ook. Open source zorgt voor constante 'sociale controle' op de frameworks en geeft de mogelijkheid om met de community eventuele fouten snel uit de wereld te krijgen. Het maakt onze stack veiliger en zorgt dat we efficiënter kunnen werken. En dat is natuurlijk precies wat we willen!
Na het lezen van deze blog toch nog vragen over onze stack en de keuzes die we maakten? Neem gerust contact op met Jasper. Hij vertelt je er graag alles over.
Dit is het tweede deel van een tweeluik over onze stack. In deel één vertellen we alles over onze hosting van onze stack en de keuzes die we daarin maakten.