Profielfoto
Karl van Heijster

softwareontwikkelaar · filosoof · spreker

Test-Driven Development en YAGNI

Vaak werkt het zo: tests maken x mogelijk, Test-Driven Development (TDD) tilt x naar een volgend niveau. Welnu, het idee van YAGNI – You Ain’t Gonna Need It – veronderstelt tests. TDD tilt het naar een volgend niveau. Tests faciliteren YAGNI, TDD radicaliseert het.

YAGNI veronderstelt tests

Er zijn twee soorten ontwikkelaars: ontwikkelaars die roepen: “You ain’t gonna need it”, en ontwikkelaars die mompelen: “Ja ja, dat roep je wel, maar ik bouw het voor de zekerheid toch maar in.” Ik behoor tot het eerste kamp; enkele van mijn collega’s tot het tweede. – Maar waarom?

Hoe we onze Controllers dom hielden

Het is zaak je Controller-methods zo compact, zo “dom” mogelijk te houden. Valerio De Sanctis' Building Web APIs with ASP.NET Core deed me denken aan de verschillende manieren waarop mijn team dat de afgelopen jaren voor elkaar heeft proberen te krijgen. Want het dom houden van je Controllers – zonder aan expressiviteit in te boeten – is geen triviale zaak. Vandaag: hoe het niet moet.

Moet testen een onderdeel van een tutorial zijn?

Onlangs las ik Building Web APIs with ASP.NET Core van Valerio De Sanctis – niet omdat het ontwikkelen van Web API’s in ASP.NET Core onontgonnen terrein voor me was, maar omdat het nooit kwaad kan om op zoek te gaan naar gaten in je kennis, ook als je een techniek al tijden gebruikt. Bovendien had ik het boek in een vroege fase gereviewd, en ik was benieuwd wat er uiteindelijk van was geworden.

Sciencefictionsonnetten

Ik ontdek hightech, ja zo kek als Neo / zo hack ik krek. Maar dan zonder trenchcoat / of lenig liefje, geen zonnebril ook, / vandaar dat ik er minder cool uitzie–o.

TDD voorbij de intro

Vandaag laat ik liever even iemand anders aan het woord. – Hoewel, “even”? Romeu Moura neemt in de onderstaande twee video’s uit-ge-breid de tijd om zijn toehoorders kennis te laten maken met zijn test-gedreven ontwikkelproces. In niets ontziend detail neemt hij elke beslissing onder de loep en analyseert hij, reflecteert – op het proces net zozeer als op zichzelf.

Testen: een retrospectief in vijf fasen

Het leek me zinvol om te reflecteren op de ontwikkeling die mijn team en ik door hebben gemaakt op het gebied van testen. Want – en dat is goed nieuws – de manier waarop we het testen van onze software aanvliegen is radicaal veranderd sinds ik begon als ontwikkelaar.

Tests vertellen verhalen

Op een dag schoot me het idee te binnen: een test vertelt een verhaal. In een test gebeurt er – iets. Een test kent een (a) subject dat (b) in een bepaalde situatie (c) een bepaalde handeling verricht met (d) een bepaalde uitkomst. (– Ik heb nooit gezegd: een test vertelt een goed verhaal.)