Slechte code is kudzu

(Cultivation of the Vines, Henri Martin)

Kudzu is een plant die ooit vanuit Oost-Azië naar het oosten van de Verenigde Staten werd geïntroduceerd als een manier om bodemerosie te bestrijden. Maar zodra kudzu is geïntroduceerd, groeit het agressief en kan het trottoirs, huizen, funderingen en zelfs bomen overnemen. De enige manier om kudzu te doden is door het agressief te snoeien, als onderdeel van een geconcentreerde strategie die gezamenlijk wordt uitgevoerd door alle mensen die in de buurt van de groeiende kudzu wonen.

Je begrijpt waar ik heen ga. Een functie in een app kan, zodra deze aan een codebase is toegevoegd, extreem moeilijk te verwijderen zijn. Zelfs eenvoudige functies worden erg 'plakkerig', omdat je niet alleen de code moet verwijderen, maar wat erger is: mensen beginnen code te schrijven bovenop jouw code. Voor je het weet, zit je twee jaar diep in een geïmplementeerde functie die niemand meer wil.

Code verwijderen is moeilijk, vooral omdat het een ondankbare taak is die meestal niet in promotieplannen voorkomt. Dat is de reden waarom we eindigen met het leveren van honderdduizenden regels aan 'glitter-emoji-toverstaf-AI-functies', terwijl het verwijderen van code stilzwijgend gebeurt.

Complexiteit in het AI-tijdperk

In dit nieuwe tijdperk moeten we code nóg actiever verwijderen. Als we de complexiteit niet constant verminderen, verdrinken we in gegenereerde 'kudzu-slop' die codebases overneemt. In een tijdperk waarin het eenvoudig is om zaken toe te voegen, moet je voor jezelf een plan maken om de functies die je hebt toegevoegd ook weer te verwijderen, zeker omdat dat nu ook veel gemakkelijker is dan voorheen.

Een praktijkvoorbeeld: Hashtag bubbles

In mei heb ik bijvoorbeeld een functie toegevoegd om hashtag-bubbles op mijn blog te plaatsen. Ik ben een millennial; sociale hashtags zijn mijn liefdestaal. Ik dacht dat ik ze constant zou gebruiken en dat mijn sitebezoekers ze constant zouden gebruiken om mijn wijze geschriften prachtig te navigeren. Ik gebruikte hiervoor een combinatie van elegante machine learning-technieken.

Ik heb het een paar maanden gelaten om te zien of gebruikers het in de praktijk daadwerkelijk gebruikten, en het antwoord was een resoluut 'nee'. In mijn Plausible-analyse behoorden ze de afgelopen drie maanden niet tot de top 30 van meest bezochte pagina's.

Het is mogelijk dat een paar mensen er iets aan hadden, maar het is het onderhoud niet waard, vooral omdat het zo eenvoudig is om ze later weer terug te zetten. (Deze data is vanaf 1 mei).

De kudzu snoeien

Dus is het tijd om de kudzu te snoeien, op precies dezelfde manier als het zo gemakkelijk was om het te creëren.

De commit-geschiedenis voor deze functie is nu:

  • 77e2c5a — Changelog-vermelding
  • 85000e2 — Zoekbalk terugverplaatsen naar de header
  • 91b6fde — Tag-zijbalk en tag-bubbles verwijderen