[英]what is the best method to fetch data on frontend in j2ee application?
[英]What's the best approach in auditing a big java/j2ee web application
我必須審核一個已經發展了幾年的大型Web Java / J2ee應用程序。 它是由其他公司編寫的,而不是我正在為之工作的公司。 在目前的狀態下,它變得難以發展和維護,新的功能很難添加,並且經常導致生產中出現的錯誤。 似乎有一些復制/粘貼代碼導致代碼重復。 當前的應用程序是某種在線購物,其中包含一些類似cms的內容。 它主要是代碼的新部分中的Struts和一些Spring,也許有些ejbs可以用來衡量。 有一些單元測試可用,但不是很多。 這些是我被告知的事情,我還沒有看到實際的代碼。
我的公司將提出重寫此應用程序部分的建議,以降低復雜性,提高質量和模塊性,並且可以在沒有回歸的情況下添加更簡單的新功能。 在進行任何通信之前,他們希望對現有代碼的質量有一些了解並評估其中有多少可以重復使用,以便不必猜測將要做什么 - 完整重寫或部分重寫。
問題是,我必須在很短的時間內(幾天)做到這一點,所以我正在努力制定一個計划,以便在如此短的時間內完成任務。 我的意思是:
那么實際的問題是我應該考慮/檢查/衡量/等其他什么?
我不確定我能從中得到什么樣的數字,如果它真的意味着什么,我覺得管理層所要求的是一種錯誤的方法,所以第二個問題是:有沒有人有一個更好的主意?
我會感激任何想法,建議,評論。
我有兩個與您具有類似設置的Web應用程序。 我停止使用FindBugs和Checkstyle,因為他們顯示了超過10.000個問題點。 應用程序使用JDBC級別數據訪問,JSP用於表示,以及用於請求分派的自定義框架。 幸運的是,這些低級設置允許我在中等難度下進行擴展和修復。 在為期3年的項目中,只有大約20%的原始代碼保持不變。 其他一切都需要更改,替換或刪除(最后我能夠使用FindBugs和Checkstyle)。
我們也面臨完全重寫的困境。 但是,有幾個因素反對它:
它歸結為你想要做的事情。
盡管有復雜性,你想重寫嗎?
你不想改寫?
如果您想品嘗代碼,請嘗試添加Hello World! 功能/屏幕到應用程序。 這說明了你能夠實現新事物的難度和速度。
事實上,他們不會支付全部重寫費用,因為:
這是經濟衰退,你從頭開始重寫它的成本會很高
他們可能會盡快出售公司
我先說一些簡單的事實:
如果他們沒有為您提供有關它的文檔,請嘗試繪制應用程序體系結構的快速圖表。
收集一些統計數據和一些事實,撰寫報告並將其發送給公司。 他們希望最大限度地降低成本,他們會要求您避免修復未破壞的代碼。 您可以從統計數據開始,然后查看事實和一個命題,其中包含受影響/定價的代碼的時間/近似百分比。
通常遺留的Struts應用程序是維護的必備軟件。 如果它不是你工作的一部分,我會說放手吧。 如果您遇到“獨立”頁面,這些頁面不涉及許多模板並且需要進行許多更改,建議使用其他一些技術重寫它們。
我非常喜歡你的名單。 我認為你有一個很好的攻擊計划。
我將着眼於標准化Spring或EJB 3.0,但不是兩者兼而有之。
我自己沒有看過,但我想知道Michael Feathers的書“有效地使用遺留代碼”是否有任何好的想法?
更新:
也許您可以通過將它們置於自動構建和持續集成(Cruise Control,Hudson或Team City)來提供幫助。 如果你必須做任何重構,它會有所幫助。
您正專注於可維護性和可擴展性。
我想補充看重啟項目需要多長時間。 他們使用源代碼控制嗎? 他們是否有單獨的環境進行集成和用戶驗收測試? 有構建服務器嗎?
當您需要花費兩個月才能實現第一次改進時,有人需要提前管理客戶的期望。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.