Ci sono due risultati desiderati dal refactoring. Vuoi team per mantenere un ritmo sostenibile e vuoi zero difetti nella produzione.
Il refactoring avviene sul codice e sul build test dell'unità durante il Test Driven Development (TDD). Il refactoring può essere piccolo e completato su un pezzo di codice necessario per completare una story card. Oppure, il refactoring può essere ampio e richiede una scheda tecnica per affrontare il debito tecnico. La story card può essere inserita nel backlog del prodotto e assegnata la priorità al business partner.
Inoltre, mentre si scrivono i test di unità mentre si esegue il TDD, si continuerà a rifasare il test man mano che il codice viene sviluppato.
Ricordare, in modo agile, le pratiche di gestione definite in SCRUM forniranno la collaborazione e assicureranno di comprendere le esigenze del business partner e il codice che si è sviluppato soddisfa le esigenze aziendali. Tuttavia, senza le corrette pratiche ingegneristiche (come definite da Extreme Programming) il tuo progetto andrà incontro a ritmi sostenibili. Molti progetti agili che non impiegavano pratiche ingegneristiche avevano bisogno di essere salvati. D'altra parte, un team che è stato disciplinato e ha impiegato sia la pratica agile di management che di ingegneria è stato in grado di sostenere la consegna a tempo indeterminato.
Quindi, se il tuo codice viene rilasciato con molti difetti o il tuo team perde velocità, il refactoring e altre pratiche ingegneristiche (TDD, paring, test automatizzati, design evolutivo semplice, ecc.) Non vengono impiegati correttamente.
fonte
2009-05-02 00:26:31
Mentre ci sei, potresti definire oggettivamente il "buon design" anche tu? Sarebbe d'aiuto se ci fosse un punteggio obiettivo per "elegante", "sensibile" e "coerente". –
Ho aggiunto soggettivo alla mia lista di tag. – sal
Ho appena completato la mia risposta e aggiunto altri criteri per misurare il valore del refactoring – VonC