I principi XP che guidano questo modo di procedere sono Improvement, e Baby Steps
Ecco degli esempi di miglioramenti della qualità che richiedono tempo e sono a rischio di errore e quindi vanno fatti in modo incrementale :
- Remove code duplication tra 2 diverse classi o pagine aspx, tra una una pagina asp e una aspx - quando è la nuova feature che si sta scrivendo che crea la duplicazione invece di eliminarla subito è più sicuro prima crearla rendendola evidente e scrivere i test e solo poi provare a eliminarla. cosi si consegna la nuova feature funzionante, non si rompe quella preesistente e poi in modo sicuro si può procedere nell'eliminazione
- Remove conditional con l'ereditarietà, con i pattern State o Strategy o Special Case, con Hash Table , con ... - quando è la nuova feature che si sta scrivendo cheaggiunge un ulteriore case a uno switch o un altro if a una catena di if-else invece di eliminare gli if subito (rischiando di rompere la feature esistenti prima ancora di aver creato quella nuova) conviene aggiungere l'if e terminare la nuova feature per poi dedicare tempo alla rimozione degli if
- Move responsibility nella classe corretta - richiede spesso molte modifiche che conviene fare gradualmente meglio se guidati dal TDD perché l'alternativa è affidarsi a una idea personale che può variare molto da persona a persona
In questi casi è utile anche la strategia di procedere in parallelo. A livello di metodo ad esempio sviluppare la modifica su un overload e sostituire il vecchio metodo con l'overload solo all'ultimo passo dopo aver verificato che l'overload funziona co n la nuova funzionalità. A livello di classe si può procedere similmente con una seconda classe che implementa la stessa interfaccia.
Print | posted @ lunedì 22 giugno 2009 02:49