Deze week stond in het teken van diverse projecten en nieuwe verantwoordelijkheden. Van het ontwikkelen van robuuste teststrategieën tot het voorbereiden op een nieuwe uitdaging in de vorm van telefonische ondersteuning - week 10 was gevuld met leermomenten die mijn technische vaardigheden en professionele ontwikkeling verder hebben versterkt.
Testautomatisering en CI/CD Verbeteringen
Een groot deel van mijn week is besteed aan het verbeteren van de testinfrastructuur binnen het Core.All project. Ik heb een uitgebreide test suite ontwikkeld en een efficiënte workflow opgezet die bij elke code push automatisch alle tests uitvoert. Een van de meest bevredigende verbeteringen was het toevoegen van een status badge aan de README van de repository, die real-time de status van de tests weergeeft.
Deze test workflow leverde onmiddellijk waarde op door inconsistenties te identificeren in de manier waarop line endings werden verwerkt op Unix-gebaseerde systemen. Daarnaast ontdekte ik een bug in een methode die raw generic types niet correct herkende. Dit onderstreept nog maar eens het belang van een cross-platform testbenadering.
Verdieping in Vertical Architecture
Een bijzonder waardevol moment deze week was een diepgaand gesprek met mijn mentor over "vertical architecture". In tegenstelling tot traditionele architecturen zoals MVC, waarin code wordt georganiseerd op basis van technische aspecten, benadrukt vertical architecture het organiseren van code rond business functies of "slices".
De kern van deze benadering is Domain Driven Development, waarbij de structuur van de code het businessdomein reflecteert in plaats van technische overwegingen. Voor een To-Do applicatie betekent dit bijvoorbeeld:
ToDoApp/
├── Features/
│ ├── CreateToDo/
│ │ ├── CreateToDoController.cs
│ │ ├── CreateToDoHandler.cs
│ │ └── CreateToDoValidator.cs
│ ├── CompleteToDo/
│ │ ├── CompleteToDoController.cs
│ │ ├── CompleteToDoHandler.cs
│ │ └── CompleteToDoValidator.cs
│ └── ...Deze architectuur zorgt voor een betere scheiding van concerns en maakt de code beter onderhoudbaar en uitbreidbaar. Het was fascinerend om te zien hoe deze principes worden toegepast in de projecten van HolonCom.
Nieuwe Verantwoordelijkheid: Telefonie Ondersteuning
Een nieuwe uitdaging die deze week op mijn pad kwam, was de voorbereiding op het overnemen van de telefonische ondersteuning tijdens de vakantie van mijn mentor en Anna. Hiervoor werd 3CX geïnstalleerd, een telefonie-oplossing.
Om mezelf voor te bereiden op deze verantwoordelijkheid, heb ik:
Een draaiboek opgesteld met scripts voor verschillende scenario's
Een gestructureerd template gemaakt voor het verzamelen van essentiële informatie tijdens gesprekken
Mock call uitgevoerd met mijn mentor om mijn aanpak te verfijnen
De feedback was overwegend positief, met enkele nuttige tips voor het verbeteren van mijn intonatie. De belangrijkste taak zal zijn om als "doorgeefluik" te functioneren, waarbij ik alleen bij urgente kwesties contact opneem met mijn mentor of Anna.
Ghost Project en Content Management
Naast mijn werkzaamheden aan tests, heb ik ook vooruitgang geboekt met het Ghost project. Dit betrof voornamelijk het opzetten van de website structuur en het toevoegen van content zoals links, pagina's, tags en instellingen.
Na een demo aan mijn mentor kreeg ik waardevol feedback:
Meer experimenteren met de Pages-functionaliteit
De Explore-tab verder onderzoeken
Onderzoeken of er een API beschikbaar is voor het creëren van blogposts via externe programma's
Het Ghost project is inmiddels online gezet via Portainer, wat betekent dat ik er gemakkelijker aan kan werken en mijn wijzigingen direct live kan testen.
Onderzoek naar Nieuwe Tooling
Tijdens mijn werkzaamheden aan de testprojecten ben ik tegen enkele interessante tools aangelopen:
CodeCov
Ik heb CodeCov onderzocht, een tool die het monitoren en verbeteren van test coverage vereenvoudigt. Hoewel de tool veelbelovend is, bleek integratie met Gitea helaas niet mogelijk. Dit ondanks verschillende pogingen om dit te forceren via custom workflows.
Scriban
Een andere ontdekking was Scriban, een lichtgewicht templating engine met een syntax die dicht bij C# ligt. De mogelijkheden hiervan heb ik gedocumenteerd in een README voor toekomstig gebruik.
Vooruitblik en Planning
Aan het einde van de week heb ik een pragmatische planning opgesteld voor de periode dat mijn mentor afwezig zal zijn. Dit omvat:
Een gestructureerd systeem voor het bijhouden van call logs
Een stappenplan voor mijn werkzaamheden in de komende week
Duidelijke communicatielijnen, inclusief het telefoonnummer van mijn mentor voor noodgevallen
Conclusie
Week 10 was een week van technische verdieping en nieuwe verantwoordelijkheden. Het verbeteren van de testinfrastructuur, het begrijpen van vertical architecture, en het voorbereiden op telefonische ondersteuning hebben me waardevolle inzichten gegeven in zowel technische als professionele aspecten van softwareontwikkeling.
De combinatie van hands-on codering en conceptuele discussies met mijn mentor blijft een uitstekende leerschool. Ik kijk uit naar de uitdaging om volgende week meer zelfstandig te werken tijdens de afwezigheid van mijn mentor.