新到貨2本75折
代碼整潔之道

代碼整潔之道

  • 定價:594
  • 優惠價:87517
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

軟件品質,不但依賴架構及專案管理,而且與代碼品質緊密相關。這一點,無論是敏捷開發流派還是傳統開發流派,都不得不承認。 本書提出一種觀點:代碼品質與其整潔度成正比。乾淨的代碼,既在品質上較為可靠,也為後期維護、升級奠定了良好基礎。作為程式設計領域的佼佼者,本書作者給出了一系列行之有效的整潔代碼操作實踐。這些實踐在本書中體現為一條條規則(或稱“啟示”),並輔以來自實際項目的正、反兩面的範例。

只要遵循這些規則,就能編寫出乾淨的代碼,從而有效提升代碼品質。 本書閱讀物件為一切有志於改善代碼品質的程式師及技術經理。書中介紹的規則均來自作者多年的實踐經驗,涵蓋從命名到重構的多個程式設計方面,雖為一“家”之言,然誠有可資借鑒的價值。
 

作者介紹

Robert C. Martin,世界級軟體發展大師,設計模式和敏捷開發先驅,敏捷聯盟首任主席,C Report前主編,被後輩程式師尊稱為“Bob大叔”。20世紀70年代初成為職業程式師,後創辦Object Mentor公司並任總裁。Martin還是一名多產的作家,至今已發表數百篇文章、論文和博客文章。除本書外,還著有《代碼整潔之道:程式師的職業素養》《敏捷軟體發展:原則、模式和實踐》《UML:Java程式師指南》等。
 

目錄

第1章 整潔代碼 1
1.1 要有代碼 2
1.2 糟糕的代碼 2
1.3 混亂的代價 3
1.3.1 華麗新設計 4
1.3.2 態度 4
1.3.3 謎題 5
1.3.4 整潔代碼的藝術 5
1.3.5 什麼是整潔代碼 6
1.4 思想流派 10
1.5 我們是作者 11
1.6 童子軍軍規 12
1.7 前傳與原則 12
1.8 小結 13
1.9 文獻 13

第2章 有意義的命名 14
2.1 介紹 14
2.2 名副其實 15
2.3 避免誤導 16
2.4 做有意義的區分 17
2.5 使用讀得出來的名稱 18
2.6 使用可搜索的名稱 19
2.7 避免使用編碼 20
2.7.1 匈牙利語標記法 20
2.7.2 成員首碼 21
2.7.3 介面和實現 21
2.8 避免思維映射 21
2.9 類名 22
2.10 方法名 22
2.11 別抖機靈 22
2.12 每個概念對應一個詞 23
2.13 別用雙關語 23
2.14 使用解決方案領域名稱稱 24
2.15 使用源自所涉問題領域的名稱 24
2.16 添加有意義的語境 24
2.17 不要添加沒用的語境 26
2.18 最後的話 27

第3章 函數 28
3.1 短小 31
3.2 只做一件事 32
3.3 每個函數一個抽象層級 33
3.4 switch語句 34
3.5 使用具有描述性的名稱 35
3.6 函數參數 36
3.6.1 單參數函數的普遍形式 37
3.6.2 標識參數 37
3.6.3 雙參數函數 38
3.6.4 三參數函數 38
3.6.5 參數對象 39
3.6.6 參數列表 39
3.6.7 動詞與關鍵字 39
3.7 無副作用 40
3.8 分隔指令與詢問 41
3.9 使用異常替代返回錯誤碼 42
3.9.1 抽離try/catch代碼塊 42
3.9.2 錯誤處理就是一件事 43
3.9.3 Error.java依賴磁鐵 43
3.10 別重複自己 44
3.11 結構化編程 44
3.12 如何寫出這樣的函數 45
3.13 小結 45
3.14 SetupTeardownIncluder程式 45
3.15 文獻 48

第4章 注釋 49
4.1 注釋不能美化糟糕的代碼 50
4.2 用代碼來闡述 51
4.3 好注釋 51
4.3.1 法律資訊 51
4.3.2 提供資訊的注釋 51
4.3.3 對意圖的解釋 52
4.3.4 闡釋 53
4.3.5 警示 53
4.3.6 TODO注釋 54
4.3.7 放大 55
4.3.8 公共API中的Javadoc 55
4.4 壞注釋 55
4.4.1 喃喃自語 55
4.4.2 多餘的注釋 56
4.4.3 誤導性注釋 58
4.4.4 循規式注釋 59
4.4.5 日誌式注釋 59
4.4.6 廢話注釋 60
4.4.7 可怕的廢話 62
4.4.8 能用函數或變數時就別用注釋 62
4.4.9 位置標記 62
4.4.10 括弧後面的注釋 63
4.4.11 歸屬與署名 63
4.4.12 注釋掉的代碼 64
4.4.13 HTML注釋 64
4.4.14 非本地資訊 65
4.4.15 資訊過多 65
4.4.16 不明顯的聯繫 66
4.4.17 函數頭 66
4.4.18 非公共代碼中的Javadoc 66
4.4.19 範例 66
4.5 文獻 70

