Deze week werd gekenmerkt door diepgaand debuggen, uitgebreide refactoring en een aantal belangrijke leermomenten, zowel technisch als op persoonlijk vlak.
Timotheus project afronden
De week begon met het verder werken aan het Timotheus project. Na een korte stand van zaken met mijn mentor (waarbij ik ook meldde dat ik woensdag afwezig zou zijn voor een intervisiesessie op school en de jobbeurs), ben ik in de codebase gedoken.
De logs toonden dat niet alle vragen werden beantwoord, wat zichtbaar was dankzij de error handling die ik vorige week had geïmplementeerd. Mijn mentor vroeg me om deze error handling te verbeteren voor een meer gedetailleerde logging, wat me zou helpen bij het debuggen.
Front-end vs Back-end problematiek
Hoewel alle tests in de back-end succesvol waren, bleek er toch iets mis te gaan. Bij grondige analyse via de devtools ontdekte ik dat er veel '0'-resultaten werden doorgestuurd. Ik kon de front-end code inspecteren, waar ik enkele interessante bevindingen deed:
De front-end (gebouwd in Vue.js) had eigenlijk nooit correct gewerkt
Er was een workaround gemaakt die null/undefined waardes omzette naar 0
In de back-end werden alle 0-waardes toegewezen aan een matige score (50%)
Dit verklaarde waarom er inconsistenties waren in de resultaten. Door deze bevindingen kon ik gerichter te werk gaan:
Na het verbeteren van de logging en het zorgen dat de data die werd doorgestuurd aan de DTO-structuur voldeed, merkte ik dat de HTML click-handler camelCase gebruikte in plaats van PascalCase zoals in de back-end. Dit zorgde ervoor dat antwoorden niet correct werden doorgegeven. Na het consistent maken van de naamgeving werkten de front-end overdrachten correct.
Als laatste stap heb ik ook de gegenereerde link op basis van de slechtste score gerepareerd en dynamisch gemaakt. Ook heb ik een manier gevonden om alle mogelijke testuitkomsten te tonen met behulp van twee tests. Deze resultaten worden weggeschreven naar HTML-bestanden voor eenvoudige online visualisatie.
CommandWorker refactoring
Het tweede grote project van deze week was het refactoren van de CommandWorker. De folder structuur was aangepast waardoor ik in de SLN file en project files de absolute paden moest aanpassen. De dag begon hierdoor met maar liefst 2100 errors!
Systematisch heb ik alle projecten die in de core zaten overgezet en gerefactored. Dit proces omvatte:
Het verplaatsen van projecten naar de HolonCom.Core structuur
Het omzetten van absolute paden naar relatieve paden
Het updaten van referenties binnen de projecten
De scope van dit werk werd gedurende de week uitgebreid. Eerst moest ik alleen de core components (managed libraries) overzetten en er NuGet packages van maken, maar later kwamen daar ook alle drivers en app-gerelateerde code bij.
NuGet packages maken en deployment
Op vrijdag heb ik bewezen dat relatieve paden ook kunnen werken naar projecten buiten je solution. Vervolgens kreeg ik de taak om NuGet packages te maken en workflows op te zetten voor automatische deployment.
Dit betekende:
Admin rechten verkrijgen op de repositories
GitHub Actions/workflows creëren voor automatische packing en pushing bij elke push naar develop
Werken met SourceTree in plaats van Git via terminal (wat een aanpassing vereiste)
Repositories van GitHub naar Gitea verplaatsen, inclusief mergeconflicten oplossen
Een van de repositories had wat problemen - ik had onvoldoende rechten en er leken fouten in de codebase te zitten. Dit is een aandachtspunt voor volgende week.
Persoonlijke ontwikkeling
Naast alle technische uitdagingen, was er ook aandacht voor persoonlijke groei. In een gesprek van 1,5 uur met mijn mentor hebben we de beoordelingscriteria van school besproken. Mijn mentor gaf me enkele belangrijke aandachtspunten:
Meer assertief zijn in discussies en overleggen
Me kwetsbaar durven opstellen en leren van fouten
Minder voorspelbaar zijn in mijn dagelijkse interacties (zoals bij het afscheid nemen)
Mijn definitie van succes breder maken
Deze feedback neem ik serieus en ik ga er bewust aan werken in de komende weken.
Intervisie en jobbeurs
Op woensdag had ik een intervisiesessie op school met zeven andere stagiairs. Het was interessant om te zien hoe breed het IT-veld is - niemand werkte met exact dezelfde technologieën. Ik merkte dat ik de enige was die echt als software engineer werkt binnen mijn groep.
In de discussie deelde ik mijn inzicht dat het oké is om te falen, en dat zelfs ervaren ontwikkelaars fouten in hun code schrijven. We zijn allemaal gewoon mensen die ons best doen.
Na dit moment van intervisie ben ik naar de jobbeurs in Antwerpen Expo gegaan. Ondanks de drukte en warmte was dit een leerzame ervaring. Ik heb enkele waardevolle connecties kunnen leggen en met verschillende bedrijven gesproken. Ook was het fijn om klasgenoten tegen te komen en te horen dat iedereen het goed doet op zijn stage.
Conclusie
Het was een intensieve week met veel technische uitdagingen, maar ook belangrijke leermomenten. De combinatie van diepgaand debuggen, refactoring en persoonlijke ontwikkeling maakt deze stage tot een waardevolle ervaring.
Volgende week ga ik verder met het oplossen van de resterende errors in de core projecten en het afmaken van de NuGet deployment workflows.