Als developer kom je genoeg problemen tegen die je vroeger, "voor het internet bestond", alleen kon oplossen door zaken te proberen, door boeken bij de bibliotheek te lenen of magazines te kopen en te hopen dat er een artikel in stond wat ging over datgene waar jij mee bezig was. Vervolgens kwam "het Internet", kon je via Google zoeken, werd StackOverflow gebouwd, had je de MSDN-documentatie van Microsoft en kon je "veel vinden". Maar dan moest je wel de mazzel hebben dat de zoekwoorden overeen kwamen met wat er in de tekst geïndexeerd is en of er ook daadwerkelijk een oplossing te vinden is, of dat iemand anders hetzelfde probleem gedropt heeft en er nooit iemand met een oplossing gekomen is.
Afgelopen week (week van 13 juli 2026) had een collega een probleem in Umbraco, de pagina met zoekresultaten toonde geen enkel resultaat. In Umbraco kun je zelf in de Lucene Index zoeken en zag je dus dat je best wel wat matches moest kunnen vinden. Het object waar de resultaten in moesten komen te staan was NULL, dus er werd ook geen actie uitgevoerd, leek het. Dat hebben we eerst opgelost door in ieder geval te zorgen dat bij initialisatie dit een lege lijst werd. Mocht er op een later tijdstip een zelfde soort probleem ontstaan (opnieuw indexeren van data, waarbij het even niet mogelijk is om data op te vragen), dan krijg je in ieder geval een nette pagina met geen resultaten te zien in plaats van een server-error, een pagina "er is een fout opgetreden" en een notificatie naar ons monitoring-systeem.
Ik heb het project in Visual Studio Code geopend, de razor-pagina geopend en Claude de vraag gesteld dat het object altijd leeg is, dat dit gevuld zou moeten zijn en of hij kan vertellen wat de oorzaak is.
Eerst begint het denkproces. Claude bekijkt andere bestanden, wil dan ook nog in andere bestanden kijken, omdat er via nuget pakketten van onszelf gekoppeld zijn, wil hij DLL-bestanden bekijken. Kijk, hiervoor ben ik dan weer nodig, want ik "weet"/"heb het inzicht" dat die DLL's hier geen invloed op hebben. Dus ik weiger (2x) Claude toegang tot die DLL's en zorg dat zo in de code die beschikbaar is gekeken wordt.
Dan komt Claude met het resultaat. Hij zegt dat "het logisch is", omdat we overal een RenderPartialAsync uitvoeren, het "uitpoepen van HTML", maar dat daardoor de code voor het zoeken nooit uitgevoerd wordt. Het is een ViewComponent, en die moet je met ComponentInvokeAsync(...) aanroepen. Claude doet al een voorzetje door het in een bestand toe te voegen.
Applaus.
Ik ben "een manusje van alles". Dus vragen over databases, de indexen, triggers, stored procedures, views, stel je vraag. Monitoring in Zabbix, YAML-templates voor pipelines aanpassen. Ruby-code voor interactie tussen een dashboard en een API uit Zendesk, I make it work. Ook in Umbraco doe ik wel het een-en-ander. Maar ik weet zeker dat ik langer had moeten zoeken dan Claude, het voordeel is ook dat Claude "zijn onderzoek op de achtergrond kan uitvoeren" en ik zelf dan weer met andere dingen bezig ben.
Code aangepast... en het werkt nog niet. En ook dat is wel weer logisch. Hoewel de oplossing correct was, geen RenderPartialAsync, maar ComponentInvokeAsync moet niet in het bestand wat Claude voorstelde, maar in een andere partial view. Daar worden namelijk allemaal zaken dynamisch ingeladen, het is dus logisch dat Claude deze plek niet kon vinden. Maar doordat ik nu wist wat de oplossing was, was dit snel gefixt.