Chi dovrebbe partecipare
- Sviluppatori con esperienza in TDD
- Software engineer e architetti
- Professionisti che desiderano migliorare la qualità strutturale del proprio codice
Prerequisiti
- Conoscenza operativa del ciclo Red–Green–Refactor
- Esperienza con test unitari e framework di testing
- Familiarità con principi SOLID e design orientato agli oggetti
- Capacità di leggere e comprendere codice di media complessità
Contenuti del Corso
Il corso è rivolto a professionisti che possiedono già una conoscenza di base del Test Driven Development e desiderano approfondire l’approccio del Test Driven Design. L’obiettivo è mostrare come i test possano diventare uno strumento di progettazione, capace di far emergere architetture pulite, modulari e orientate alle responsabilità.
Contenuti:
Ripasso di TDD
- Ruolo dei test nel ciclo di sviluppo
- Limiti del TDD tradizionale e motivazioni del Test Driven Design
Fondamenti di Test Driven Design
- Il test come specifica di design
- Progettazione emergente e responsabilità dei componenti
- Identificazione dei confini del sistema
Collaborazioni e dipendenze
- Modellazione delle interazioni tramite test
- Uso avanzato di mock, stub e spy
- Riduzione dell’accoppiamento e aumento della coesione
Pattern e principi di design guidati dai test
- SOLID applicato tramite i test
- Pattern architetturali orientati ai test
- Anti-pattern di design rilevati dai test
Refactoring strutturale
- Tecniche di refactoring orientate alla progettazione
- Miglioramento progressivo dell’architettura
- Gestione della complessità emergente