Compartilhar via


Comment Driven Development – the art of removal

Efter TDD, DDD och BDD börjar en ny akronym synas mer och mer i utvecklarcommunityn: CDD - som står för Comment Driven Development. CDD är egentligen inget nytt – många utvecklare känner väl igen sig i metodiken som handlar om ett sökdrivet sätt att hämta in lösningar på problem för att sedan använda styrkan i utvecklingsmiljöerna för att skära ner kodmassan tills applikationen går att köra. CDD bygger på solida designprinciper som ‘DRY’ – Don’t repeat yourself och ‘YAGNI’ – You aint going to need it (uppenbarligen kommer du att minska repeteringen genom att kommentera bort mycket av koden). Enligt vissa står CDD egentligen för Comment Driven Design eftersom metodiken får en stor betydelse för mjukvarudesignen av din applikation.

En viktig del av CDD-metodiken handlar om att snabbt skeppa en “fungerande” applikation till kunden för test. Genom att fånga felen riktigt sent i processen ges tid över för utvecklaren att arbeta agilt genom att kunna göra fler sökningar efter lösningar på problem i de delar av koden som har kommenterats bort. 

Det har också förekommit falanger inom CDD-rörelsen som kopplat ihop CDD med testdriven utveckling – TDCDD – där de tester som du hittar via sökningar först fallerar och du sedan kommenterar bort tillräckligt mycket för att testen ska gå igenom. Vissa försök har också gjorts att kombinera CDD med Domändriven design – men bland andra Eric Evans och Martin Fowler har utryckt viss oro över att det kan ge en s.k. Anemisk domänmodell.

Här kan du se en introduktion till Comment Driven Development på Channel9:

Get Microsoft Silverlight

“Just keep commenting out till it works!”

Comments

  • Anonymous
    April 06, 2010
    April April... Det måste det vara haha

  • Anonymous
    April 07, 2010
    Hehehe Ironiskt nog är det väl så många programtillverkare gör, när de prackar på oss saker som uppenbarligen inte fungerar som de skall. Inga namn nämnda ;-)

  • Anonymous
    November 17, 2010
    en.wikipedia.org/.../Anti-pattern