La premessa era che Brad aveva bisogno di creare un sistema di fatturazione in abbonamento che scatenasse fatture periodiche e aggiornasse anche il record del cliente - usando C # e xUnit.net (il framework di test di Brad che ha creato con Jim Newkirk). Per molti, questo sembra semplice. Per quelli che hanno implementato una cosa del genere - è tutt'altro.
La cosa che mi è davvero piaciuta di questo episodio è che ho spinto Brad quanto bastava per rimuovere la "demo veneer" - gli ho dato una palla curva di circa 30 minuti in cui ho detto "Oh sì ... ho già detto che facciamo anche X ?” - e ha dovuto adattarsi.
Quando hai un casino di prove che presuppongono una cosa, allora devi passare a un'altra - è un dolore nel culo. Ma Brad lo ha gestito incredibilmente bene - cogliendo l'occasione per spingere più struttura nel suo processo di test, quindi uno per uno "transizione" i suoi vecchi test nel nuovo approccio.
Abbiamo lavorato per un'ora intera in un unico file di codice e non avevo mai visto nessuno farlo prima. Certo, ho creato una classe proprio all'interno del codice - ma guardare Brad girare su una classe dopo l'altra, quindi rinominare, quindi eliminare, quindi ristrutturare completamente i suoi test ... è stato molto, molto interessante.
Dicono sempre che TDD è un "processo di progettazione" - eppure non l'ho mai visto usato in un modo veramente "design-y" - come un pittore potrebbe lanciare un colore dopo l'altro su una tela fino a quando non appare / sembra giusto. Ed è esattamente quello che ha provato a guardarlo.
Circa 15 minuti a Brad menzionano che "lascio una lezione nel file di test fino a quando non è pronto per essere reso pubblico", il che significa che ha abbastanza test per giustificare le sue decisioni di progettazione. Un concetto a cui non avevo mai veramente pensato prima - un po 'come usare il file di test come un po' "grembo".
Si è "fatto strada" attraverso la creazione del sistema di fatturazione - parlando da solo tutto il tempo e creando qualcosa di piuttosto interessante e piuttosto dannatamente vicino a quello che abbiamo finito dopo quasi 3 anni di vita.