In questo post del blog , l'autore descrive un anti- modello chiamato " flusso di lava "
In poche parole, l'anti-pattern di flusso lavico si verifica quando molti programmatori guidano lo sviluppo di un'applicazione, ognuno dei quali cerca di modificare gradualmente la tecnologia utilizzata da tale applicazione.
Ecco un riepilogo della situazione descritta nel post del blog:
- Laurence avvia lo sviluppo dell'applicazione con la tecnologia A
- Laurence trova un altro lavoro, entra Bruce. Cerca di convincere il management che la tecnologia B è migliore. Chiede tempo per essere assegnato per il refactoring. Ma a causa del budget e dei limiti di tempo imposti dal management, finisce per scrivere un nuovo codice con la tecnologia B e cerca di rifattorizzare - bit per bit - il vecchio codice dalla tecnologia A alla B.
- Bruce trova un altro lavoro, entra Ina. Raccomanda la tecnologia C, ...
- e questo continua all'infinito.
- Alla fine, l'applicazione utilizza le tecnologie A, B, C, D, E, F. Poiché ogni programmatore ha aggiunto la sua nuova tecnologia e ha provato a rifattorizzare il codice legacy, ma non tutto.
La mia domanda è la seguente, immagina cosa dovrebbe avere Bruce (il secondo programmatore fatto)? Qual è la migliore pratica qui? Capisco che ciò dipende dalla situazione, dalle tecnologie coinvolte e da altri fattori ... Ma c'è una buona regola empirica?
Dovresti abbracciare il codice legacy? Dovresti bloccare il processo di sviluppo e dire "Non posso fare nulla senza alcun refactoring"? Dopotutto il flusso di lava anti-pattern non è poi così male?