Development

Software-ontwikkeling
woman developer bored

Mag programmeerwerk saai zijn?

DRY is een mooi uitgangspunt, maar niet zomaar klakkeloos toepasbaar.

© Shutterstock Syda Productions
20 september 2021

In mijn boek The Programmer’s Brain beschrijf ik de neiging van sommige programmeurs om koste wat het koste duplicatie in code te vermijden. Want er is nu eenmaal dat uitgangspunt “Don’t Repeat Yourself”, ook wel DRY genoemd. En natuurlijk is het een goed uitgangspunt om niet te veel code te copy-pasten, want dat is niet onderhoudbaar; moet er iets aan de code veranderen, dan moet je dat op meerdere plekken doen. Dat kan dan weer tot fouten leiden omdat je zo maar een kopietje vergeet en daarmee inconsistent gedrag van de code kan veroorzaken.

Op zich is DRY dus een mooi uitgangspunt, maar, zoals alle uitgangspunten is het niet altijd zomaar klakkeloos toepasbaar. Er is namelijk ook een keerzijde. Als je alle duplicatie vermijdt, krijg je veel afhankelijkheden in je code, en moet je bij het lezen van de code veel verschillende methodes of functies afgaan om de code te begrijpen.

Toen ik hierover iets op Twitter deelde, kreeg ik interessante reacties. Veel mensen kwamen met anekdotes waarin ze wel eens code hadden moeten aanpassen met veel herhaling, Dat leidde in sommige gevallen tot fouten (niet goed natuurlijk), maar was vooral heel saai. “It took me a very long time” schreef iemand en dat zetten mij aan het denken.

Afgelopen week moest ik namelijk zelf ook een flink stuk code vol copy-paste aanpassen. Ik was hier zelf mee begonnen, ik had wat setup code in een testsuite van de ene naar de andere klasse gekopieerd. Een student die ook aan onze code base werkt, had de testsuite flink uitgebreid en -slecht voorbeeld doet slecht volgen- ook alle setupcode steeds gekopieerd en u raadt het al, ik moest nu 22 kopietjes aanpassen. In eerste instantie begon ik me te ergeren aan de student en ook aan mijzelf, omdat ik nu zo’n saai copy-paste klusje moest uitvoeren. Maar ik begon ook te reflecteren op deze taak; waarom vind ik dit eigenlijk vervelend? Van error proneness was in dit geval geen sprake, want het was duidelijk waar de setup methodes precies voorkwamen. Dus het was vooral een kwestie van: ik vind het niet leuk om een saai klusje uit te voeren. En daar zit een interessant punt.

We zijn als programmeurs nogal geconditioneerd om te denken dat ons werk spannend, moeilijk en uitdagend moet zijn. Is een klusje dan saai, dan kan dat niet kloppen! Er is óf iets mis met de code base, of er is een spannende uitdaging voor de maken door het klusje te automatiseren. Maar misschien is er wel iets mis met onze verwachting. Is het zo erg als een taakje eens saai is? Andere beroepen zijn ook wel eens saai.

Mijn initiële irritatie over het copy-pasten nam flink af bij deze gedachte; programmeren hoeft niet altijd spannend te zijn. Muziekje aan en even wat mindless work, zo erg is dat niet. En het is misschien wel minder werk dan wanneer ik voor het copy-pasten diep had moeten nadenken over de juiste abstractie. Saai werk is dan wel saai, het is daarmee niet per definitie minder efficiënt.

Magazine AG Connect

Dit artikel is ook gepubliceerd in het magazine van AG Connect (septembernummer 2021). Wil je alle artikelen uit dit nummer lezen, klik op de inhoudsopgave van het nummer

Reactie toevoegen
1
Reacties
Weet Ik Het 20 september 2021 11:02

Slecht hoor, copy-paste, als programmeertechniek, zo zie je maar, een diploma zegt niets :)