Growing Object-Oriented Software, Guided by Tests

Steve Freeman, Nat Pryce

出版时间

2009-10-22

ISBN

9780321503626

评分

★★★★★
书籍介绍
这本书最打动人的地方,是它把「测试」从找 bug 的工具,重新定义为一枚信号源:测试不诚实,设计就有问题。读者反复提及的那个核心洞见——「让对象容易测试的品质,也让代码更容易响应变化」——正是全书的支点。作者不满足于教你怎么写测试,而是逼你面对一个尴尬现实:当单元测试让你绕过糟糕的依赖管理时,你其实买断了最宝贵的反馈。于是测试成了检验设计的尺子,而非掩盖缺陷的遮羞布。它适合那些愿意承认「方法好、原则对,但不照做就白搭」的工程师:这本书不提供速效药,而提供一种近乎偏执的工程纪律,代价是例子偏重、部分章节偏难。
AI导读
核心看点
  • 深入解析TDD与面向对象设计的共生关系
  • 提供从测试驱动到渐进式开发的实战指南
  • 强调通过测试反馈来塑造清晰的对象边界
读者共识
  • TDD领域的经典之作,思想深刻且实用
  • 不仅是测试指南,更是OO设计思维的升华
  • 虽推进缓慢且无源码,但值得反复研读
精彩摘录
  • "我们发现,让对象容易测试的那些品质,也让代码更容易响应变化。 单例是依赖关系。 面向对象作为一种组织代码的技术,它的一个目标就是让对象的边界清晰可见。 如果单元测试工具让程序员绕过了设计中糟糕的依赖关系管理,那就丧失了宝贵的反馈关系。"
  • "依赖关系:对象向它的同级请求服务,这样对象就能实现它的职责。没有这些服务,对象就不能工作。 通知关系:同级对象需要及时了解对象的活动。 调整关系:同级对象会调整该对象的行为,以适应系统更多的需求。 我们坚持依赖关系要在构造方法中传入,但通知关系和调整关系可以设为默认值,以后再做调整。"
  • "当把一些对象组合成一个新类型时,我们希望新的类型所表现出来的行为比所有组成部分的行为之和更简单。 组合对象的 API 不应该比它的组件的 API 更复杂。"
用户评论
TDD深入讲解,挺不错的
TDD很有影响力的一本大部头
好吧。终于看完了。方法是好的,原则是对的,大家不照着做,那不还是白搭!!
后边就直接读中文版了
不仅仅是TDD,对于语言,对于重构,和OO编程都是本非常好的书
几年前看过,TDD 和迭代式开发的入门视作。虽然书里用的是 java 做例子, 但是 TDD 这种思维模式能够应用到所有语言
可以快速的看一遍
下载
全部深度解读 →主题书单高分榜最近更新