微软眼中的TDD (原文最终修订于2006-06-11,下午03:20:52)
来源:互联网 发布:朴素贝叶斯算法思想 编辑:程序博客网 时间:2024/05/02 07:17
微软最近发布了测试驱动开发的方案(点击这里)。这些方案与Visual Studio 2005 Team System的使用密不可分。老实说,我对他们试图去把他们自己的工具与TDD(译注1)绑定起来并不觉得什么。他们是个商业机构,而这就是一种商业行为。让我觉得什么的,是他们如此完全的曲解了TDD,甚至反其道而行之。如果工具不支持TDD(它的确不能)的话,他们不应该声明它能够。
在最近一篇blog(译注:此篇已翻译为中文)中我描述了TDD,做为三项紧密相连的规则之一,它强调创建单元测试和产品代码之间的非常紧凑地迭代。而微软的定义将其描述成一种瀑布式:
- 分析需求,产生一个单元测试列表
- 用设计工具设计类
- 用设计工具生成单元测试代码
- 实现设计并使单元测试通过
Micheal Feather(译注2)的blog中给予了评论,我觉得还是过于温和了。我认为微软应该收回这些方案,而且试着去找出一些这个工具能真正支持TDD的方法。只是因为他们的工具只能按照那样来支持,就把TDD重新定义成为一种瀑布式的,这对这个行业来说是没有多大帮助的,况且大多数程序员都已经清楚地意识到了这一点。如果微软想赢得更多程序员的青睐,他们最好试着去找出行业的真实取向,而不是让行业去迎合这个工具。恕我直言,他们应该认真的去借鉴Eclipse,和IntelliJ == 尤其是IntelliJ。
底线:我们不需要一些帮助我们更好的去做瀑布式开发的工具。我们不需要一些过程空洞,而且用14个线性步骤来描述一些不是却声明是TDD的指导方案。我们不必一定靠Visual Studio。我们需要Microsoft提供的是他们可以不要再谈论什么了,聆听吧。
译注:
1,TDD,全称是测试驱动开发,一种典型的敏捷开发方法。
2,Micheal Feather,敏捷社区的活跃分子,Object Mentor的一员。
(原文链接网址:http://www.butunclebob.com/ArticleS.UncleBob.MsTdd; Robert C. Martin的英文blog网址: http://www.butunclebob.com/ArticleS.UncleBob)
作者简介:Robert C. Martin是Object Mentor公司总裁,面向对象设计、模式、UML、敏捷方法学和极限编程领域内的资深顾问。他不仅是Jolt获奖图书《敏捷软件开发:原则、模式与实践》(中文版)(《敏捷软件开发》(英文影印版))的作者,还是畅销书Designing Object-Oriented C++ Applications Using the Booch Method的作者。Martin是Pattern Languages of Program Design 3和More C++ Gems的主编,并与James Newkirk合著了XP in Practice。他是国际程序员大会上著名的发言人,并在C++ Report杂志担任过4年的编辑。
- 微软眼中的TDD (原文最终修订于2006-06-11,下午03:20:52)
- 面向对象设计的11原则--你称得上OO专家么? (原文最终修订于2006-04-10 下午06:19:40)
- TDD的三条军规 (原文最终修订于 2006-04-09 晚上09:45:01)
- 软件分析 Vs. 架构设计 (原文最终修订于 2006-05-29 下午06:44:14)
- 使用Mock Object危险么?(原文最终修订于 2006-09-02 下午03:53:51)
- 三大编程语言的性能PK--Java, C/C++和Ruby (原文最终修订于 2006-09-05 下午06:19:40)
- 如何让Ruby代码更简练?!(原文最终修订于 2006-08-18 下午02:42:25)
- 结对编程的成熟度模型 (原文最终修订于 2006-10-08 上午10:52:35)
- 敏捷开发的精神内涵 (原文最终修订于2006-08-11 上午10:49:50)
- 软体艺术系列--抽象工厂 (原文最终修订于2006年10月18日 凌晨04:25:06)
- 用Rails将敏捷Web开发进行到底! (原文最终修订于2006-08-14,凌晨03:49:12)
- (转载)性能调优--永远超乎想象 (原文最终修订于 2006-08-28 晚上11:48:38)
- 性能调优--永远超乎想象 (原文最终修订于 2006-08-28 晚上11:48:38)
- 架构设计--仅是软件开发之第二大影响力?! (原文最终修订于2006-07-01 凌晨03:20:31)
- 让软件走近“恐怖地带”的元凶--未经测试的代码 (原文最终修订于 2006-09-05 晚上10:33:27)
- [译文]性能调优--永远超乎想象 (原文最终修订于 2006-08-28 晚上11:48:38)
- OO难题在Ruby中有了新解 (原文最终修订于 2006-08-21 凌晨02:27:38)
- 软件文档--扬弃还是传承 (原文最终修订于 2006-04-12,上午12:41:14)
- access 导入 SQL server 后出现的问题
- 关于JAVASCRIPT为空或不是对象的检测
- 什么叫做安慰!
- Catalog-Resolver
- 低调是一种智慧
- 微软眼中的TDD (原文最终修订于2006-06-11,下午03:20:52)
- 路
- 第一阶段工作完成
- 用cvsup升级内核和ports树
- 与你分享五年HR招聘与面试的体会
- 我为什么学习Hibernate
- JBPM工作流demo--websale的开发 (1)
- 好久没来,都忘了
- 自己制作QQ任意聊与好友状态查询