Red Bar/Green Bar/Refactor

Luca | March 25, 2005

Nei giorni scorsi ho fatto Test Driven Development per lo sviluppo di alcune classi che devono generare un file XML partendo da una serie di informazioni; niente di impossibile, ma sicuramente un contesto adeguato perchè libero da “intromissioni” di database e GUI…..ottima palestra per iniziare a fare TDD!!!

Subito le sensazioni: TDD ti obbliga a pensare “fortemente” orientato agli oggetti. Quelle che nello sviluppo tradizionale sono elucubrazioni, qua sono effettivamente guidate da un feedback molto concreto; mi sono trovato a definire un metodo statico all’interno di un oggetto che non avrei mai fatto con i modi tradizionali, e la scelta è risultatta assolutamente correttissima.

Fare TDD non è per niente facile su codice reale: l’abitudine ti porta a

  1. debuggare
  2. tracciare il codice (che è sempre una forma di debug)

Con TDD questo non esiste, e la cosa ti mette parecchio in difficoltà quando non riesci a capire perchè certi test non passano; la cosa è moltiplicata dal fatto che con TDD testo i metodi pubblici…ma come faccio a capire se l’errore è su un metodo privato ? (attendo speranzoso risposte…)

L’orientamento agli oggetti che TDD ti da rende veramente più facile ragionare su un design evolutivo: scrivere, rifattorizzare, riscrivere e rifattorizzare ancora è assolutamente naturale con TDD.

Alla fine in circa un giorno e mezzo ho implementato le classi necessarie con i relativi test (una decina); sono parecchio contento della qualità ottenuta, devo ovviamente migliorare sulla scrittura dei tet e sul ritmo nel ciclo barra rossa/barra verde/refactor, ma la prima esperienza con codice reale è assolutamente soddisfacente.

Leave a comment

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>