第5章 格式 71
5.1 格式的目的 72
5.2 垂直格式 72
5.2.1 向報紙學習 73
5.2.2 概念間垂直方向上的區隔 73
5.2.3 垂直方向上的靠近 74
5.2.4 垂直距離 75
5.2.5 垂直順序 79
5.3 橫向格式 80
5.3.1 水準方向上的區隔與靠近 81
5.3.2 水準對齊 82
5.3.3 縮進 83
5.3.4 空範圍 84
5.4 團隊規則 85
5.5 “鮑勃大叔”的格式規則 85

第6章 物件和資料結構 88
6.1 資料抽象 88
6.2 資料、物件的反對稱性 90
6.3 得墨忒耳律 92
6.3.1 火車失事 92
6.3.2 混雜 93
6.3.3 隱藏結構 93
6.4 資料傳送物件 94
6.5 小結 95
6.6 文獻 96

第7章 錯誤處理 97
7.1 使用異常而非返回碼 98
7.2 先寫try-catch-finally語句 99
7.3 使用未檢異常 100
7.4 給出異常發生的環境說明 101
7.5 依調用者需要定義異常類 101
7.6 定義常規流程 103
7.7 別返回null值 104
7.8 別傳遞null值 105
7.9 小結 106
7.10 文獻 106

第8章 邊界 107
8.1 使用協力廠商代碼 108
8.2 流覽和學習邊界 109
8.3 學習log4j 110
8.4 學習性測試的好處不只是免費 112
8.5 使用尚不存在的代碼 112
8.6 整潔的邊界 113
8.7 文獻 114

第9章 單元測試 115
9.1 TDD三定律 116
9.2 保持測試整潔 117
9.3 整潔的測試 118
9.3.1 面向特定領域的測試語言 120
9.3.2 雙重標準 121
9.4 每個測試一個斷言 123
9.5 F.I.R.S.T. 125
9.6 小結 125
9.7 文獻 126

第10章 類 127
10.1 類的組織 128
10.2 類應該短小 128
10.2.1 單一權責原則 130
10.2.2 內聚 131
10.2.3 保持內聚性就會得到許多短小的類 132
10.3 為了修改而組織 138
10.4 文獻 141

第11章 系統 142
11.1 如何建造一個城市 143
11.2 將系統的構造與使用分開 143
11.2.1 分解main 144
11.2.2 工廠 145
11.2.3 依賴注入 145
11.3 擴容 146
11.4 Java代理 149
11.5 純Java AOP框架 151
11.6 AspectJ的方面 154
11.7 測試驅動系統架構 154
11.8 優化決策 155
11.9 明智使用添加了可論證價值的標準 155
11.10 系統需要領域特定語言 156
11.11 小結 156
11.12 文獻 156

第12章 迭進 158
12.1 通過迭進設計達到整潔目的 158
12.2 簡單設計規則1:運行所有測試 159
12.3 簡單設計規則2~4:重構 159
12.4 不可重複 160
12.5 表達力 162
12.6 盡可能少的類和方法 163
12.7 小結 163
12.8 文獻 163

第13章 併發編程 164
13.1 為什麼要併發 165
13.2 挑戰 166
13.3 併發防禦原則 167
13.3.1 單一權責原則 167
13.3.2 推論:限制資料作用域 167
13.3.3 推論:使用資料副本 168
13.3.4 推論:執行緒應盡可能地獨立 168
13.4 瞭解Java庫 168
13.5 瞭解執行模型 169
13.5.1 生產者-消費者模型 170
13.5.2 讀者-作者模型 170
13.5.3 宴席哲學家 170
13.6 警惕同步方法之間的依賴 170
13.7 保持同步區域微小 171
13.8 很難編寫正確的關閉代碼 171
13.9 測試執行緒代碼 172
13.9.1 將偽失敗看作可能的執行緒問題 172
13.9.2 先使非執行緒代碼可工作 172
13.9.3 編寫可插拔的執行緒代碼 173
13.9.4 編寫可調整的執行緒代碼 173
13.9.5 運行多於處理器數量的執行緒 173
13.9.6 在不同平臺上運行 173
13.9.7 裝置試錯代碼 174
13.9.8 硬編碼 174
13.9.9 自動化 175
13.10 小結 176
13.11 文獻 176

第14章 逐步改進 177
14.1 Args的實現 178
14.2 Args:草稿 185
14.2.1 所以我暫停了 196
14.2.2 漸進 197
14.3 字串類型參數 199
14.4 小結 236

第15章 JUnit內幕 237
15.1 JUnit框架 238
15.2 小結 251

第16章 重構SerialDate 252
16.1 首先,讓它能工作 253
16.2 讓它做對 255
16.3 小結 268
16.4 文獻 268

第17章 味道與啟發 269
17.1 注釋 270
17.2 環境 271
17.3 函數 271
17.4 一般性問題 272
17.5 Java 288
17.6 名稱 291
17.7 測試 295
17.8 小結 296
17.9 文獻 296

附錄A 併發編程II 297
附錄B org.jfree.date.SerialDate 326
結束語 388
 

詳細資料

  • ISBN:9787115524133
  • 規格:平裝 / 387頁 / 16k / 19 x 26 x 1.94 cm / 普通級 / 單色印刷 / 初版
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 【其他】2024采實電子書全書系:春暖花開‧享閱讀,參展書單書85折起、任選3本79折
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

請注意,部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約45個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 翦商作者新作79折
  • 針灸匠張寶旬
  • 浪漫小說精選3本72折