開發維護大型項目的Java的建議.txt
開發維護大型項目的Java的建議.txt
1、不要試圖一下子搞懂整個項目
2、關注於盡快交付價值
有效的單元測試用例是理解大型項目代碼的很好途徑
寫一些筆記,或者畫一些類圖、時序圖、數據模型圖,以便你或日後其他的開發者維護
3、維護大型項目所必須的技能
3.1能夠迅速發現需要的類
3.2能夠分析變更的影響
模仿現有的特性使用相似的設計
4、使用工具找到需要的變更內容以及變更產生的影響
4.1 迅速發現需要變更內容的工具
1)基本有兩種方式理解一個用例的工作方式,靜態代碼分析和運行時分析。
2)源碼分析統計掃描所有代碼並且展示類之間的關係,工具:Architexa, AgileJ, UModel, Poseidon等
3)靜態代碼分析工具缺點在於無法確切展示用例中類或方法的運行時調用情況,可以通過“回調機制”(callback patterns)
4)運行時分析工具能夠展示類和方法在用例運行時的狀態,工具包括:MaintainJ, Diver,jSonde,Java Call Tracer等。這些工具可以捕獲運行時的堆棧狀態,並以此爲一個用例生成序列圖和類圖。
5)序列圖展示了該用例在運行時所有調用的方法
6)若你在修復一個bug,那這個bug很可能就是這些被調用的方法之一。
若你在增強已有功能,利用序列圖理解調用流程然後再修改。可能是新增一個驗證,修改DAO等。
若你在新增功能,找到一些相似的特性,利用序列圖理解調用流程然後模仿開發新功能。
7)要小心挑選運行時分析工具
8)若單元測試有效,可以通過運行單元測試發現變更有沒有破壞其他測試用例
9)仍然是有兩種技術靜態代碼分析和運行時分析可以使用。市場中有很多靜態代碼分析工具可用。如:Lattix, Structure101, Coverity, nWire and IntelliJ's DSM。
5、對上述內容的兩個忠告
5.1不要降低代碼質量
5.2 不要停止深入理解項目架構
6、結論
1)在對項目進行必要了解的前提下進行快速交付。
2)你可以在不降低代碼質量的前提下這麼做。
3)若修復一個bug,迅速定位並修復。
4)有必要可以使用運行時分析工具。
5)若新增一個特寫,可以尋找相似特寫,理解流程(有必要使用工具)並編寫。