匠藝整潔之道:程序員的職業(yè)修養(yǎng)
定 價:128 元
- 作者:(美)Robert C. Martin(羅伯特·馬丁)
- 出版時間:2022/4/1
- ISBN:9787121432248
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.52
- 頁碼:372
- 紙張:
- 版次:01
- 開本:16開
鮑勃大叔因在技術(shù)人群中聲名遠(yuǎn)播的Clean系列在全球圈粉無數(shù)。本書為其燙手新作,旨在為廣大工程師指明一條通向匠師之路,包括飽經(jīng)洗礪的敏捷技術(shù)實踐,如何通過持續(xù)的努力提高專業(yè)素養(yǎng),軟件可用之上的目標(biāo)與技能,以及如何激發(fā)團(tuán)隊最大潛能,等等。本書融會幾本經(jīng)典著作的精髓,將“整潔”方法論推向至高境界—軟件開發(fā)者有責(zé)任維護(hù)世界正常運行,而“人”才是“技術(shù)”的決定者。本書共分三部分,前兩部分用實例闡釋TDD在敏捷軟件中的運用,以及驗收測試、協(xié)同編程等常被忽視的敏捷側(cè)面與具體策略,還探討了頗有價值的軟件設(shè)計方案相關(guān)話題;第Ⅲ部分拔地而起,直接提出十條堪稱金玉良言的“規(guī)勸”,以幫助程序員成為團(tuán)隊基石。本書適合所有軟件開發(fā)者、測試工程師及工程類院校師生,對技術(shù)團(tuán)隊負(fù)責(zé)人及架構(gòu)師同樣大有助益。
Robert C. Martin,Object Mentor公司總裁,面向?qū)ο笤O(shè)計、模式、UML、敏捷方法學(xué)和極限編程領(lǐng)域的資深顧問。他是Designing Object-Oriented C++ Applications Using the Booch Method 以及 Jolt 獲獎圖書 Agile Software Development, Principles,Palterns,and Practices(中譯版《敏捷軟件開發(fā):原則、模式與實踐》)《代碼整潔之道》等暢銷書作者。
韓磊,IT產(chǎn)品與運營專家、IT圖書專業(yè)譯者,譯有《代碼整潔之道》《夢斷代碼》《C#編程風(fēng)格》等多部計算機圖書。曾擔(dān)任CSDN副總經(jīng)理、《程序員》總編輯、廣東二十一世紀(jì)傳媒股份有限公司新媒體事業(yè)部總經(jīng)理等職,現(xiàn)任AR初創(chuàng)企業(yè)亮風(fēng)臺廣州公司總經(jīng)理。
第1章 匠藝 1
第Ⅰ部分 紀(jì)律 9
極限編程 11
生命之環(huán) 11
測試驅(qū)動開發(fā) 12
重構(gòu) 13
簡單設(shè)計 14
協(xié)同編程 14
驗收測試 15
第2章 測試驅(qū)動開發(fā) 17
概述 18
軟件 20
TDD三法則 20
第四法則 28
基礎(chǔ)知識 29
簡單示例 30
棧 30
質(zhì)因數(shù) 46
保齡球局 55
小結(jié) 72
第3章 高級測試驅(qū)動開發(fā) 73
排序示例一 74
排序示例二 78
卡殼 86
安排、行動、斷言 94
進(jìn)入BDD 95
有限狀態(tài)機 96
再談BDD 97
測試替身 98
DUMMY 100
STUB 103
SPY 106
MOCK 108
FAKE 111
TDD不確定性原理 113
倫敦派對決芝加哥派 126
確定性問題 126
倫敦派 127
芝加哥派 128
融合 128
架構(gòu) 129
小結(jié) 131
第4章 設(shè)計 133
測試數(shù)據(jù)庫 134
測試GUI 136
GUI輸入 138
測試模式 138
專為測試創(chuàng)建子類 139
自勵 140
HUMBLE OBJECT 140
測試設(shè)計 143
脆弱測試問題 143
一一對應(yīng) 144
打破對應(yīng)關(guān)系 145
VIDEO STORE 147
具體vs通用 166
轉(zhuǎn)換優(yōu)先順序 167
{} → NIL(無代碼→空值) 169
NIL → CONSTANT(空值→常量) 169
UNCONDITIONAL → SELECTION(無條件→條件選擇) 171
VALUE → LIST(值→列表) 171
STATEMENT → RECURSION(語句→遞歸) 172
SELECTION → ITERATION(條件選擇→遍歷) 172
VALUE → MUTATED VALUE(值→改變了的值) 173
示例:斐波那契數(shù)列 173
變換模式優(yōu)先順序假設(shè) 177
小結(jié) 178
第5章 重構(gòu) 179
什么是重構(gòu) 180
基礎(chǔ)工具包 181
重命名 181
方法抽取 182
變量抽取 183
字段抽取 185
魔方 199
紀(jì)律 199
測試 199
快速測試 199
打破緊密的一一對應(yīng)關(guān)系 200
持續(xù)重構(gòu) 200
果斷重構(gòu) 200
讓測試始終能通過 201
留條出路 201
小結(jié) 202
第6章 簡單設(shè)計 203
YAGNI 206
用測試覆蓋 207
覆蓋 208
漸近目標(biāo) 210
設(shè)計? 210
但還有更多好處 210
充分表達(dá) 211
底層抽象 213
再論測試:問題的后半部分 214
盡量減少重復(fù) 214
意外重復(fù) 215
尺寸盡量小 216
簡單設(shè)計 216
第7章 協(xié)同編程 217
第8章 驗收測試 221
紀(jì)律 224
持續(xù)構(gòu)建 224
第Ⅱ部分 標(biāo)準(zhǔn) 225
你的新CTO 226
第9章 生產(chǎn)力 227
永不交付S**T 228
成本低廉的變更適應(yīng)能力 230
時刻準(zhǔn)備著 231
穩(wěn)定的生產(chǎn)力 232
第10章 質(zhì)量 235
持續(xù)改進(jìn) 236
免于恐懼 237
極致質(zhì)量 238
我們不把問題留給QA 239
QA之疾 239
QA什么問題也不會發(fā)現(xiàn) 240
測試自動化 241
自動化測試與用戶界面 241
測試用戶界面 243
第11章 勇氣 245
我們彼此補位 246
靠譜的預(yù)估 247
你得說不 249
持續(xù)努力學(xué)習(xí) 250
教導(dǎo) 251
第Ⅲ部分 操守 253
第一個程序員 254
75年 255
書呆子與救世主 259
榜樣和惡棍 261
我們統(tǒng)治世界 262
災(zāi)難 263
誓言 265
第12章 傷害 267
首先,不造成傷害 268
對社會無害 269
對功能的損害 270
對結(jié)構(gòu)無害 272
柔軟 274
測試 275
最好的作品 276
使其正確 277
什么是好結(jié)構(gòu) 278
艾森豪威爾矩陣 279
程序員是利益相關(guān)者 281
盡力而為 282
可重復(fù)證據(jù) 284
狄克斯特拉 284
正確性證明 285
結(jié)構(gòu)化編程 288
功能分解 290
TDD 290
第13章 集成 293
小周期 294
源代碼控制的歷史 294
GIT 299
短周期 300
持續(xù)集成 301
分支與切換 301
持續(xù)部署 303
持續(xù)構(gòu)建 304
持續(xù)改進(jìn) 305
測試覆蓋率 306
突變測試 306
語義穩(wěn)定性 307
清理 307
創(chuàng)造 308
保持高生產(chǎn)力 308
拖慢速度的因素 309
解決注意力分散問題 311
時間管理 314
第14章 團(tuán)隊合作 317
組團(tuán)工作 318
開放式/虛擬辦公室 318
誠實和合理地預(yù)估 319
謊言 320
誠實、準(zhǔn)確、精確 321
故事1:載體 322
故事2:pCCU 324
教訓(xùn) 325
準(zhǔn)確度 325
精確度 327
匯總 329
誠實 330
尊重 332
永不停止學(xué)習(xí) 332