Avanscoperta

Test-Driven Development

Clean code that works

Il problema

Il software dovrebbe essere soffice, malleabile, facile da modellare sotto le nostre dita. Eppure spesso non è così: lavoriamo con codice fragile, pieno di difetti; codice brutto, difficile da capire e da modificare. Molti sviluppatori vivono nella paura che il codice si rompa, e andare in produzione è un dramma.

Non sarebbe bello riuscire a scrivere codice pulito, che funziona, codice che raggiunge i nostri obiettivi in poco tempo? E ottenere un design pulito, dove si possano aggiungere nuove funzionalità senza paura?

Una soluzione: il TDD

Il Test-Driven Development è una delle pratiche più importanti dei metodi agili. Ti permette di scrivere codice flessibile e malleabile, guidato dai test. Il codice sviluppato in TDD ha meno difetti, è più manutenibile e disaccoppiato. Inoltre, con il TDD otterrai una suite di test automatici che rendono la manutenzione più sicura e consentono di mantenere pulito il design.

La ricetta del TDD è semplice, ma non è facile da mettere in pratica. Per imparare è importante praticare il TDD sotto la guida di un esperto.

In questo corso imparerai, mani sulla tastiera, come scrivere test efficaci, che esprimono l’intento. Imparerai come scrivere il primo test, e quelli successivi; cioè come risolvere un problema di programmazione in piccoli passi sicuri. Imparerai come sfruttare i test per migliorare il design. Risolverai eventuali dubbi o incomprensioni su come funziona veramente il TDD, confrontandoti con il docente e con gli altri partecipanti. Otterrai una base sicura per proseguire da solo l’apprendimento del Test-Driven Development.

Info

Agenda

Primo Giorno: sviluppo di un’applicazione in Randori

Secondo Giorno: approfondimento di argomenti in base al feedback dei partecipanti

Moduli
  • Sviluppo di un’applicazione TDD in Randori, partendo dal dominio
  • Sviluppo di un’applicazione TDD in Randori, aggiungendo la interfaccia utente
  • Testare il codice legacy
  • Refactoring di codice legacy
  • Sviluppo di un’applicazione web (o desktop) in TDD a coppie
  • Scrivere test d’accettazione efficaci
  • Domande e risposte
Argomenti

La tecnica del TDD

TDD e analisi

User story e scenari

Come il TDD si inserisce nello sviluppo di un’applicazione completa, dall’interfaccia utente alle fonti di dati

Come introdurre il TDD in una base di codice esistente

Il TDD come strumento di progettazione

Test di accettazione; test di integrazione; test end-to-end; test unitari

Il refactoring

Uso appropriato dei mock object

Sostenibilità del TDD nel lungo periodo

Programmazione e design a oggetti efficace

F.A.Q.

In che linguaggio di programmazione si terrà il corso?

Il corso si terrà in linguaggio Java.

Devo portare il mio portatile?

Sì, con installato l’ambiente di sviluppo.

Come devo prepararmi per il corso? Devo leggere qualcosa?

Puoi leggere TDD By Example, soprattutto la prima parte, eseguendo l’esercizio sul codice durante la lettura.

E’ un corso per principianti o per esperti?

E’ per principianti e per chi ha provato il TDD ma non è ancora riuscito a farlo diventare una pratica quotidiana.

Quanto saranno applicabili i concetti illustrati al corso al codice legacy della mia azienda?

Il codice legacy richiede alcune tecniche specifiche, che non sono il focus principale di questo corso. Daremo comunque alcune indicazioni su come affrontare questo tipo di problemi.

Io sviluppo in altri linguaggi di programmazione: posso applicare quanto visto al mio caso?

Sì; il corso si focalizza sui principi e sul metodo; si possono facilmente rapportare agli altri linguaggi.

newsletter

Vuoi leggerci il venerdì mattina insieme al primo caffè della giornata?

Iscriviti alla newsletter

Subscribe!