當您需要接管別人的軟件項目時,我想知道您的經驗 - 當原始軟件開發人員已經辭職時更是如此。項目轉換
項目轉換
回答
例,其中原開發者移交項目之前闊葉總是最有趣的是:你被困在未知狀態的代碼庫中。我總覺得有趣的是,新開發人員經常盡最大努力評論代碼設計的糟糕程度:他們忘記了老開發人員可能受到的限制,他們可能會被迫做出的捷徑。俗話說的是舊的dev ==糟糕的開發。你們認爲什麼: 我甚至會把這稱爲一種正式的不良做法:對那些在我們面前的人口齒不清。
我儘量採取儘可能務實的方法:學習代碼庫,徘徊一下。嘗試理解需求和代碼之間的關係,甚至根本就沒有明確的初始關係。當你意識到爲什麼他們這樣做或者做了某些事情的時候,總是會有「啊哈的時刻」。如果你仍然相信某些事情是以錯誤的方式實施的,那麼儘可能做一些重構。並隔離你不能改變的代碼片段:單元測試他們使用模擬框架。
向維護開發人員保佑。
我們最大的成功就是「維護」一切。在通知期間,請離開開發人員幫助您記錄團隊/公司wiki中的所有內容,並查看您是否可以與他/她進行代碼審閱,並在執行解釋部分的審閱時向代碼添加註釋。最好是「接管」開發者在離職者的監督下在代碼中寫下評論。
我們實際上有一套指定的「可交付成果」,必須在場才能接管項目。
如果我們有機會嘗試推動開發該項目的團隊中的一個人,這樣我們就可以在我們的小組接管代碼之前得到一些第一手知識。 (在什麼@Guy寫的線)
話雖這麼說,對我來說最重要的部分是:
- 某種類型的噩的高級概述(圖紙?)的代碼做什麼。
- 輕鬆訪問問究竟是誰寫的代碼
這對我來說是人的問題,是α,ω-接管代碼時和項目
我曾經加入了一個團隊,已經從外包交付了一堆蒸汽廢物。原始項目 - 基於Java,Struts,Hibernate | Oracle的多媒體內容管理器結構良好(看起來好像是幾個人的工作,配對編程,明智地使用設計模式,以及一些單元測試)。那麼別人繼承了該項目,並不斷地複製粘貼功能,放鬆了業務規則,修補,分支,直到它成爲一個巨大的意大利麪條怪物喜歡精緻的雕琢一塊代碼:
List<Stuff> stuff = null;
if (LOG.isDebugEnabled())
{
stuff = findStuff();
LOG.debug("Yeah, I'm a smart guy!");
for (Stuff stu : stuff)
{
LOG.debug("I've got this stuff: " + stu);
}
}
methodThatUsesStuff(stuff);
隱藏之中的其他輝煌別出心裁。
我馴服經患者重構獸(提取更多的時間的方法和類),從時間註釋代碼時,重組的一切,直到代碼庫由30%縮水,越來越多的管理隨着時間的推移。
我不得不多次接管別人的不同程度的質量代碼。因此,提示:
花精力去採取任何一塊顯著信息的結構性票據,從分鐘一:利益相關者,業務規則,代碼和文檔位置等的名稱最好是奉獻一個新的螺旋筆記本,所以如果必須的話,你可以把頁面撕掉。
利用市場上更好的免費索引和桌面搜索工具之一(Google桌面搜索,MS Windows搜索可以)。添加所有文檔,電子郵件,代碼位置。
在開發任何文檔分析之前:找到您可以在網絡上以電子方式獲得的所有內容並打印出文檔,並簡單閱讀它。即使在未完成的草稿中也有驚人的有用信息。
隨心所欲地映射代碼,架構等。
由於較少的記錄和維護系統,你不可避免地會有絕望的時刻,可能會推動你進入拖延模式。特別是在你的第一天或者第一週,你的頭腦必須消化的新信息量非常大。在這些時候,很高興有人提醒你(或者自己動手),放鬆一下,先把重點放在重要的事情上,然後回到試圖獲得理解而不是嘗試跳躍的小步驟。
保持記筆記,製作圖表,繪製豐富的圖片,思維導圖。這對消化大量新信息非常有幫助,而這些新信息大多是混亂的。
喜,祝你好運!
- 1. 轉換項目2010
- 2. Gridview項目轉換
- 3. .xltx轉換爲.xltm - VSTO項目轉換
- 4. 將js項目轉換爲NME項目?
- 5. 將iPhone項目轉換爲iPad項目?
- 6. 將android項目轉換爲java項目
- 7. Android將項目轉換爲庫項目
- 8. 將netbeans項目轉換爲eclipse項目
- 9. 轉換現有項目的Maven項目
- 10. SBT項目轉換器的Maven項目?
- 11. 將Maven項目轉換爲Netbeans項目
- 12. m2e:將項目轉換爲maven項目
- 13. 將Flash項目轉換爲flex項目
- 14. 轉換C++項目2010
- 15. Unity項目轉換iOS
- 16. Eclipse - 轉換爲Maven項目
- 17. VS2008到VS2010項目轉換
- 18. 項目轉換成int
- 19. pycharm項目到EXE轉換
- 20. C#VB.net項目轉換
- 21. 測試項目轉換
- 22. Gradle項目轉換爲Maven
- 23. WPF到Silverlight項目轉換
- 24. 轉換JDeveloper項目到Maven
- 25. Visual Studio項目轉換
- 26. 將項目中的非項目目錄轉換爲MKS中的子項目?
- 27. Struts 2轉換問題(拋出項目轉換器上的ClassNotFoundException)
- 28. 將一個JSONAray項目轉換爲多個項目
- 29. 如何將gradle項目轉換爲android項目
- 30. 將動態web項目轉換爲maven項目
Old dev == bad dev。你打的恰到好處(指一般情緒)。最糟糕的是新的開發者可能會使用REWRITE軟件! – 2008-09-24 08:13:43