2016-07-20 42 views
0

我是新來的工作,我繼承了大型代碼java/mobile base。它可能有數百個java文件。我不明白。幾乎沒有文件。瞭解代碼及其工作原理是我的工作。你能給我什麼策略或建議來幫助我解決這個問題?瞭解大型代碼庫的策略

我迄今爲止嘗試過,是我看着在應用中的特定功能 - 打印功能 - 並在代碼放在破發點並只是試圖沿執行跟進。到目前爲止,我只發現哪些類以什麼順序被調用。不過,我覺得這種方式只能對這個複雜的應用程序提供有限的理解。我還要求開發應用程序的特定功能,有人可以指導我如何工作,但人們沒有時間。你能推薦別的嗎?

+1

這個問題很廣泛,並會導致「基於意見」的答案;所以它在這裏是不重要的。儘管你可能會嘗試在quora.com上提問。我的觀點:那裏有一些工具試圖從現有的源代碼中推斷出結構/體系結構。您首先使用這些工具,以便大致瞭解**構成您的應用程序的**。只是在某些領域盲目調試很可能無濟於事。但更重要的是:嘗試識別曾與系統工作過的人;甚至更好:那些瞭解應用程序應該做什麼的領域專家。然後:與他們交談! – GhostCat

+0

另一個問題,這是什麼區分一個普通的程序員和普通的程序員,他可以解決這個問題,並可以找出所有這些工作比普通人更快,因此可以在幾天內開始生成代碼?這是管理人員在尋找什麼? –

+1

同樣,答案是「它取決於」。我認爲分析龐大的現有代碼庫所需的最重要技能是** experience **。當你以前使用過5,10,20種類似的東西時,你可以更快地找到「模式」(因爲你也知道你會在找什麼)。當你第一次這樣做時,你就會在同一時間學習很多東西。很少有人擅長這一點。在這種情況下,你的「核心能力」就是系統工作的能力。但是請注意:SO不是這樣討論的地方。你最好轉向quora.com ... – GhostCat

回答

1

我用我繼承的一個大型應用程序經歷了同樣的事情。 我使用了兩種不同的工具來幫助我拍攝數字筆記。我使用Mindmup (an online mind mapping tool, free, no download)來跟蹤我學習的內容,以及下次訪問該應用時如何重新學習它。我也用StarUML (a free, downloaded, UML tool)。我用它來創建應用程序中的進程,流程,依賴關係,對象的圖表。當然也可以在文本文件中記錄東西。

慢慢的心理模型會開始建立。您將長時間添加並編輯的模型。

2

如果你沒有在Java中的背景下,我建議你讀了對軟件編寫的框架一些文檔,這可能是春天例如或完全不同的東西,但因爲沒有任何可用於項目本身的文檔,只要您清楚瞭解框架本身的運作方式,就會變得更加清晰。除了這個之外,你可以(如果你有時間的話)創建一個草圖並寫入/輸入一些流,就像你之前用斷點並試圖遵循代碼一樣。

它可在第一似乎勢不可擋,但你會得到它下來很快。

查找起點,其中代碼是從可能的用戶界面或用戶操作發射,並按照它通過的結果。每次你遵循一個流程,它會變得更快,你的大局將變得更加清晰。

+0

另一個問題,這是什麼區別於一個普通的程序員,他可以解決這個問題,並可以找出所有這些工作比普通人更快,因此可以開始在幾天內生成代碼?這是管理人員在尋找什麼? –

+0

你似乎錯誤的天才經驗。拿起一個項目,並知道每個模塊或移動部件做什麼,都帶有經驗;你越有經驗,你就可以更容易地選擇一個項目,並開始實際工作,而不是學習。如果你沒有一個主管或一個過去從事項目工作的人來指導你完成這項工作,那真是一件恥辱。不要責怪自己,沒有文件或移交,只需要一定的時間熟悉產品。 –

0

你可以嘗試反向工程Java代碼爲UML模型,然後通過拖動和刪除創建多個圖表,你想學習的課程。

它會給你現有的類,屬性和關係的一個好主意。 GenMyModel直接在線提供此功能,無需安裝任何東西:see documentation

0

首先獲取有關業務邏輯的良好信息。