Devo controllare una grande applicazione Java/J2ee web che si è evoluta su diversi anni. È stato scritto da un'altra società, non quella per cui lavoro. In lo stato corrente è diventato difficile da evolvere e mantenere, le nuove funzionalità di sono difficili da aggiungere e spesso portano a bug che a volte si presentano nella produzione . Sembra che ci sia del codice copia/incollato che ha provocato la duplicazione del codice. L'app attuale è una sorta di shopping online con qualche contenuto simile a cms qua e là. Sono principalmente Struts e alcuni Spring in parti più recenti del codice, forse alcuni ejbs lanciati per la misura giusta . Ci sono alcuni test unitari disponibili, ma non molti di loro. Queste sono cose che mi è stato detto, non ho ancora visto il codice attuale.Qual è l'approccio migliore per il controllo di una grande applicazione web java/j2ee
La mia azienda farà una proposta di riscrivere parti di questa applicazione al fine di ridurre la complessità , migliorare la qualità e la modularità, e permettono di aggiungere più facili nuove funzionalità, senza regressioni. Prima di prendere qualsiasi iniziativa, vorrebbero avere un qualche tipo di apprezzamento della qualità del codice esistente e di valutare quanto di esso possa essere riutilizzato, in modo da avere più di un'ipotesi su ciò che ci sarà da fare nell'ordine fatto - riscrittura completa o parziale riscrittura .
Il problema è che dovrò farlo in un periodo molto breve (un paio di giorni) quindi sono cercando di elaborare un piano per ciò che può essere fatto in così poco tempo. Quello che sto thiking è:
- check-out "di base" le cose - Trattamento delle eccezioni, la registrazione
- check out il livello di stratificazione (vista, controllori, strato DAO)
- misurare l'effettiva copertura del unità di test
- forse eseguire alcuni Checkstyle, Findbugs e PMD sui progetti
- ...
Quindi la domanda reale è ciò che altre cose sh posso prendere in considerazione/controllare/misurare/etc?
io non sono sicuro di che tipo di numeri ho potuto uscire da questo, e se sarebbe davvero significare qualcosa, ho la sensazione che ciò che la gestione sta chiedendo è una specie di sbagliato l'approccio , in modo che il secondo quesito sarebbe: qualcuno ha un'idea migliore?
Apprezzerò qualsiasi idea, suggerimento, commento su questo.
Edit: Sarò l'aggiunta di due rivelatori di codice morto al mix: UCD e DCD
Hai davvero le mani piene. Non mi fiderei dei test unitari esistenti senza verificarli. Avrai sicuramente bisogno di una sorta di test di regressione per assicurarti che il codice riscritto soddisfi ancora i requisiti funzionali.Gli articoli della tua lista sono un buon inizio, specialmente gli strumenti di analisi statica che hai citato. – rich