讀《編寫可讀代碼的藝術》

編程需要看了這本書,表達的意思雖然可以get到,但翻譯讓我沒有一口氣看完,而是斷斷續(xù)續(xù)看的,記下了我認為重要的點,以后也會經(jīng)??催@篇來重構代碼。(來自筆者的小吐槽)

第1章 代碼應當易于理解

  • 代碼的寫法應當使別人理解它所需的時間最小化

第一部分 表面層次的改進

第2章 把信息裝到名字里

  • 使用專業(yè)的單詞
  • 避免空泛的名字
  • 使用具體的名字來更細致地描述事物
  • 給變量名帶上重要的細節(jié)
  • 為作用域大的名字采用更長的名字
  • 有目的地使用大小寫、下劃線等

第3章 不會誤解的名字

  • 避免使用多義性的單詞(如filter、length和limit)
  • 定義一個值的上限或下限時,max_和min_是很好的前綴
  • 對于包含的范圍,first和last是好的選擇
  • 對于包含/排除范圍,begin和end是最好的選擇

第4章 審美

  • 重新安排換行來保持一致和緊湊
  • 如果多個代碼塊做相似的事情,嘗試讓它們有同樣的風格
  • 把代碼按“列”對齊可以讓代碼更容易瀏覽
  • 用空行來把大塊代碼分成邏輯上的“段落”

第5章 該寫什么樣的注釋

  • 能從代碼本身中迅速推斷出的事實不需要注釋
  • 在這些地方記錄下想法(指導性批注,代碼中的缺陷,常量為什么是這個值)

第二部分 簡化循環(huán)和邏輯

第7章 把控制流變得易讀

  • 比較的左側值更傾向于不斷變化, 右側值更傾向于常量
  • if/else語句先處理正確的/簡單的情況
  • 不要使用do/while循環(huán)和goto

第8章 拆分超長的表達式

  • 德摩根定理
    • not(a or b or c) <=> (not a) and (not b) and (not c)
    • not(a and b and c) <=> (not a) or (not b) or (not c)

第9章 變量與可讀性

  • 減少“中間結果”變量
  • 減少每個變量的作用域
  • 只寫一次的變量最好

第三部分 重新組織代碼

第10章 抽取不相關的子問題

  • 代碼庫常常有個專門的目錄來存放通用代碼(比如util)

第11章 一次只做一件事

  • 一次只做一件事的流程
    1. 列出代碼所做的所有“任務”,“任務”可以小得如“確保這個對象有效”,或者含糊得如“遍歷樹中所有節(jié)點”
    2. 盡量把這件任務拆分到不同的函數(shù)中,或者至少是代碼中不同的段落中。

第12章 把想法變成代碼

  • 用自然語言描述程序然后用這個描述來幫助你寫出更自然的代碼

第13章 少寫代碼

  • 從項目中消除不必要的功能,不要過度設計
  • 重新考慮需求,解決版本最簡單的問題,只要能完成工作就行
  • 經(jīng)常性地通讀標準庫的整個API,保持對它們的熟悉程度

第四部分 精選話題

第14章 測試與可讀性

  • 最好每個測試的輸入/輸出可以用一行代碼來描述
  • 若測試失敗,錯誤消息應該能讓編寫代碼者容易跟蹤并修正這個bug
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容