2010-04-28 97 views
2

我是一個相當新手的Java程序員,我目前正在開發一個項目來擴展已經開發了幾年的軟件。 因此,它有相當大的代碼庫,以前的開發人員都知道它,所以如果不徹底理解其結構和功能,擴展它就不會容易。學習複雜軟件包的策略

1)我已經開始試圖解決系統的一小部分,並用思維導圖來記錄它們。 (特別是我試圖記錄與外部系統的交互)

2)我有本書「代碼完整」,我正在努力。

3)我已經在代碼中指出了一些工具,例如「tattletale」,以獲得一些依賴關係圖。

我應該採用哪些其他策略,我應該關注一個特定的方面?

+0

關閉重複http://stackoverflow.com/questions/2658133/code-understanding-reverse-engineering-best-concepts-and-tools-java – 2010-04-28 19:53:24

回答

3
10 Start small. 
20 Break things. 
30 Then fix what you broke. 
40 Goto 20 
0

也許你可以嘗試模擬程序要解決的問題。如果您對該解決方案存在的問題和限制有清晰的認識,那麼應該更容易理解該程序本身。我只是在猜測,因爲我不知道它是什麼類型的程序。

+0

在這種情況下,它的基於Eclipse的Java RCP應用程序,但我已經有一些類似的項目出現了,所以我正在試圖制定一個策略來徹底學習這個平臺(而不是僅僅學習,並且破解它;-) – Tom 2010-04-28 20:04:22

+0

嚴肅地說,很難跳進某人刪除代碼庫,並開始進行更改,而不考慮方法或文檔技術或建模軟件。我目前維護一個軟件,並在一年前交給我。有些地方我還沒有挖掘到,只是因爲我還沒有到。我認爲如果你試圖把握所有事情,你就會旋轉你的輪子。維護編程我認爲最難的只是因爲你不是原始程序員,也不是在那裏進行設計/方法論討論等。 – Jeremy 2010-04-29 19:36:47

+0

我相信,理解任何一段代碼幾乎是不可能的,而不理解它應該是的問題解決。對問題的理解越好,代碼就越容易理解。一個明確的例子是包含業務規則的代碼。 – David 2010-05-02 09:44:02

0

重要的是你找到一個好項目的教練。去找一個好人,誰知道系統,誰喜歡回答你的問題。

也有建築師解釋你的系統。如果是好的,他可以指出重要的部分,並指出遠離不需要知道的部分(還)。

然後嘗試撿起小問題。即使是愚蠢的錯誤消息,並從那裏去。在幾周內,你應該能夠掌握系統的基礎知識。

祝你好運!