前工程師跑路留下代碼爛攤子,別慌,5 招教你搞定

前工程師跑路留下代碼爛攤子,別慌,5 招教你搞定

作者 | Prahlad Yeri

出品 | CSDN(ID:CSDNnews)

作為程序員我工作過的大多數 IT 公司都是 IT 服務行業。幾乎沒有什麼新鮮的工作,大部分時間我們都不得不維護或修復其他工程師寫的代碼,這些工程師有時候甚至已經跑路了。

因此,我們必須要能夠適應閱讀和調試現有的代碼。本文我將根據我的經驗,給出閱讀和調試代碼的一般方式並和技巧:

前工程师跑路留下代码烂摊子,别慌,5 招教你搞定

事先準備好所有可以找到的背景材料和文檔

當你甚至都不知道這些代碼是關於啥的以及這些代碼是用來幹啥的時候,閱讀別人的代碼就會非常痛苦。你可能需要從設計人員,測試人員,客戶,領域專家等各種頭銜的人那裡收集信息。你可能還需要在公司的內網或文檔系統裡進行搜索資料。如果你能很幸運地找到之前版本的測試用例,那就更好了!

前工程师跑路留下代码烂摊子,别慌,5 招教你搞定

研究後端數據庫 (表、視圖等)

大約 90% 的現有代碼的功能是從某處獲取輸入並將其處理以後放入數據庫的表中。或者從數據庫表獲取數據,或者將其展示到用戶屏幕上,或者作為 API 請求的響應返回。先理解後端數據結構可以幫助你後面理解代碼的意圖。然而,有時候後端數據庫並不總能看得的!我有很多次,因為數據庫和服務器訪問權限尚未提供給我,而不得不先開始研究代碼!但是,如果你具有這種訪問權限,可以通過運行 SQL 語句來研究後端表。

前工程师跑路留下代码烂摊子,别慌,5 招教你搞定

先瀏覽一下模塊/類,不要逐個進入每個函數/過程

假設你遵循了前兩個步驟,那麼現在你至少應該對應用程序有了一定的瞭解。現在,控制自己要逐行閱讀所有代碼的衝動,先去了解應用程序的一些 “慣例” 。先從應用程序的入口開始(在 Java / C#中為 void 主函數,在其他語言中為類似的等效函數),從程序的入口著手梳理源碼。瀏覽代碼時,多關注下各種註釋,有時註釋裡會包含很多有價值的信息。繼續在記事本中記下代碼的作用。

像下面給出的示例這樣寫出偽代碼,對理解代碼非常有幫助:

<code>start: main function/<code><code>input: distro_file/<code>
<code>call check_pattern: distro_file/<code>
<code>if not check_successful:/<code><code> print("pattern doesn't match with any known distros")/<code><code> exit/<code>
<code>call verify(pattern_resul/<code>

以上偽代碼是我編寫的名為 distro-verify 開源 python 應用時寫的一個簡單示例。

開始調試代碼,必要時重複多次

調試是每一個稱職的程序員生存之道!正如你需要控制一匹不穩定的馬一樣,你也需要使用調試工具調試源代碼來保證其正確性。儘管單步調試是一種很好的,甚至是首先的方法,但是你不一定要在 IDE 中對源碼打斷點進行單步調試。你還可以在代碼中的重要位置添加打印語句來調試代碼。調試代碼的次數越多,你就越能理解它的作用。在調試過程中,你需要仔細瞭解代碼的每一個細節。

前工程师跑路留下代码烂摊子,别慌,5 招教你搞定

嘗試各種輸入和變化

通常,測試人員、設計人員或者文檔會告訴你輸入應該是什麼。在對代碼進行調試的過程中,你要不斷記錄自己不理解的內容 (也許設計師或領域專家稍後會幫你解答這一部分疑問)。你還可以嘗試各種輸入,觀察應用程序對每個輸入做了什麼。如果你有測試用例,運行應用程序的每個測試用例看看他們是否能夠通過。

以上是一些非常通用的技巧,但是特定代碼可能有一些特殊性,這些特殊情況可能需要一些額外的步驟。請在下方留言告訴我你閱讀別人代碼時是怎樣做的。

原文鏈接:

https://freelancemag.blogspot.com/2020/02/cracking-chaos-tips-on-reading-and.html

本文為CSDN翻譯文章,轉載請註明出處。


分享到:


相關文章: