代码改变世界

TDD与重构设计

2009-07-11 15:03  xiaosonl  阅读(551)  评论(0)    收藏  举报

先来看一下TDD的三个经典步骤:

  1. 编写一个失败的测试.
  2. 编写最简单的实现, 让测试通过.
  3. 重构实现.

可以看到, 这里面实际上就是把过程分成了两步: 确定功能需求, 和重构设计. 把这两个分开, 是为了把分析功能需求和设计分开来, 同时只处理其中的一个. 我们经常开发软件中会遇到重写旧系统的情况, 而新系统的设计架构总是比旧的要优秀, 其中很大一个原因是在于我们已经基本上确定了整个系统的需求, 可以专心去考虑设计. TDD的实践也是如何, 只是把这个过程分成了无数个小步去实现. 只要保证每一步的设计实现遵从OO设计原则, 及时修正代码坏味, 就可以构建一个可持续演进式的开发过程.

当然也会遇到那种需求推翻来的情况, 这时候我们需要的就不是重构, 而是重写了.