说说TDD的好处和坏处-对话

来源:互联网 发布:facebook翻墙软件 编辑:程序博客网 时间:2024/04/29 20:08

小帆 17:20

谁来科普下TDD的好处和坏处是啥?我们市场VP听说了TDD以后情有独钟,但是大致看了一些好像很难推广?

菌菌 17:21

好处是大大的,坏处是成本很高

罗耀秋 17:22

你自己开发写代码 你愿意这样干不

小帆 17:23

@JuneC 好处具体是啥?

福瑞德孟 17:24

对于一锤子买卖的项目来说,如果没有自动化的工具,那成本一定是大于收益的;对于产品来说,一定是小投入,大收益

菌菌 17:28

据说是在源头发现问题

菌菌 17:28

测试更贴近需求等等

韩炳涛 17:42

如果是想通过TDD把不靠谱的工程师变成靠谱的,可能成本更高

james 18:45

实际上我们在两个团队里实践敏捷,15个人里培养了5个不错的全栈。然后3个跳了。。。培养成本不高,留人的成本会比较高[吐]

james 18:57

tdd的实践,我们刻意想做,但是没做成。结果有一次重构,只要求一个故事至少一个用例覆盖。不知不觉中,团队将单元测试架构不断优化,结果写一个用例不到5分钟。这时有同事先易后难,先写测试例,tdd的思维莫名其妙的产生了

james 18:58

后来回顾,测试架构足够简单,团队才有意愿去实践tdd,从而带来更多主动性去优化测试架构

james 19:01

后来尝试在成熟的架构上实践tdd,结果测试架构没有中间的演进优化过程。结果一个用例从一开始就很难写,团队就没人愿意写,除非你将测试例设定为交付标准

james 19:04

而且补测试例的情况居多,因为测试例的推导比正常程序还困难。补充一下,我们会写设计文档,先进行过推导,所以直接写程序会比较容易

张克强 19:32

@james 是的,tdd应当能快速提升技能,留人要加钱啊

张克强 19:39

tdd的好处主要有:
1,编出来的程序是自带测试的,可靠性好,缺陷少
2,能大大减少debug的需要,尤其减少单步调试,从这里能节约时间
3,功能的实现有点像 数学里的归纳法, 直接计算 n的情况,很难,但是先计算1的情况,再计算2,再计算从n-1到n,然后就解出来了

张克强 19:40

对于第三点,这是非常美妙的感觉,效率提升非常明显,而且带测试通过的。

张克强 19:41

tdd与需求的关联不是特别直接。 atdd才是直连需求

穿越时空的猫 19:42

说效率提升有点过了。质量提升是肯定的。工作量摆那儿呢。

张克强 19:44

对全栈高手而言,效率提升是必然的。

张克强 19:47

就算是单纯的质量提升,也会带来效率提升。因为缺陷少就意味着,来回调试少。

穿越时空的猫 19:48

全栈高手往往是平庸的代名词,人的精力是有限的。真正的全栈敲手一个公司找不出一两个来,干活不能只靠这一两个人。术业有专攻,全才往往是庸才。

张克强 19:51

tdd而言,主要要求程序员会自动化测试,不是需要太全的全栈

张克强 19:54

也不需要从tdd来调试性能,也不需要从tdd来调整架构。我的看法。

张克强 19:55

tdd最擅长的是新功能开发

穿越时空的猫 19:55

这个可行。但高手就不能谈全栈,要达到能做京东,阿里这些架构的水平,一辈子不见得能达到,还哪有时间去钻研别滴。

james 19:55

个人对全栈的要求就是团队有问题,任何人都能顶上去。实际上一个公司不需要那么多专才

张克强 20:01

tdd的工作量其实是在前面,1是环境的搭建,要搭建非常快速的环境,这就要求原有结构能分得出来。前面的架构不能太烂

张克强 20:01

有些组织在这第一步上就是难于跨过

张克强 20:03

2是人员的培训,无论是自学还是外请老师或者教练,都是工作量

张克强 20:05

tdd跑起来之后,工作效率如果没有提升,那么这个tdd就是不能算成功跑起来了

0 0
原创粉丝点击