`
tianxinet
  • 浏览: 266180 次
  • 性别: Icon_minigender_1
  • 来自: Net
社区版块
存档分类
最新评论

XP、TDD设计理念的一点差异

阅读更多
这是我参与TDD,Cache讨论回帖之一的一部分,其他部分经过讨论已经比较明了,摘录的这部分算是我的一个疑问,也算是我的一种看法。

...

问题在于一个关键短语“设计的固化”(为了讨论方便这样说),传统的设计方式先“固化”设计,“照单(设计)定制”,产出物是设计文档 + funcation code;后来XP的出现,淡化了设计的先行“固化”,代码才是最终“固化”的设计,这里的代码是funcation code--唯一的产出物;而TDD的出现似乎又强化了设计的“固化”,当然不是先行,而是不断迭代进行,test code是最终“固化”的设计,产出物是test code + funcation code。似乎只有XP的没有“冗余的设计”。

那么XP、TDD在设计理念这点上,有什么优劣么?有说看test code这样的“设计”比看funcation code这样的设计更清晰明了。我不赞同这样的说法,这很牵强,要想看清晰明了的设计,设计文档最好。所以这并不是TDD的优势,这也是我倾向于把TDD看作开发手段而不是设计方法的原因之一。如果把test code看作设计,那它就是“冗余的”,如果把它看作质量保证手段、开发手段、辅助的设计手段,它是优秀的。

...
分享到:
评论

相关推荐

    LTE TDD与LTE FDD的关键过程差异分析

    由于TDD以时间区分上下行,而FDD以频率区分上下行,因此,LTE TDD和FDD在帧结构上的设计存在明显差异。具体来说,LTE FDD的无线帧由10个长度为1ms的子帧组成,每个子帧包含两个长度为0.5ms的时隙;相比之下,LTE TDD...

    LTE+TDD与LTE+FDD的关键过程差异分析.pdf

    #### LTE TDD与FDD的设计差异 **1. 帧结构** 由于TDD以时间区分上下行通信,而FDD以频率区分上下行通信,因此两者在帧结构上有显著差异: - **LTE FDD**:无线帧由10个长度为1ms的子帧组成,每个子帧又包含两个...

    TDD(Test-Driven Development)的Demo

    TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。 TDD得基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求...

    TDD测试驱动开发

    TDD通过引入测试来引导软件设计,使得开发过程更加结构化,减少错误,并提高代码质量。 1. **TDD的基本流程** TDD遵循红-绿-重构三步走的模式: - **红**:首先编写一个失败的测试用例,确保测试框架运行正常,...

    UMTS-TDD手册

    NS2能够帮助研究人员和工程师们更好地理解复杂的网络行为、评估新协议的性能以及探索不同的网络架构设计。 ##### UMTS-TDD仿真方法 UMTS-TDD系统是UMTS标准的一个变种,主要用于解决频谱资源有限的情况下的高效...

    phpunit-TDD驱动开发

    ### 使用PHPUnit进行TDD驱动开发 #### 一、引言 测试驱动开发(TDD, Test-Driven Development)是一种软件开发方法论,它要求在编写实际功能代码之前先编写测试用例。通过这种方式,可以确保代码的质量,并且有助...

    TDD数字对讲机的设计与实现

    本文分析了TDD双工方式的原理与技术特点"TDD技术具有 节省频谱资源!适合不对称业务!设备成本低且便于实现等优势, 能为无线通信系统提供一个低成本的解决方案"本文结合现有的 无线通信技术!单片机技术以及语音编码...

    TDD读书报告

    - **历史背景**: TDD起源于20世纪90年代,作为极限编程(Extreme Programming, XP)的一部分被提出,旨在提高代码质量和开发效率。 - **核心理念**: TDD的核心在于通过不断的测试来指导开发流程,使得开发出的软件...

    单元测试与TDD实践

    TDD不仅有助于提高代码质量,还能够促进更清晰的设计和更好的架构。 TDD的典型流程包括: - **编写测试**:在编写任何功能代码之前,先写出一个测试,该测试定义了预期的行为。 - **运行测试**:初次运行新编写的...

    嵌入式 TDD

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

    GSM TDD noise分析

    "GSM TDD 噪声分析" GSM TDD 噪声是一种常见的干扰现象,发生在 GSM 通信系统中的射频部分。这种噪声的产生是由于天线辐射出的射频能量和 PA 突发工作时带动电源的干扰。为了减少这种噪声的影响,我们可以采用一些...

    LTE TDD系统原理

    华为LTE TDD系统原理培训PPT文档

    Ruby-TDD实战TestDrivenDevelopmentinAction

    在Ruby中,由于其元编程特性,TDD可以帮助我们在早期发现潜在的设计问题,从而避免后期的重构困难。 在实际项目中,TDD也与其他实践相结合,如持续集成(Continuous Integration, CI)和持续部署(Continuous ...

    Laravel开发-tdd

    【Laravel开发-TDD(测试驱动开发)】 在软件开发领域,TDD(Test-Driven Development,测试驱动开发)是一种编程实践,它强调先编写测试用例,再编写实现功能的代码。Laravel,作为一款流行的PHP框架,高度支持TDD...

    TDD测试驱动开发.pptx

    这一理念虽然在当时被视为一种激进的方法论,但随着敏捷开发方法的普及,TDD逐渐被更多的开发团队采纳和推崇。TDD结合了测试先行和代码重构两大实践,通过不断迭代的测试和重构来提高软件的质量和可维护性。 TDD的...

Global site tag (gtag.js) - Google Analytics