Never be clever
Hetzelfde kan gezegd worden van de code, die ik schreef. Ik heb maar één keer in mijn leven zelf-modificerende code gebruikt -en daar had ik een goed excuus voor. Ik was nooit iemand van “de slimme truuks”.
Want hoe trots je ook bent op een dergelijke blijk van superieure intelligentie, de prijs betaal je uiteindelijk zelf. Immers, OR A kan nog zo’n slimme zet zijn om de carry flag te resetten, de sequentie SCF;CCF is een heel stuk duidelijker. Uiteraard zijn er genoeg redenen om hier van af te wijken. Bijvoorbeeld als je niet genoeg ruimte hebt. Of 20 nanoseconden wilt besparen in een loopje. Excuses zat.
Het gaat namelijk niet alleen om je opvolger -het kan ook je toekomstige zelf zijn die met de janboel geconfronteerd wordt. Tja, en dan trek je je de haren uit het hoofd en vraag je je af welke idioot zulk werk durfde af te leveren. Ik ben die idioot een paar keer tegengekomen -en mijn oplossing was altijd hetzelfde. Weggooien en opnieuw beginnen. Al werkt de code nog zo goed.
Op het professionele vlak lukt dat niet altijd. Wat wel nog kan werken, is kijken of je op de gewraakte code kunt aansluiten. Het resultaat is dan een verschrikkelijk Frankenstein programma, waar twee stijlen van programmeren dwars door elkaar heen lopen, maar je hebt een redelijke kans van slagen om het binnen een beperkte tijd draaiend te krijgen, met een minimale kans op fouten.
Maar als je zelf aan het roer staat, is het beter om heldere code te schrijven, die goed te becommentariëren, de architectuur te respecteren en geen functies te schrijven van vijf kantjes. De toekomstige zelf zal er je dankbaar voor zijn. “I love you like I love myself and I don’t need nobody else”, zou Brood zeggen.
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
Reacties
Om een reactie achter te laten is een account vereist.
Inloggen Word abonnee