Bit a bit, si cresce sempre


Blog di un ingeformatico
Statistiche
  • Views Home Page: 530.049
  • Views Posts: 1.660.975
  • Views Gallerie: 891.487
  • n° Posts: 520
  • n° Commenti: 301
Ora e Data
Archivio Posts
Anno 2017

Anno 2016

Anno 2015

Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Recensione libro Professional Test Driven Developmente in C# (Wrox)

Se non fosse per gli esempi di codice eccessivamente ed inutilmente complicati, questo piccolo libro dedicato a come si creano i test automatici in .NET utilizzando C# come linguaggio potrebbe diventare una vera piccola perla.
I due autori, che diventano poi in realtà tre leggendo le pagine dell’introduzione, hanno una vasta e lunga esperienza nello sviluppo sul .NET Framework a 360 gradi, e sono entrambi MVP e pluricertificati.
L’argomento è indubbiamente di importanza fondamentale: come si creano, si scrivono e si gestiscono i test necessari per testare la corretta esecuzione delle proprie applicazioni, sia che siano di tipo “C# puro”, sia ASP.NET (Web Forms e MVC 3.0), sia con WCF e persino con WPF e Silverlight.
Sono poco più di 300 pagine per 14 capitoli, più una brevissima appendice riportante le “buone maniere” per lavorare con la mentalità “test driven”.
L’approccio è “siamo sviluppatori e scriviamo per sviluppatori”: si bada quindi al sodo, con tanti esempi pratici, consigli di vita vissuta e varie raccomandazioni (in stile “best practices”) sparse per i vari capitoli.
Devo dire che ho apprezzato maggiormente la parte iniziale e i capitoli finali di questo libro.
Nella prima parte (i primi 5 capitoli) si fa un excursus veramente interessante ed avvincente sull’utilità dei test, con parecchi approfondimenti sulla buona programmazione. Da non tralasciare, soprattutto, il capitolo 3 in cui si approfondisce il refactoring e si espone, in maniera eccellente, i 5 principi SOLID:

- Single Responsibility Principle
- Open/Close Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle

più tutta una serie di buoni consigli di programmazione (cicli, commenti, nomenclatura, ecc. ecc.).
Questi capitoli hanno un’utilità che va anche al di là del puro discorso “test”, e possono risultare utili ad una vasta schiera di lettori.

Nella seconda parte si entra nel merito del TDD, e si presentano i primi esempi di codice.
Diciamo subito che come framework di test si usa quasi sempre NUnit, con l’appoggio (quando servono) di Ninject, Mock, NBehave e xUnit.
Purtroppo, come detto all’inizio, gli esempi proposti sono forse un po’ concettualmente complicati. Mi sono trovato spesso a spendere troppo tempo nel cercare di capire la logica funzionale degli esempi rispetto al tempo impiegato per capire i test.
I nomi delle classi/metodi/variabili sono quasi sempre eccessivamente lunghi e complicati.
Fortunatamente il discorso degli autori è sempre molto informale e chiaro, e in parte sopperisce a questi problemi.

La terza parte è un’altra chicca di questo libro, dato che viene spiegato come testare tipologie di applicazioni che, per loro natura, si prestano a questo scopo decisamente meno del “puro” C#, ovvero ASP.NET (sia Web Forms che MVC – anche se quest’ultimo è molto più portato ai test), WPF, WCF e persino Silverlight.
Dico che è di pregio perché in altri libri sul TDD è difficile che la trattazione si soffermi su queste tecnologie: quasi sempre si fanno esempi in puro stile Console Application.
Infine negli ultimi 3 capitoli della quarta parte si illustrano i vari tool disponibili per approntare i test (sempre con utili consigli e pareri) e si fa un richiamo alla giusta mentalità per iniziare a diventare un vero sviluppatore “Test Oriented”.

Qualche parola ed immagine sul contenuto fisico del libro.
Ci sono tante pagine di puro scritto, in cui si spiegano i concetti base della buona programmazione ad oggetti e
il giusto approccio per i test.

Le pagine dove è presente del codice invece, come da tradizione Wrox, risultano ben impaginate, come si vede da questa altra immagine.

Lo spessore del libro è ridotto, come si vede da questa immagine (ho dovuto mettere un peso sulla copertina dato che la sua rigidezza la fa partire per altre destinazioni).

Infine il codice sorgente.
Dal sito della Wrox bisogna scaricarselo capitolo dopo capitolo, come si vede da questa immagine.

In totale fanno ben 92 MB e bisogna ammettere che è ben organizzato e ben scritto. 

Sempre sul sito della Wrox è possibile scaricarsi, in formato Pdf, il sommario dettagliato e soprattutto il capitolo 1, di carattere molto introduttivo e discorsivo (18 pagine in tutto).
Per quanto riguarda Windows Communication Foundation, devo segnalare che uno degli autori, James Bender, ha realizzato un bellissimo tutorial introduttivo nel suo blog, raggiungibile a questo indirizzo

Su Amazon Italia il libro costa attualmente 27 euro.

Sommario
Introduction
Part 1: Getting started
3 - Chapter 1: The road to test-driven development
19 - Chapter 2: An introduction to unit testing
41 - Chapter 3: A quick review of refactoring
73 - Chapter 4: Test-driven development: let the tests be your guide
97 - Chapter 5: Mocking external resources
Part 2: Putting basics into action
117 - Chapter 6: Starting the sample application
137 - Chapter 7: Implementing the first user story
169 - Chapter 8: Integration testing
Part 3: TDD scenarios
197 - Chapter 9: TDD on the web
227 - Chapter 10: Testing Windows Communication Foundation services
245 - Chapter 11: Testing WPF and Silverlight applications
Part 4: Requirements and tools
267 - Chapter 12: Dealing with defects and new requirements
279 - Chapter 13: The great tool debate
299 - Chapter 14: Conclusions
311 - Index

Categoria: Books
mercoledì, 08 feb 2012 Ore. 20.30

Messaggi collegati


Meteo
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003