天天看點

如何閱讀修改代碼

開發職業生涯中,每個人除了操刀進行全新的設計開發外,更多的時間是在進行代碼的閱讀和維護,也就是我們常遇到的所謂遺留代碼,對于遺留代碼的問題,如何掌握和修改是需要一定的知識和經驗積累的,幸好前輩們已經提供了很多的閱讀圖書,借助這些知識,站在前人的肩膀上,我們可以看的更遠,走的更遠。

如果内部有文檔和曆史負責人的話,這個最好辦,隻要和對應的師傅進行求教和學習即可。

然而大部分情況是遺留代碼都是比較混亂,文檔和代碼不比對等種種問題,此時隻能是分析和驗證進行熟悉,綜合使用靜态分析、動态分析的方式進行處理,如下的幾個工具可以輔助進行

v Source Insight

n 可以檢視代碼的關聯關系和應用等各種内容

v Visual Studio模組化工具/Together工具

n 對于類圖、時序圖等可以自動反向工程[從代碼生成圖形],友善了解

由于現在開源軟體的蓬勃發展,現在很多産品和項目中使用了開源的工具和軟體等,對于此類,需要注意

如果開源的文檔和社群比較完善的話,那這方面的資料相對都是非常完善的,隻要精通這些基本可以掌握了。

相對不太完善的就需要花功夫學習了,此時英語社群非常有用,如stackoverflow等,在這些社群提問和閱讀别人的使用經驗可謂事半功倍。

但由于在引用這些軟體的時候,由于版本的差異,這個問題需要特别注意,否則有時會出現,自己花費了較長的時間解決的問題,其實在新的版本中已經提供了解決方案了。具體和新的版本合并更新的問題可以使用如下的工具輔助比較差異。

v Beyond Compare

v Diff

版本更新特别需要注意相容性的問題,在進行之前一定要使用TDD進行可用性的驗證。

這個提供了對開源軟體的閱讀方法的指導。

代碼讀懂了,了解了,那就要進行代碼的修改了,代碼的修改其實主要是下面的原因:

v 新增功能

v 修改bug

v 改善或完善:改善設計或優化資源使用

真正操刀的話,需要“膽大心細”,并配合相關的輔助措施。

首先是針對了解的内容建構單元測試,覆寫的幅度越大越好,那麼下一步

v 膽大:對現有的代碼外味道要敢于修改,否則Bad Smell的這些代碼會變成越來越大的維護夢魇

v 心細:通過單元測試小小步疊代,對相容等問題已經要有多種準備和實施步驟

繼續閱讀