Dustin Boswell 畢業於加州理工大學,資深軟件工程師,在Google就職多年,負責Web爬蟲和程序設計相關的工作。他專注於前端、後端,服務器架構、機器學習、大數據、係統和網站等技術領域的研究和實踐,經驗十分豐富。他現在是MyLikes的軟件工程師。
Trevor Foucher 資深軟件工程師和技術經理,先後在Microsoft和Google工作瞭數十年,在Microsoft擔任軟件工程師、技術經理以及安全産品技術主管,在Google從事廣告應用開發和搜索基礎結構研發相關的工作。
前言 1
第1章 代碼應當易於理解 5
是什麼讓代碼變得“更好” 6
可讀性基本定理 7
總是越小越好嗎 7
理解代碼所需的時間是否與其他目標有衝突 8
最難的部分 8
第一部分 錶麵層次的改進 9
第2章 把信息裝到名字裏 11
選擇專業的詞 12
避免像tmp和retval這樣泛泛的名字 14
用具體的名字代替抽象的名字 17
為名字附帶更多信息 19
名字應該有多長 22
利用名字的格式來傳遞含義 24
總結 25
第3章 不會誤解的名字 27
例子:Filter() 28
例子:Clip(text, length) 28
推薦用first和last來錶示包含的範圍 29
推薦用begin和end來錶示包含/排除範圍 30
給布爾值命名 30
與使用者的期望相匹配 31
例子:如何權衡多個備選名字 33
總結 34
第4章 審美 36
為什麼審美這麼重要 37
重新安排換行來保持一緻和緊湊 38
用方法來整理不規則的東西 40
在需要時使用列對齊 41
選一個有意義的順序,始終一緻地使用它 42
把聲明按塊組織起來 43
把代碼分成“段落” 44
個人風格與一緻性 45
總結 46
第5章 該寫什麼樣的注釋 47
什麼不需要注釋 49
記錄你的思想 52
站在讀者的角度 54
最後的思考——剋服“作者心理阻滯” 58
總結 59
第6章 寫齣言簡意賅的注釋 60
讓注釋保持緊湊 61
避免使用不明確的代詞 61
潤色粗糙的句子 62
精確地描述函數的行為 62
用輸入/輸齣例子來說明特彆的情況 63
聲明代碼的意圖 64
“具名函數參數”的注釋 64
采用信息含量高的詞 65
總結 66
第二部分 簡化循環和邏輯 67
第7章 把控製流變得易讀 69
條件語句中參數的順序 70
if/else語句塊的順序 71
?:條件錶達式(又名“三目運算符”) 73
避免do/while循環 74
從函數中提前返迴 76
臭名昭著的goto 76
最小化嵌套 77
你能理解執行的流程嗎 80
總結 81
第8章 拆分超長的錶達式 82
用做解釋的變量 83
總結變量 83
使用德摩根定理 84
濫用短路邏輯 84
例子:與復雜的邏輯戰鬥 85
拆分巨大的語句 87
另一個簡化錶達式的創意方法 88
總結 89
第9章 變量與可讀性 91
減少變量 92
縮小變量的作用域 94
隻寫一次的變量更好 100
最後的例子 101
總結 103
第三部分 重新組織代碼 105
第10章 抽取不相關的子問題 107
介紹性的例子:findClosestLocation() 108
純工具代碼 109
其他多用途代碼 110
創建大量通用代碼 112
項目專有的功能 112
簡化已有接口 113
按需重塑接口 114
過猶不及 115
總結 116
第11章 一次隻做一件事 117
任務可以很小 119
從對象中抽取值 120
更大型的例子 124
總結 126
第12章 把想法變成代碼 127
清楚地描述邏輯 128
瞭解函數庫是有幫助的 129
把這個方法應用於更大的問題 130
總結 133
第13章 少寫代碼 135
彆費神實現那個功能——你不會需要它 136
質疑和拆分你的需求 136
保持小代碼庫 138
熟悉你周邊的庫 139
例子:使用Unix工具而非編寫代碼 140
總結 141
第四部分 精選話題 143
第14章 測試與可讀性 145
使測試易於閱讀和維護 146
這段測試什麼地方不對 146
使這個測試更可讀 147
讓錯誤消息具有可讀性 150
選擇好的測試輸入 152
為測試函數命名 154
那個測試有什麼地方不對 155
對測試較好的開發方式 156
走得太遠 158
總結 158
第15章 設計並改進“分鍾/小時計數器” 160
問題 161
定義類接口 161
嘗試1:一個幼稚的方案 164
嘗試2:傳送帶設計方案 166
嘗試3:時間桶設計方案 169
比較三種方案 173
總結 174
附錄 深入閱讀 175
· · · · · · (
收起)
細節決定成敗,思路清晰、言簡意賅的代碼讓程序員一目瞭然;而格式淩亂、拖遝冗長的代碼讓程序員一頭霧水。除瞭可以正確運行以外,優秀的代碼必須具備良好的可讀性,編寫的代碼要使其他人能在最短的時間內理解纔行。本書旨在強調代碼對人的友好性和可讀性。
本書關注編碼的細節,總結瞭很多提高代碼可讀性的小技巧,看似都微不足道,但是對於整個軟件係統的開發而言,它們與宏觀的架構決策、設計思想、指導原則同樣重要。編碼不僅僅隻是一種技術,也是一門藝術,編寫可讀性高的代碼尤其如此。如果你要成為一位優秀的程序員,要想開發齣高質量的軟件係統,必須從細處著手,做到內外兼修,本書將為你提供有效的指導。
編寫可讀代碼的藝術 下載 mobi epub pdf txt 電子書 格式
評分
☆☆☆☆☆
評分
☆☆☆☆☆
##“這是一本被低估瞭其價值的書”,一位朋友在嚮我推薦這本書時嚮我如是說。聽到這樣的評價,筆者在拿到書後立即開始興奮地閱讀,但因為一些瑣事,本打算一周內看完寫書評的,結果又拖瞭兩天。總體來講,確實受益匪淺,物超所值,很受用。 作為一名程序員,當看彆人的代碼時,...
評分
☆☆☆☆☆
##雖然很婆媽,但很有用
評分
☆☆☆☆☆
評分
☆☆☆☆☆
##每次碰到一本好書,總會覺得相見恨晚,無疑《The Art of Readable Code》是編寫程序之路上越早看到越好的一本書。大神Donald E. Knuth曾經說過:“Instead of imagining that our main tasks is to instruct a computer what to do, let us concentrate rather on explaining t...
評分
☆☆☆☆☆
評分
☆☆☆☆☆
##整本書說的都是大道理,而大道理的問題在於,它是一種模糊的準則,不同人的理解和執行是會有偏差的。誠然,一個人按照書中的思想去要求自己、要求他人編寫可讀性高的代碼,是會有很好的結果的。 但是,在讀此書之前,我其實期望能收獲「可執行」的準則,可以交由機器自動化、一...
評分
☆☆☆☆☆
評分
☆☆☆☆☆