我目前做的運行建立在Java servlet爲(系統預定日期JSP的一個遺留的Web應用程序公司的一些工作,雖然他們現在正在建設新的網頁時使用的建議)。代碼庫是一個非常混亂的混亂,因爲它在過時的框架之上進行了大約10年的構建。他們在代碼基礎上幾乎沒有一致性(這個應用程序多年來一直由不同的人開發,其中大多數不再在這裏工作),沒有DRY的概念(每個頁面基本上都是從頭開始創建的)有很多不可讀/神祕的代碼並且通常只是一個非常不一致的基礎結構。遷移遺留web應用程序的現代化框架
正如我一直在這裏工作我已經在現代的功能被添加/試圖清理代碼庫一點點。我添加了一些jQuery到我接觸到的地方,引入了一些輸入驗證的安全性,清理了一些模塊以使用不顯眼的JavaScript原則等。我在這裏的工作是在新的模塊上,所以我不會接觸到很多舊的邏輯。我試圖在他們當前的基礎架構下爲我的所有工作介紹最佳實踐,但我不得不調用他們的許多舊代碼來使我的工作保持一致。
他們已經達到了一個點,他們正在考慮大規模更新到系統中。他們希望提高代碼庫的可維護性,並嘗試轉向某種現代框架/ MVC類型的應用程序。很多系統在嵌入式風格標記,javascript:function()調用,沒有單元測試,早於Hibernate等等的XHTML之前就有了。在Servlet中有out.println html生成和調用jsp的混合。
,他們一直在尋找一些應用程序包括檢票,Struts中,掛毯和可能的Grails。問題是,遷移到其中的任何一個都可能需要對已經在使用的系統進行大量重寫,並且他們不能重新開始。
我的問題是:如何將遺留的代碼庫遷移到更現代的框架,同時保留現有的業務邏輯(在重寫已經過測試和工作的東西中沒有意義),最好的方法是什麼。
一些被認爲的想法包括:
寫在房子的模板系統,將與他們當前的基礎設施工作(產生一致的方式頁)
代碼移植到一個框架,如掛毯(重新使用大量的舊代碼)
重寫系統從零開始使用現代框架,但從舊系統複製邏輯(如果可能的話)
保留舊系統的,只是更新前端頁面,給它一個更現代的外觀(可能是最好的給定的時間/金錢等)
什麼是更新原有的最佳方式Java Servlet代碼轉換爲現代框架(使用現代實踐進行簡單維護,單元測試,DRY),同時保持邏輯完整?
任何見解是值得歡迎的。