Domanda

Abbiamo un'app legacy da supportare. È puro JSP, ovvero JSP apre connessioni, fa business logic, invia moduli (di solito allo stesso JSP) e così via. Sono oltre 400 pagine, con alcune pagine grandi quanto 100 KB.

Si prevede che l'app verrà estesa e modificata nei prossimi anni, quindi stiamo cercando dei modi per dividere la presentazione e la logica aziendale per semplificare la manutenzione. Come minimo vorremmo portarlo in un semplice framework MVC (Struts è il candidato # 1).

Nessuno è entusiasta di refactoring ogni pagina manualmente. Abbiamo avuto un'idea che potrebbe essere da qualche parte c'è uno strumento che fa almeno il refactoring parziale, ad es. crea ActionForm basato su request.getParameter () chiama in JSP, sposta tutto il codice Java in Action (anche se non è compilabile), sostituisce alcuni " <% if " con < c: if tags e così via.

Il lavoro rimanente è ancora molto noioso, ma almeno ha una portata molto più piccola.

Qualcuno conosce un tale strumento?

È stato utile?

Soluzione

Non credo ne valga la pena. Stai dicendo che hai più di 400 pagine con alcune oltre 100k?

100k !!!

Probabilmente l'approccio migliore è fare una buona analisi su quella webapp e modulare. Puoi avere moduli totalmente nuovi scritti in altri framework e comunque essere usati insieme.

Per le pagine che sono 100K, sono buoni candidati dei propri moduli.

Non vedo alcun vantaggio nel tradurre semplicemente l'intero pasticcio JSP in qualche altro pasticcio del framework. Quello che accadrà è che semplicemente si romperà in pezzi e nessuno avrà voglia di ripararli.

La parte buona è? Quali moduli andranno per primi? Cos'altro non dovrebbe cambiare?

Vorrei iniziare con quelli che hanno avuto più cambiamenti negli ultimi mesi. Il fatto che un file sia 100K significa solo che è necessario aggiungere nuove funzionalità, ma il modello è stato progettato in modo così male, che invece di creare nuovi oggetti, un po 'di codice è stato semplicemente copiato / incollato e inserito con un if (quasi mi sento come se avessi ho già visto il tuo codice) e il file cresce e cresce.

Alcune parti sembrano facili da migrare, ma il controllo del codice sorgente dice che nessuno ha toccato in 2 anni. lasciali in pace.

Più che usare un bel framework. è necessario migrare e riscrivere le parti più colpite del sistema e creare casi di test questa volta.

Inoltre, è necessario creare uno stile di progetto e convalidarlo automaticamente con qualcosa come checkstyle, in modo che nessuno esegua nuove patch rapide.

Alla fine non tutte le applicazioni verranno migrate, ma le nuove modifiche saranno più facili da eseguire e l'applicazione più facile da mantenere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top