`
hideto
  • 浏览: 2677399 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
写这篇短文的原因是:
1,公司内部最近在讨论十条不错的编程观点
2,看到这篇博客争论TDD

我想表达的观点是:TDD只是用来达到一个不是很重要(相比另外一个更重要的目的而言)的目的(防止你不会因为一个改动而引入Bug)的一种方式(还有其他很多方式),却被部分人当做“银弹”来标榜自己有多敏捷甚至自己用了TDD然后自己的程序设计和代码质量多么好。

我的论据:在十条不错的编程观点里第一条和最后一条里已经解释的很清楚了,另外早在05年的一个帖子TDD能带我们去哪里?里作者也阐述的非常清楚。

引申几句:
1,TDD只是软件开发里一个小技巧,它所能解决的问题也十分有限,不适合大家拿来往自己身上贴金。忽悠忽悠外行还行,让内行人拿来看笑话就不好了。
2,即使要解决有限的问题,TDD的适用场景也十分有限。比如GUI程序开发,比如数据仓库建模,比如Web前端JavaScript程序等等,由于单元测试工具不完善,还真是不方便使用TDD。
3,上面提到的另外一个更重要的目的是:系统架构和设计。要实现这个目的,还真得靠经验积累和思考实践,不是用了TDD这一点小小的改进就万事大吉了。说到底软件开发是脑力劳动,需要考验人的经验和智慧,企图用流程改进来解决软件开发的终极问题是扯淡。而且发明TDD的人根本没有提到TDD能提高程序设计和代码质量,您要是还继续霸王硬上弓就没意思了。有兴趣的可以移步wiki继续围观:
引用

A 2005 study found that using TDD meant writing more tests and, in turn, programmers that wrote more tests tended to be more productive.[6]  Hypotheses relating to code quality and a more direct correlation between TDD and productivity were inconclusive.[7]

^  Proffitt, Jacob. "TDD Proven Effective! Or is it?". http://theruntime.com/blogs/jacob/archive/2008/01/22/tdd-proven-effective-or-is-it.aspx. Retrieved 2008-02-21. "So TDD's relationship to quality is problematic at best. Its relationship to productivity is more interesting.
分享到:
评论

相关推荐

    phpunit-TDD驱动开发

    测试驱动开发(TDD, Test-Driven Development)是一种软件开发方法论,它要求在编写实际功能代码之前先编写测试用例。通过这种方式,可以确保代码的质量,并且有助于降低bug出现的概率。本篇文章将详细介绍如何使用...

    TDD(Test-Driven Development)的Demo

    测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP...

    Test Driven: Practical TDD and Acceptance TDD for Java Developers (PDF英文版)

    这本书以PDF英文版的形式提供,旨在帮助Java程序员深入理解和实践TDD方法论,提升软件开发的质量和效率。 测试驱动开发(TDD)是一种软件开发方法,强调在编写任何生产代码之前先编写测试。TDD的核心流程可以概括为...

    嵌入式 TDD

    测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法论,其核心理念是在编写实际代码之前先编写测试用例。这种方法不仅有助于确保代码的质量,还能促进设计的改善,并为后续的重构提供支持。...

    Laravel开发-tdd

    TDD是一种编程方法论,它要求开发者在写实际业务逻辑之前先编写单元测试。通过这种方式,开发者可以在开发过程中确保代码质量,减少bug,并促进代码的可维护性。 2. **Laravel中的PHPUnit** Laravel内置了PHP的...

    TDD测试驱动开发.pptx

    TDD 是敏捷开发中的一个核心实践和技术,也是一种设计方法论。其主要包括两方面:测试先行和代码重构。测试主要针对单元(最小的可测试软件元素)实施测试。 TDD 工作原理是先写测试程序,然后再编码使其通过测试。...

    TDD读书报告

    - **定义**: 测试驱动开发(Test-Driven Development, TDD)是一种软件开发方法论,它要求开发人员在编写功能代码前先编写测试代码,以确保功能代码的质量。 - **历史背景**: TDD起源于20世纪90年代,作为极限编程...

    c#_tdd.zip

    在C#编程环境中,测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法论,它强调先编写测试用例,然后根据这些测试用例来实现功能代码。这种做法有助于确保代码的质量,减少错误,并提高开发效率。...

    tdd_by_example.pdf

    **测试驱动开发(Test-Driven Development, TDD)** 是一种软件开发方法论,其核心思想是在编写功能代码之前先编写测试用例。这种方法能够确保软件的功能正确性,并且有助于提高代码的质量和可维护性。 #### 二、...

    test.driven.tdd.and.acceptance.tdd.for.java.developers

    模型驱动的开发是一种软件开发方法论,其核心思想是通过定义高级抽象的模型来指导系统的开发过程。这种方法强调的是从高层次的角度出发,利用建模工具来帮助开发者理解和设计系统,从而提高开发效率和代码质量。 在...

    TDD测试驱动开发PDF及源码.zip

    TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。...

    Laravel开发-laravel-tdd-docs

    在 Laravel 框架中,Test-Driven Development(TDD,测试驱动开发)是一种强大的软件开发方法论,它强调先编写测试,然后编写满足这些测试的代码。这种实践有助于确保代码质量、减少错误并促进更好的设计。`laravel-...

Global site tag (gtag.js) - Google Analytics