TDD - Test Driven Development - Come scrivere un software migliore
Continuos Integration
1. Continuos Integration
Una pratica XP
Alessandro Ceseno
contact me, my website is:
www.alexceseno.it
Add me on Linkedin:
http://www.linkedin.com/in/alessandroceseno
2. Come rispondere al cambiamento...
Ogni “giorno”...
i requisiti
la tecnologia
il business
il design
la risposta è... Continuos Integration
3. CI
Continuos Integration è una pratica
dell’ eXtreme Programming
CI è realizzata:
● Continuos Integration Server
● Tools: Jenkins o Hudson
4. Implementazione del SW e CI
● Sviluppatore ha una copia locale del codice
● Source code management system
● Pratica agile ha come caratteristica il fatto
che il codice sviluppato abbia dei tests
automatici (ref. TDD)
5. Implementazione del SW e CI (2)
● build in locale (master e non master)
● anche test automatici nella build
6. ●
●
●
●
●
aggiornamento della copia locale
nuova build in locale
verifica build ok (anche i tests)
commit sul server di versionamento
nel caso di errori, risolvere tutti i problemi
prima del commit sul server
7. Continuos Integration Server
● deve avere accesso al repository del codice
● la macchina di integrazione effettua una
nuova build, se ha successo (anche i tests),
si ha l’implementazione della feature
effettuata
● la build è effettuata da un sw (Jenkins o
Hudson)
8. ● Nel caso in cui due sviluppatori hanno
effettuato il commit “contemporaneamente”, il
server di continuos integration avvertirà nel
caso di errori della build o tests.
9. ● Possibili problemi possono essere risolti
velocemente e avere di nuovo una build
funzionante.
● Il server di integrazione non dovrebbe avere
una build non funzionante per più di 24/48
ore.
10. Le pratiche di CI
● Avere un solo repository del codice
sorgente
● build automatizzata
● Includi i tests nella tua build
11. Le pratiche di CI (2)
● I commits devono essere consistenti e
frequenti: piccole funzionalità
implementate in modo incrementale
12. Le pratiche CI (3)
● Ciascun commit nel repository dovrebbe
essere seguito da una nuova build sulla
macchina di integrazione: Continuos
Integration Server
Avere una build funzionante di ambienti diversi consente di aver un
maggior controllo e consapevolezza del codice
13. Le pratiche CI (4)
● Mantieni veloce la build
● Ambiente di Test/Collaudo/Preproduzione
simile all’ambiente di produzione
● Semplicity (mantieni il processo
semplice)
14. Le pratiche CI (5)
● Comunicazione
● Il deployment deve essere automatizzato
15. I vantaggi di CI
● riduce gli errori e i rischi
● maggior conoscenza del codice da parte
di tutti i membri del team
● maggior velocità nel riconoscere e
risolvere i bugs
16. I vantaggi di CI (2)
● meno bugs cumulativi
● deployment frequenti
17. I vantaggi di CI (3)
● si amministra e si automatizza il
processo di build
● si integra il lavoro del singolo nel lavoro
del team
18. I vantaggi di CI (4)
● si hanno feedbacks sui cambiamenti di
codice, ma anche sui reports,
documenti...
● si diminuiscono radicalmente i problemi
di integrazione
19. Continuos Integration
Una pratica XP
Alessandro Ceseno
contact me, my website is:
www.alexceseno.it
Add me on Linkedin:
http://www.linkedin.com/in/alessandroceseno