Quali sono i buoni approcci per ripulire vecchi progetti?

11

Ho un software che ho scritto circa 2 anni fa e ha bisogno di alcune funzionalità aggiunte. Ho capito che è in un pasticcio terribile, e ho l'impulso di spostare tutto, riordinare, ecc. Ho letto Joel sull'articolo del software su non partire di nuovo , quindi qual è il modo migliore per avanzare?

    
posta billy.bob 09.12.2010 - 12:18
fonte

4 risposte

21

Hai tre opzioni di base:

  1. Se l'app è molto piccola e un vero casino , ricominciare potrebbe essere la soluzione migliore.

  2. Refactor .

  3. Live with the mess e hack nelle funzionalità aggiuntive.

Tipicamente, l'opzione (2) è la soluzione migliore.

Quanto refactoring effettivamente dipenderà dalla risorsa che hai inserito rispetto al valore che ottieni. Le domande da porre includeranno:

  1. Che ora / budget sono disponibili?
  2. Quante modifiche prevedi in futuro?
  3. Chi altro vedrà il codice? (ad esempio, il codice disordinato danneggia la tua reputazione?)
  4. È previsto che qualcun altro mantenga il codice?
  5. Quali strumenti di refactoring sono disponibili per aiutarti?
  6. Qual è la tua esperienza di refactoring?
  7. Quale esperienza acquisirai dal refactoring?
  8. Quali tipi di refactoring ti daranno maggiori benefici?
  9. Quali test automatici esistono già? Hai bisogno di essere scritto?
  10. Quanto saranno necessari test manuali?
  11. Come ti sentirai se lasci il codice così com'è?

Nella mia esperienza, è molto facile da ottenere nella giusta confusione durante una sessione di refactoring. Le lezioni più importanti che ho imparato sono:

  1. Fai una cosa alla volta.
  2. Fai piccoli passi.
  3. Fai buon uso del tuo controllo del codice sorgente (controlla di frequente + includi commenti).
  4. Utilizza strumenti di refactoring automatici.
  5. Conosci l'IDE.
risposta data 09.12.2010 - 12:27
fonte
5

Bene, almeno un refactor sufficiente in modo che la nuova funzionalità possa essere aggiunta in modo sicuro. Cioè non renderlo ancora peggio. Il resto dipende dalla motivazione, dal budget e dai limiti di tempo, ma ricorda che pulire completamente un pasticcio può richiedere più tempo rispetto alla creazione originale.

    
risposta data 09.12.2010 - 12:21
fonte
2

Questa volta mentre aggiusti le cose assicurati di documentarlo. La prossima volta che vedrai il codice sarà molto più facile ricordare le cose.

    
risposta data 09.12.2010 - 12:42
fonte
1

Dipende, costerà più tempo per mantenerlo perché è un disastro, o per riscriverlo, quindi non è un disastro e può essere facilmente mantenuto. Sto esaminando personalmente questo aspetto, sto convertendo un sito intranet su ASP.Net MVC3 perché il vecchio codice era un mucchio di schifezze (che ho scritto) perché era supposto essere monouso (sì, dovrei sapere meglio). Il vecchio mucchio di cazzate è ancora qui, ed è un mal di testa che aggiunge funzionalità e bug di correzione. MVC è bello e rende piacevole lavorare su di esso, quindi sta ottenendo una riscrittura.

    
risposta data 09.12.2010 - 14:01
fonte

Leggi altre domande sui tag