到处,我已经不再仅仅考虑软件的外部质量,而会同时关注内部质量,可测性、洁净代码原则和方法,我都会考虑,开发活动因此而更加丰满。

  不再只是小码工,也是架构师

  经历了将模块全面推翻重构的苦痛(严格说是重写了),我们会开始思考,为什么不能将思考提前,为什么不能未雨绸缪呢?现在我们还是完整的详细设计,开发,再测试,不过我们每天都为提交的代码写测试case,及时的发现代码可测性问题。测试和开发依然界线分明,为了实现设计而编码,为了验证编码而测试。能不能将测试case提前?能不能让测试来指导设计?TDD终于出现了。我是08年接触到TDD,不过现在它依然很“新”,没有被广泛的实践,它将带来开发模式的变革。

  用一句话描述TDD:写代码是为了修复失败的测试。它是一种分析技术、设计技术。

  测试先行,开始编码前你已经想到了怎么去测试、准备好了测试case,代码可测性问题提前考虑,依赖倒置原则(DIP)、开闭原则(OCP)、单一职责原则(SRP)都会用来指导你的设计,这样的代码写起来感觉很好。你又向前迈进了一步,不再只是小码工,也是架构师了。

   测试让我更爱开发

  一路走来,我的单测意识在升华,经历单测之惑、单测之需、单测之痒、单测之法、单测之美,消除了开发中的许多烦恼,有了一套可预测的开发方法,知道什么时候可以完工,不再担心长期被bug困恼;能不断的重新认识代码,重构它让架构更合理。测试让我享受着设计和开发,让我更爱开发。