
Objectgeoriënteerd en functioneel BTW berekenen - Revisited
Ik plaatste een tijd geleden wat kanttekeningen bij mijn aanpak Enrico Buonanno’s uitdaging om een objectgeoriënteerde BTW-calculator te schrijven. Zo zette ik mijn vraagtekens bij het feit dat ik zijn oorspronkelijke model één op één overnam. Die keuze bracht met ertoe een aparte VatCalculator
-class te definiëren. En hoewel die objectgeoriënteerd was opgezet, viel deze makkelijk om te schrijven naar een functionele variant. De vraag wierp zich op: hoe objectgeoriënteerd is die oplossing? Is de vergelijking daarmee wel eerlijk? Hoe zou een “echt” objectgeoriënteerde oplossing eruit zien?
Programmeren op de beat - Vol. 2
Eens per jaar verandert mijn blog over softwareontwikkeling in een schaamteloze gelegenheid voor mij om over muziek te praten - en vandaag is die dag! Deze keer: met video’s van liedjes die een link hebben naar mijn vakgebied, hihi!
Wat ik leerde over coachend begeleiden
Onlangs mocht ik voor het eerst in lange tijd mijn CV weer eens updaten. Ik heb namelijk met succes een cursus coachend begeleiden op Hogeschool Windesheim afgerond. Mijn dank daarvoor gaat in eerste instantie uit naar cursusleidster Herma Ronda en mijn medecursisten, wier enthousiasme me inspireerde om op een heel andere manier naar mijn eigen communcatie te kijken. Daarnaast ben ik dank verschuldigd aan mijn collega’s en schoonzus, die zo dapper waren om - op video nota bene! - een coachingstraject met mij in te gaan. Dus: dank, dank, duizendmaal dank! Ter afsluiting van dit hoofdstuk, citeer ik voor deze blog vrijelijk enkele punten uit mijn reflectieverslag.
De elf rollen van variabelen
Pas wanneer de vanzelfsprekendheid van code in het geding komt, gaan we nadenken - écht nadenken - over wat er op je scherm staat en waarom. Pas dan wordt de vraag “Wat doet deze variabele hier precies?” relevant. Goed, vraag jezelf nu eens af: als dat moment komt, hoe beschrijf je de rol van een variabele dan? - Heb je enig idee waar je moet beginnen bij het beantwoorden van die vraag?
Wat zijn eerlijke functies?
Uit Enrico Buonanno’s Functional Programming in C# (Second Edition) leerde het concept van een eerlijke functie kennen - en dat maakte me bewust van de oneerlijkheid van de code die ik doorgaans schrijf. Wat zijn eerlijke functies? Voordat we die vraag kunnen beantwoorden, moeten we eerst een antwoord geven op een onderliggende vraag, en dat is: wat is een functie überhaupt?
De Grote Successenretro was een groot succes
Onze Scrummaster was er niet, en dus kwam het organiseren van de Sprint Retrospective op mijn bordje terecht. Omdat ik iets spannenders wilde organiseren dan een wat-ging-er-goed-en-wat-kon-er-beter-Retro (dat is de officiële term, toch?), nam ik een middag de tijd om verschillende vormen te bekijken. Voor de uiteindelijke opzet, putte ik inspiratie uit de cursus begeleidend coachen die ik de afgelopen maanden heb gevolgd. Eén van de belangrijkste lessen die ik heb getrokken uit die cursus, is de waarde van het focussen op successen. Wie oog heeft voor zijn eigen successen (of de successen van zijn/haar team), wie zijn eigen successen erkent en viert, opent de weg naar meer succes.
Objectgeoriënteerd en functioneel BTW berekenen
In het eerste hoofdstuk van Enrico Buonanno’s Functional Programming in C# (Second Edition) demonstreert de auteur wat functionele features van C# aan de hand van een concreet voorbeeld: het berekenen van de BTW op een (lijst) product(en). Buonanno raadt de lezer aan om dezelfde functionaliteit ook op een objectgeoriënteerde manier te implementeren, om die oplossing te kunnen contrasteren met de zijne. Dus dat is precies wat ik heb gedaan.
Zelfs de testpiramide is niet meer heilig!
Ik ben altijd in de veronderstelling geweest dat mijn geautomatiseerde tests een piramidevormige verhouding tot elkaar zouden moeten hebben: aan de basis enorm veel unittests, in het midden een goede hoeveelheid integratietests, en aan de top een bescheiden aantal end to end (E2E) tests. Totdat ik Learning Domain-Driven Design van Vlad Khononov las. (Een aanrader, overigens!)
Edwin Wenink Appreciation Post
Ik danste onlangs bij een concert van Eefje de Visser en liep bij de uitgang Edwin Wenink tegen het lijf. Edwin is een oud-studiegenoot van me en de hoofdverantwoordelijke voor de RSS-link in het menu rechtsboven. “Ik krijg elke keer een mailtje als jij iets nieuws post!” bekende hij enthousiast. “Niet dat ik er ooit iets van lees, natuurlijk.” - Edwin is altijd eerlijk en dat waardeer ik soms. Tijdens ons gesprek kwam ik erachter dat hij ook een blog heeft en de ochtend erop zelfs dat er een heleboel interessants op staat ook nog. Bij dezen dus, een momentje om de gedachtewereld van Edwin te waarderen.
De ontdekking van strategische subdomeinen
Ik schreef één keer eerder over Domain-Driven Design - en in die blog gaf ik onmiddellijk toe niks van het onderwerp te weten. Precies daarom nam ik me voor om Learning Domain-Driven Design van Vlad Khononov op te pakken. En met succes, want al meteen in het eerste hoofdstuk leerde ik iets nieuws: het bestaan van strategische subdomeinen.