关于我们
![]() ![]() |
匠艺整洁之道:程序员的职业修养(英文版) 读者对象:本书适合所有软件开发者、测试工程师及工程类院校师生,对技术团队负责人及架构师同样大有助益。
罗伯特?C.马丁(鲍勃大叔)因在技术人群中声名远播的Clean系列在全球圈粉无数。本书为其烫手新作,旨在为广大工程师指明一条通向匠师之路,包括饱经洗砺的敏捷技术实践,如何通过持续的努力提高专业素养,软件可用之上的目标与技能,以及如何激发团队最大潜能,等等。本书融会几本经典著作的精髓,将"整洁”方法论推向至高境界—软件开发者有责任维护世界正常运行,而"人”才是"技术”的决定者。 本书共分三部分,前两部分用实例阐释TDD在敏捷软件中的运用,以及验收测试、协同编程等常被忽视的敏捷侧面与具体策略,还探讨了颇有价值的软件设计方案相关话题;第Ⅲ部分拔地而起,直接提出十条堪称金玉良言的"规劝”,以帮助程序员成为团队基石。
罗伯特?C.马丁,自1970年起从事程序员职业。他与人合办了cleancoders.com网站,为软件开发者提供在线视频培训服务。他还创办了Uncle Bob咨询有限公司,为分布于世界各地的大公司提供软件咨询、培训和技能培养服务。同时,他也供职于芝加哥的软件咨询企业8th Light,任大匠(Master Craftsman)一职。
罗伯特?C.马丁,自1970年起从事程序员职业。他与人合办了cleancoders.com网站,为软件开发者提供在线视频培训服务。他还创办了Uncle Bob咨询有限公司,为分布于世界各地的大公司提供软件咨询、培训和技能培养服务。同时,他也供职于芝加哥的软件咨询企业8th Light,任大匠(Master Craftsman)一职。
第 1 章 匠艺 ................................................................................... 25
第Ⅰ部分 纪律 ................................................................................ 35 极限编程 .............................................................................................................................. 37 生命之环 ...................................................................................................................... 38 测试驱动开发 ...................................................................................................................... 39 重构 ...................................................................................................................................... 40 简单设计 .............................................................................................................................. 41 协同编程 .............................................................................................................................. 41 验收测试 .............................................................................................................................. 42 第 2 章 测试驱动开发 ....................................................................... 43 概述 ...................................................................................................................................... 44 软件 .............................................................................................................................. 46 TDD 三法则 ................................................................................................................. 47 第四法则 ...................................................................................................................... 58 基础知识 .............................................................................................................................. 59 简单示例 ...................................................................................................................... 60 栈 .................................................................................................................................. 60 质因数 .......................................................................................................................... 76 保龄球局 ...................................................................................................................... 86 小结 .................................................................................................................................... 103 第3章 高级测试驱动开发 ................................................................... 105 排序示例一 ........................................................................................................................ 106 排序示例二 ........................................................................................................................ 111 卡壳 .................................................................................................................................... 119 安排、行动、断言 ............................................................................................................ 127 进入 BDD ................................................................................................................... 128 有限状态机 ................................................................................................................ 129 再谈 BDD ................................................................................................................... 131 测试替身 ............................................................................................................................ 132 DUMMY ..................................................................................................................... 135 STUB .......................................................................................................................... 139 SPY ............................................................................................................................. 142 MOCK ........................................................................................................................ 145 FAKE .......................................................................................................................... 148 TDD 不确定性原理 ................................................................................................... 150 伦敦派对决芝加哥派 ................................................................................................ 163 确定性问题 ................................................................................................................ 164 伦敦派 ........................................................................................................................ 165 芝加哥派 .................................................................................................................... 166 融合 ............................................................................................................................ 167 架构 .................................................................................................................................... 167 小结 .................................................................................................................................... 169 第 4 章 设计 ................................................................................. 171 测试数据库 ........................................................................................................................ 172 测试 GUI ............................................................................................................................ 174 GUI 输入 .................................................................................................................... 177 测试模式 ............................................................................................................................ 178 专为测试创建子类 .................................................................................................... 179 自励 ............................................................................................................................ 180 HUMBLE OBJECT .................................................................................................... 181 测试设计 ............................................................................................................................ 184 脆弱测试问题 ............................................................................................................ 184 一一对应 .................................................................................................................... 185 打破对应关系 ............................................................................................................ 187 VIDEO STORE .......................................................................................................... 188 具体 vs 通用 ............................................................................................................... 207 转换优先顺序 .................................................................................................................... 208 {} → NIL(无代码→空值) .................................................................................. 210 NIL → CONSTANT(空值→常量) ..................................................................... 211 UNCONDITIONAL → SELECTION(无条件→条件选择) .............................. 212 VALUE → LIST(值→列表) ............................................................................... 213 STATEMENT → RECURSION(语句→递归) ................................................... 213 SELECTION → ITERATION(条件选择→遍历) .............................................. 214 VALUE → MUTATED VALUE(值→改变了的值) ........................................... 214 示例:斐波那契数列 ................................................................................................ 215 变换模式优先顺序假设............................................................................................. 119 小结 .................................................................................................................................... 220 第 5 章 重构 .................................................................................. 221 什么是重构 ........................................................................................................................ 223 基础工具包 ........................................................................................................................ 224 重命名 ........................................................................................................................ 224 方法抽取 .................................................................................................................... 225 变量抽取 .................................................................................................................... 226 字段抽取 .................................................................................................................... 228 魔方 ............................................................................................................................ 241 纪律 .................................................................................................................................... 241 测试 ............................................................................................................................ 242 快速测试 .................................................................................................................... 242 打破紧密的一一对应关系 ......................................................................................... 242 持续重构 .................................................................................................................... 243 果断重构 .................................................................................................................... 243 让测试始终能通过 .................................................................................................... 243 留条出路 .................................................................................................................... 244 小结 .................................................................................................................................... 245 第 6 章 简单设计 .......................................................................... 247 YAGNI ................................................................................................................................ 250 用测试覆盖 ........................................................................................................................ 252 覆盖 ............................................................................................................................ 254 渐近目标 .................................................................................................................... 255 设计? ........................................................................................................................ 256 但还有更多好处 ........................................................................................................ 256 充分表达 ............................................................................................................................ 257 底层抽象 .................................................................................................................... 259 再论测试:问题的后半部分 ..................................................................................... 260 尽量减少重复 .................................................................................................................... 261 意外重复 .................................................................................................................... 262 尺寸尽量小 ........................................................................................................................ 263 简单设计 .................................................................................................................... 263 第 7 章 协同编程 ............................................................................ 265 第 8 章 验收测试 ............................................................................ 269 纪律 .................................................................................................................................... 272 持续构建 ............................................................................................................................ 273 第 Ⅱ 部 分 标准 .............................................................................. 275 你的新 CTO ....................................................................................................................... 276 第 9 章 生产力 ............................................................................. 277 永不交付 S**T ................................................................................................................... 278 成本低廉的变更适应能力 ................................................................................................ 280 时刻准备着 ........................................................................................................................ 282 稳定的生产力 .................................................................................................................... 283 第 10 章 质量 .............................................................................. 285 持续改进 ............................................................................................................................ 286 免于恐惧 ............................................................................................................................ 287 极致质量 ............................................................................................................................ 288 我们不把问题留给 QA ...................................................................................................... 289 QA 之疾 ...................................................................................................................... 290 QA 什么问题也不会发现 .................................................................................................. 290 测试自动化 ........................................................................................................................ 291 自动化测试与用户界面 .................................................................................................... 292 测试用户界面 .................................................................................................................... 293 第 11 章 勇气 ................................................................................ 295 我们彼此补位 .................................................................................................................... 296 靠谱的预估 ........................................................................................................................ 298 你得说不 ............................................................................................................................ 300 持续努力学习 .................................................................................................................... 301 教导 .................................................................................................................................... 302 第Ⅲ部分 操守 ............................................................................... 303 第一个程序员 .................................................................................................................... 304 75 年 ................................................................................................................................... 305 书呆子与救世主 ................................................................................................................ 310 榜样和恶棍 ........................................................................................................................ 313 我们统治世界 .................................................................................................................... 314 灾难 .................................................................................................................................... 315 誓言 .................................................................................................................................... 317 第 12 章 伤害 ................................................................................ 319 首先,不造成伤害 ............................................................................................................ 320 对社会无害 ................................................................................................................ 321 对功能的损害 ............................................................................................................ 323 对结构无害 ................................................................................................................ 326 柔软 ............................................................................................................................ 327 测试 ............................................................................................................................ 329 最好的作品 ........................................................................................................................ 330 使其正确 .................................................................................................................... 331 什么是好结构 ............................................................................................................ 332 艾森豪威尔矩阵 ........................................................................................................ 334 程序员是利益相关者 ................................................................................................ 336 尽力而为 .................................................................................................................... 338 可重复证据 ........................................................................................................................ 340 狄克斯特拉 ................................................................................................................ 340 正确性证明 ................................................................................................................ 341 结构化编程 ................................................................................................................ 343 功能分解 .................................................................................................................... 346 TDD ............................................................................................................................ 347 第 13 章 集成 ................................................................................ 351 小周期 ................................................................................................................................ 352 源代码控制的历史 .................................................................................................... 352 GIT .............................................................................................................................. 358 短周期 ........................................................................................................................ 360 持续集成 .................................................................................................................... 361 分支与切换 ................................................................................................................ 362 持续部署 .................................................................................................................... 364 持续构建 .................................................................................................................... 365 持续改进 ............................................................................................................................ 366 测试覆盖率 ................................................................................................................ 367 突变测试 .................................................................................................................... 368 语义稳定性 ................................................................................................................ 368 清理 ............................................................................................................................ 369 创造 ............................................................................................................................ 370 保持高生产力 .................................................................................................................... 370 拖慢速度的因素 ........................................................................................................ 371 解决注意力分散问题 ................................................................................................ 373 时间管理 .................................................................................................................... 376 第 14 章 团队合作 .......................................................................... 379 组团工作 ............................................................................................................................ 380 开放式/虚拟办公室 ................................................................................................... 380 诚实和合理地预估 ............................................................................................................ 382 谎言 ............................................................................................................................ 383 诚实、准确、精确 .................................................................................................... 384 故事 1:载体 ............................................................................................................. 385 故事 2:pCCU ........................................................................................................... 387 教训 ............................................................................................................................ 389 准确度 ........................................................................................................................ 389 精确度 ........................................................................................................................ 391 汇总 ............................................................................................................................ 393 诚实 ............................................................................................................................ 394 尊重 .................................................................................................................................... 396 永不停止学习 .................................................................................................................... 397
你还可能感兴趣
我要评论
|