De kracht van type-informatie bij programmeren
Door Sije Harkema

De kracht van type-informatie bij programmeren

Bij programmeren voor het web komen vele technologieën om de hoek kijken. De backend van webapplicaties zijn vaak in php geschreven en wordt steeds complexer, maar ook de frontend heeft tegenwoordig veel gecompliceerde eisen en dus moet er ook daar veel uitgerekend worden. We bekijken een belangrijke trend: duidelijk gebruik van types in code.

Bij programmeren gaat het om het beheren van data: (tijdelijk) opslaan ervan en het manipuleren. Bijvoorbeeld uit een database alle blogposts in het geheugen zetten, alle posts met een bepaalde auteur eruit filteren[1] en het resultaat tonen aan de gebruiker.

Het goed omgaan met die data is nog een flinke klus. In de vroege dagen van de computer was alle data heel simpel omdat de computers alleen voor rekenen gebruikt werden. Maar tegenwoordig zijn er uitgebreide objecten met relaties ertussen.

Je ziet in programmeertalen nog wel die overgangsperiode. Als we php als voorbeeld nemen zien we dat in arrays er van alles door elkaar heen opgeslagen kan worden, zowel simpele strings (reeks van tekens) als objecten, data-structuren die eigen gedrag hebben[2].

Bij het programmeren in php kan je tegenwoordig[3] in de functies die je schrijft precies aangeven wat voor soort data erin mag komen. Een “soort data” noemen we ook wel het "type" van iets. Er zijn simpele ingebouwde types, maar je kan ook volledig eigen structuren maken, allemaal met een eigen type.

<?php

$a = 'Hello';
$b = [2, 4, 8, 16, 32, 64];
$c = new LogicException();

Hier zijn de types respectievelijk "string", "array" en "LogicException".

We zien dat we grote systemen betrouwbaar willen hebben. In een eerdere blogpost hebben we al geschreven over tests. Een andere manier om betrouwbare code te schrijven is uitschrijven bij een stukje code wat het type is van de informatie die binnenkomt. Mocht het dan verkeerd gebruikt worden, dan zal er niet stilletjes geprobeerd worden het te laten werken, maar krijg je snel te zien dat er problemen zijn. Je maakt minder snel vergissingen.

Duidelijke type-informatie heeft nog een ander voordeel. Het kan helpen bij het uitvoeren van je programma om snel te zijn! Normaal doet php soms best wat gekke trucjes om code te laten werken. (bijvoorbeeld je getal dat in
een "string" zit omzetten naar een getal.) Wanneer type-informatie bekend is zijn sommige van die trucjes overbodig. Deze optimalisaties zijn binnen php nog in ontwikkeling, maar zullen we de komende tijd meer van gaan zien.[4]

Bij Webeau voeren we dit systeem stapsgewijs ook door in onze code. Deze techniek is een aanvulling op de tests die we al hebben, en zorgt ervoor dat u sneller een goed werkend systeem zal krijgen.

[1] Dit kan in een query in de database vaak in 1 stap, maar de werking achter de schermen kan weer erg verschillen per databasesysteem.

[2] Over object-geörienteerd programmeren zijn vele boeken geschreven, we verwijzen graag door naar Mozilla Developer Network.

[3] Dit werd gedeeltelijk ondersteund in versie 5.0, en is verder afgemaakt in versie 7.0. Daar werden de zogeheten scalar types in de type hinting toegestaan, en kon het type dat teruggegeven werd door de functie aangegeven worden.

[4] Op sommige plekken zien we het al wel terug, bijvoorbeeld bij in_array, dat 5x zo snel kan zijn. In het nieuwe “JIT-project” kan het ook goed gebruikt worden.

​Native app of web app?

Bekijk bericht

Zo lastig is veilige e-mailcommunicatie ook weer niet

Bekijk bericht