Quote:
Originariamente inviato da tomminno
Ok per il tuo ma per quello scritto da altri?
Puoi permetterti di rischiare di perderti nei meandri di un programma che magari funziona da anni? Sicuramente non documentato e di cui rischi di perderti qualche "nuanche" nascosta nelle decine di if annidati?
Doppotutto la scadenza è fissa (ed è sempre troppo a ridosso).
|
Manco a farlo apposta, ho scritto poco fa un commento a tal proposito riflettendo sugli altri che sono scritti dall'ultima volta che avevo letto il thread.
Quote:
Se la scadenza te lo consente...
Per la mia esperienza non lo consente mai, anche perchè magari ti ci vuole un mese solo per riscrivere quanto esistente e magari la modifica deve finire in produzione in meno di 2 settimane (test inclusi). E da capo progetto se qualcuno mi dicesse questo codice fa schifo lo riscrivo da 0 mi ci vuole 1 mese in più ovviamente gli direi si hai ragione il codice fa schifo, per me puoi fare tutto quello che vuoi ma in 2 settimane deve essere in produzione.
Specialmente perchè i tempi dei progetti sono stimati sul tempo necessario a realizzare la modifica, non per il rifacimento completo.
|
Dalla mia ho un paio di vantaggi: in azienda in Python ci lavoro quasi esclusivamente io (adesso finalmente c'è un collega che sta seguendo le mie orme

), e poi con questo linguaggio scrivo codice molto velocemente.
Comunque un po' di tempo per la rifattorizzazione lo si trova. Non dico sempre, ma dopo diversi mesi mi capita di trovare qualche giorno a disposizione per poterlo fare.
Oppure, mentre lavoro a un nuovo progetto o funzionalità per uno esistente, se mi capita di rimettere mano a codice già scritto e mi accorgo che c'è un pattern ricorrente, rifattorizzo solo quel pezzetto, lasciando il resto com'è.
Quote:
Originariamente inviato da tomminno
Si se il software di partenza è scritto abbastanza bene lo puoi fare, ma il tipico codice è talmente interdipendente che sostituire una parte significa dove necessariamente andare a cambiarne anche un'altra e così via a catena fino alla riscrittura completa dell'intero software.
Per non parlare di software realizzati con vecchi linguaggi ormai morti es: VB6 o ASP.
Devi riscrivere tutto da 0 usando un linguaggio più moderno.
|
OK, ma a me capita di rado una situazione del genere. Vuoi perché, appunto, ci lavoro soltanto io. Vuoi perché ho la tendenza a scrivere codice con una certa interfaccia ben definita e "stabile" nel tempo, per cui la rifattorizzazione quasi sempre mi comporta un cambiamento dell'implementazione e non dell'interfaccia, quindi garantendo il funzionamento del codice già esistente che ne fa uso.