《匠艺整洁之道:程序员的职业修养》简介:

鲍勃大叔因在技术人群中声名远播的Clean系列在全球圈粉无数。本书为其烫手新作,旨在为广大工程师指明一条通向匠师之路,包括饱经洗砺的敏捷技术实践,如何通过持续的努力提高专业素养,软件可用之上的目标与技能,以及如何激发团队最大潜能,等等。本书融会几本经典著作的精髓,将“整洁”方法论推向至高境界—软件开发者有责任维护世界正常运行,而“人”才是“技术”的决定者。

匠艺整洁之道:程序员的职业修养》共分三部分,前两部分用实例阐释TDD在敏捷软件中的运用,以及验收测试、协同编程等常被忽视的敏捷侧面与具体策略,还探讨了颇有价值的软件设计方案相关话题;第Ⅲ部分拔地而起,直接提出十条堪称金玉良言的“规劝”,以帮助程序员成为团队基石。

《匠艺整洁之道:程序员的职业修养》适合所有软件开发者、测试工程师及工程类院校师生,对技术团队负责人及架构师同样大有助益。

《匠艺整洁之道:程序员的职业修养》目录:

第1章 匠艺 1
第Ⅰ部分 纪律 9
极限编程 11
生命之环 11
测试驱动开发 12
重构 13
简单设计 14
协同编程 14
验收测试 15
第2章 测试驱动开发 17
概述 18
软件 20
TDD三法则 20
第四法则 28
基础知识 29
简单示例 30
栈 30
质因数 46
保龄球局 55
小结 72
第3章 高级测试驱动开发 73
排序示例一 74
排序示例二 78
卡壳 86
安排、行动、断言 94
进入BDD 95
有限状态机 96
再谈BDD 97
测试替身 98
DUMMY 100
STUB 103
SPY 106
MOCK 108
FAKE 111
TDD不确定性原理 113
伦敦派对决芝加哥派 126
确定性问题 126
伦敦派 127
芝加哥派 128
融合 128
架构 129
小结 131
第4章 设计 133
测试数据库 134
测试GUI 136
GUI输入 138
测试模式 138
专为测试创建子类 139
自励 140
HUMBLE OBJECT 140
测试设计 143
脆弱测试问题 143
一一对应 144
打破对应关系 145
VIDEO STORE 147
具体vs通用 166
转换优先顺序 167
{} → NIL(无代码→空值) 169
NIL → CONSTANT(空值→常量) 169
UNCONDITIONAL → SELECTION(无条件→条件选择) 171
VALUE → LIST(值→列表) 171
STATEMENT → RECURSION(语句→递归) 172
SELECTION → ITERATION(条件选择→遍历) 172
VALUE → MUTATED VALUE(值→改变了的值) 173
示例:斐波那契数列 173
变换模式优先顺序假设 177
小结 178
第5章 重构 179
什么是重构 180
基础工具包 181
重命名 181
方法抽取 182
变量抽取 183
字段抽取 185
魔方 199
纪律 199
测试 199
快速测试 199
打破紧密的一一对应关系 200
持续重构 200
果断重构 200
让测试始终能通过 201
留条出路 201
小结 202
第6章 简单设计 203
YAGNI 206
用测试覆盖 207
覆盖 208
渐近目标 210
设计? 210
但还有更多好处 210
充分表达 211
底层抽象 213
再论测试:问题的后半部分 214
尽量减少重复 214
意外重复 215
尺寸尽量小 216
简单设计 216
第7章 协同编程 217
第8章 验收测试 221
纪律 224
持续构建 224
第Ⅱ部分 标准 225
你的新CTO 226
第9章 生产力 227
永不交付S**T 228
成本低廉的变更适应能力 230
时刻准备着 231
稳定的生产力 232
第10章 质量 235
持续改进 236
免于恐惧 237
极致质量 238
我们不把问题留给QA 239
QA之疾 239
QA什么问题也不会发现 240
测试自动化 241
自动化测试与用户界面 241
测试用户界面 243
第11章 勇气 245
我们彼此补位 246
靠谱的预估 247
你得说不 249
持续努力学习 250
教导 251
第Ⅲ部分 操守 253
第一个程序员 254
75年 255
书呆子与救世主 259
榜样和恶棍 261
我们统治世界 262
灾难 263
誓言 265
第12章 伤害 267
首先,不造成伤害 268
对社会无害 269
对功能的损害 270
对结构无害 272
柔软 274
测试 275
最好的作品 276
使其正确 277
什么是好结构 278
艾森豪威尔矩阵 279
程序员是利益相关者 281
尽力而为 282
可重复证据 284
狄克斯特拉 284
正确性证明 285
结构化编程 288
功能分解 290
TDD 290
第13章 集成 293
小周期 294
源代码控制的历史 294
GIT 299
短周期 300
持续集成 301
分支与切换 301
持续部署 303
持续构建 304
持续改进 305
测试覆盖率 306
突变测试 306
语义稳定性 307
清理 307
创造 308
保持高生产力 308
拖慢速度的因素 309
解决注意力分散问题 311
时间管理 314
第14章 团队合作 317
组团工作 318
开放式/虚拟办公室 318
诚实和合理地预估 319
谎言 320
诚实、准确、精确 321
故事1:载体 322
故事2:pCCU 324
教训 325
准确度 325
精确度 327
汇总 329
诚实 330
尊重 332
永不停止学习 332
· · · · · ·