Development

Software-ontwikkeling
bloemen

Onderhoudbaar of leesbaar

Leesbare code is als een gezellig bloemetje op tafel.

© Shutterstock Kim Wutimet
24 november 2022

In de hele vroege dagen van programmeren was het vooral belangrijk dat code het goed deed. De Dijkstra-manier van programma’s benadrukte alleen de correctheid: als we kunnen bewijzen dat het precies doet wat het moet doen, dan, en alleen dan, is het goed. Dijkstra verafschuwde daarbij expliciet de zachte kant van de informatica, als een social scientist zegt dat hij informatica kan helpen, maakt hij zich alleen maar belachelijk, schreef hij. Soms vraag ik me wel eens af of zijn attitude (en ongetwijfeld die van anderen in zijn tijd) het veld meer schade heeft toegebracht dan we kunnen overzien.

Na een tijdje begon natuurlijk toch het besef bij de meeste van ons in te dalen dat samenwerken lastig is, misschien nog wel lastiger is dan ingewikkelde algoritmes. Er ontstond een beweging van aandacht en zorg aan je code besteden, samenkomend in het idee dat er zoiets is als een code smell, een stuk code dat weliswaar werkt maar niet lekker leest. Lange stukken code, dat is niks, hak het op in kleine methodes, bijvoorbeeld. Opgeruimd staat netjes, dat is lekker leesbaar!

Het grappige is dat dit perspectief van goede code vaak focust op de onderhoudbaarheid van code, en dus de schrijver in de schoenen plaats van zichzelf over een paar maanden: hoe pas ik, of een andere programmeur met ervaring in de code base, deze code het makkelijkst aan? Hoe noem ik een methode zodat ik het zelf nog goed snap.

Nu ik een grote code base onderhoud waarin iedere week weer nieuwe contributors opduiken merk ik dat onderhoudbaarheid voor een ervaren programmeur iets heel anders is dan leesbaarheid. Leesbare code bevat vaak juist extra informatie. In onze codebase gebruiken we altijd de taal van de gebruiker bijvoorbeeld, behalve in een heel speciaal geval. Nu zet ik in de code expliciet een commentaar waarin ik vertel waarom we dat doen, namelijk als je als admin een mailtje wilt sturen dan ben jij ingelogd maar de mail moet in de taal van de gebruiker die je aanklikt, niet van jouzelf als admin. Dat doe ik expliciet voor een nieuwkomer, die zo “het verhaal van de code” kan lezen, ipv de code alleen, want ik onthoud dat wel, en anders puzzel ik het zo weer bij elkaar.

Vergelijk het met een opgeruimd huis. Onderhoudbaar is dat alles netjes in de la ligt, maar leesbaar is een gezellig boeketje bloemen op tafel. Strikt noodzakelijk, nee, welcoming (for lack of een beter Nederlands woord) ja!

Magazine AG Connect

Dit artikel is ook gepubliceerd in het magazine van AG Connect (november 2022). Wil je alle artikelen uit dit nummer lezen, zie dan de inhoudsopgave.

Reactie toevoegen
1
Reacties
Bertje Betweter 28 november 2022 15:42

Welcoming => uitnodigend?