讀《編寫可讀程式碼的藝術》
程式設計需要看了這本書,表達的意思雖然可以get到,但翻譯讓我沒有一口氣看完,而是斷斷續續看的,記下了我認為重要的點,以後也會經常看這篇來重構程式碼。(來自筆者的小吐槽)
第1章 程式碼應當易於理解
- 程式碼的寫法應當使別人理解它所需的時間最小化
第一部分 表面層次的改進
第2章 把資訊裝到名字裡
- 使用專業的單詞
- 避免空泛的名字
- 使用具體的名字來更細緻地描述事物
- 給變數名帶上重要的細節
- 為作用域大的名字採用更長的名字
- 有目的地使用大小寫、下劃線等
第3章 不會誤解的名字
- 避免使用多義性的單詞(如filter、length和limit)
- 定義一個值的上限或下限時,max_和min_是很好的字首
- 對於包含的範圍,first和last是好的選擇
- 對於包含/排除範圍,begin和end是最好的選擇
第4章 審美
- 重新安排換行來保持一致和緊湊
- 如果多個程式碼塊做相似的事情,嘗試讓它們有同樣的風格
- 把程式碼按“列”對齊可以讓程式碼更容易瀏覽
- 用空行來把大塊程式碼分成邏輯上的“段落”
第5章 該寫什麼樣的註釋
- 能從程式碼本身中迅速推斷出的事實不需要註釋
- 在這些地方記錄下想法(指導性批註,程式碼中的缺陷,常量為什麼是這個值)
第二部分 簡化迴圈和邏輯
第7章 把控制流變得易讀
- 比較的左側值更傾向於不斷變化, 右側值更傾向於常量
- if/else語句先處理正確的/簡單的情況
- 不要使用do/while迴圈和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章 一次只做一件事
- 一次只做一件事的流程
- 列出程式碼所做的所有“任務”,“任務”可以小得如“確保這個物件有效”,或者含糊得如“遍歷樹中所有節點”
- 儘量把這件任務拆分到不同的函式中,或者至少是程式碼中不同的段落中。
第12章 把想法變成程式碼
- 用自然語言描述程式然後用這個描述來幫助你寫出更自然的程式碼
第13章 少寫程式碼
- 從專案中消除不必要的功能,不要過度設計
- 重新考慮需求,解決版本最簡單的問題,只要能完成工作就行
- 經常性地通讀標準庫的整個API,保持對它們的熟悉程度
第四部分 精選話題
第14章 測試與可讀性
- 最好每個測試的輸入/輸出可以用一行程式碼來描述
- 若測試失敗,錯誤訊息應該能讓編寫程式碼者容易跟蹤並修正這個bug
相關文章
- 編寫可讀程式碼的藝術
- 編寫可讀性程式碼的藝術
- 如何提高程式碼的可讀性? - 讀《編寫可讀程式碼的藝術》
- 『No22: 編寫可讀程式碼的藝術(1)』
- 《編寫可讀程式碼的藝術》讀書筆記(上)表面層次的改進筆記
- 編寫可讀的程式碼
- 編寫可讀性程式碼的藝術--萬字總結,看到即學到
- 編寫可閱讀的程式碼--基本規約
- 編寫更加穩定/可讀的javascript程式碼JavaScript
- 乾淨的程式碼: 編寫可讀的函式函式
- 編寫更加穩定、可讀性強的JavaScript程式碼JavaScript
- 編寫易讀的程式碼 (轉)
- 編寫超級可讀程式碼的15個最佳實踐
- Dave Cheney:編寫簡單,可讀,可維護的Go程式碼的十個工程建議Go
- 讀《程式碼不朽:編寫可維護軟體的10大要則》C# 版C#
- 命名&可閱讀的程式碼
- 編寫讓別人能夠讀懂的程式碼
- 編寫Linux實用程式的藝術(轉)Linux
- 編碼如作文:寫出高可讀 JS 的 7 條原則JS
- javascript 程式碼可讀性JavaScript
- 彪悍晨讀-清醒思考的藝術
- JDom讀寫XML(程式碼)XML
- 程式碼可讀性隨想
- 程式碼可讀性心理學
- 編寫可測試的 JavaSript 程式碼Java
- 編寫可測試的 JavaScript 程式碼JavaScript
- 讀《軟體驅魔》除錯和優化遺留程式碼的藝術除錯優化
- NodeJS Stream(可讀流、可寫流) API解讀NodeJSAPI
- 【讀書筆記】Java併發程式設計的藝術筆記Java程式設計
- 程式碼質量第 3 層 - 可讀的程式碼
- 《JavaScript Dom程式設計藝術》讀書筆記(一)JavaScript程式設計筆記
- Wireshark分析藝術【讀書總結】
- 編寫小而美函式的藝術函式
- 「修改軟體的藝術」 讀書筆記筆記
- 掌握編寫有效的GitHub提交資訊的藝術Github
- python讀寫Excel表格程式碼PythonExcel
- 千萬不要寫程式碼不要讀博
- 寫讓別人能讀懂的程式碼