写这篇短文的原因是:
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.
分享到:
相关推荐
测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP...
TDD-LTE系统帧定时同步的FPGA实现,李世兴,程方,帧定时同步作为TDD-LTE系统同步的第一步,其性能将影响整个同步过程。本文通过对TDD-LTE系统帧结构和主同步信号及Schmidl算法的研究,提
TDD LTE小区搜索算法的研究,赵辉,,小区搜索的目的是要保证UE获得系统的时间同步和频率同步,从而能读取系统信息和进行后续的数据传输。本文介绍TDD-LTE小区搜索的算法
TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。...
TDD-LTE系统小区搜索的研究,王慧颖,,LTE(Long Term Evolution,长期演进)项目是3G的演进,作为3G到4G之间的技术过渡受到全球的关注。小区搜索是指移动台在初次接入小区或在进行��
针对当前大多数文献采用的部分算法进行仿真, 并分析了其性能及鲁棒性, 对其中存在的不足和不完善的地方进行了一定的改进, 并且给出了一种适用于TDD-LTE系统小区搜索过程的详细设计方案。仿真结果表明, 该设计方案...
LTE-TDD系统中基于区域划分的TDD子帧重配置策略,王振旺,王莹,现在,越来越多的学者正在研究LTE-TDD系统中子帧重配置策略和交叉时隙干扰问题。为了避免交叉时隙干扰,我们提出了一种基于区域划��
3G TDD系统上行演进技术HSUPA,张园园,,为了支持高速的上行数据速率业务,3GPP在Release 6中引入了高速上行分组接入技术(HSUPA)。本文详细阐述了TDD模式下HSUPA的各项关键技术�
TDD HSPA 及其关键技术,李艳东,马文敏,为了进一步改进和增强现有3G 技术,3GPP 提出了新的演进方案HSPA。HSPA技术包括HSDPA和HSUPA,两者相结合构成了完整的3.5G系统。HSPA 是在HSPA
基于RapidIO互连技术的第四代TDD基站系统设计,杨李娜,王勇,考虑到传统共享总线技术遇到的困难,提出了新型总线技术RapidIO——一种伪串行、源同步、点对点、高可靠性、高速率的系统互连技术��
基于E-UTRA TDD系统的频偏估计算法,王锐,李立华,针对E-UTRA TDD系统的特殊的导频符号结构,提出了一种适合离散导频的频偏估计算法。该算法联合了循环前缀相关算法和时域相关算法,��
为了帮助项目经理合理选择TDD实施模块,基于进程代数方法对测试驱动软件开发过程和非测试驱动软件开发过程建立过程仿真模型。通过用例度量软件模块的复杂性来获取随机变量参数对模型调参,并采用该模型得到仿真结果...
HSPA (TDD)链路与系统级间接口研究,陈辉,张海涛,对在链路中采用了多天线技术的无线通信系统进行性能评估,不仅要反映这些技术对链路的影响,也要反映对整个系统的影响。另一方面
LTE FDD和LTE TDD系统间共站址干扰研究,邓飞,袁超伟,本文从使用频率、网络部署环境以及不同干扰场景方面研究了LTE FDD与LTE TDD两系统共站址的干扰问题,给出了系统性能随邻道干扰比(ACIR
TD-SCDMA与LTE-TDD系统共存性能分析,周涵之,,随着3GPP组织LTE的标准化的不断演进,确保LTE与其它系统的合理共存显得尤为重要。本文旨在提出LTE-TDD系统与我国现已部署的TD-SCDMA系统��
多天线技术下TDD-CDMA上行链路系统性能研究,彭木根,王文博,扇区天线、波束切换型智能天线和自适应跟踪型智能天线是3种能显著提高TDD-CDMA系统性能的先进多天线技术,本文首先通过理论分析给出
FDD与TDD完美融合构建面向未来的优质LTE网络很适合写FDD LTE 与TDD LTE的组网的论文 适用于参考
为了提高TDD-LTE上行链路随机接入信道处理的高效性,提出一种基于欠采样时域分步处理的随机接入检测算法。与传统方法相比,降低了运算的复杂度,同时分步处理的调度机制提高了接入响应的实时性。实验结果表明,在...
针对预重传GBN-ARQ方案在误码率低的情况下吞吐率与时延大大下降的问题,结合重传编码合并技术,提出了一种基于TDD上行CSI的自适应预重传GBN-HARQ方案。首先,发送端将数据进行前向纠错编码得到不同冗余版本;然后,...
一种OFDM-TDD开环自适应调制系统的自适应分集信令传输方法,钟明华,,提出了正交频分复用-时分双工(OFDM-TDD)开环自适应调制(AM)系统。该系统根据信道状态信息(CSI)选择采用不同的调制方式,在该系统