我用TDD解决啥问题?

不管黑猫白猫,抓到老鼠就是好猫,TDD是好是坏取决于它是否能解决你的问题。TDD可以帮我解决下面三个问题:

1. 测试代码少
Test later equals test never. 这句话说得太对了,当你面临进度压力的时候,你会通过少写或不写测试节省时间,当QA测试过你的代码之后,你会缺乏足够的动力去补测试,除非有人在下个迭代里专门给你报了一个补单元测试的用户故事。但是如果你使用TDD,测试是先行的,逃都逃不掉。

2. 反馈周期长
很多同学都习惯于把所有的代码先写好再一起测试,所以一些比较复杂的用户故事,可能要经过几天甚至一周的时间才能看到实际的进展和反馈,反馈周期越长,问题就暴露得越晚,修复问题的代价就越大。但是如果使用TDD,每隔几分钟就会有反馈,让你体会尽早反馈的好处,养成尽早反馈的习惯。

3. 垃圾代码多
垃圾代码是指多余的或者过度复杂的代码,很多同学在学了面向对象设计和设计模式之后,很容易在一开始就过度设计,把简单的问题复杂化,当代码成形之后又不敢重构,怕破坏已有的功能,代码不能及时持续地清理,就容易产生很多垃圾代码,日记月累,垃圾成山,会对开发效率产生严重的影响。但是如果使用TDD,设计是逐步演化出来的,重构是在持续发生的,能有效地避免过度设计和代码腐化。

当然解决上面三个问题的方法并不止TDD一家,TDD并不是银弹,能解决所有的问题,但是TDD是一个很好的工具,用好了,它能有效解决上述的问题。今天下午Stike同学批评TDD是“无脑”开发,其实恰恰相反,TDD需要更多的智慧、思考和刻意练习,这可能正是TDD难于推广的主要原因之一吧。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 做TDD是为什么? 关于TDD的概念、工具、技巧等,经典的书籍材料可能介绍的更为全面细致。这篇文章想分享的是从一个...
    武可阅读 7,475评论 2 21
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,043评论 25 709
  • 我在参与的开发项目以及咨询项目中,都有实践TDD的经验。直至今日,我仍然会在某些功能开发时采用TDD的方式实现功能...
    _张逸_阅读 4,829评论 0 6
  • 以前没有写过影评,因为不知道从何种角度入手,也不知道怎么样去评价。后来慢慢想通了,不知道就先写电影简介,然后带入自...
    简小宇_xy阅读 2,286评论 0 0
  • 昨天又忘记更啦…妈蛋。看了一天小说。说好的复习,临时抱佛脚呢。
    媚生阅读 3,304评论 0 51