播客“内核恐慌”某期中提到: TDD 是平庸者的保障。。。。是么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Feiox
V2EX    程序员

播客“内核恐慌”某期中提到: TDD 是平庸者的保障。。。。是么?

  •  
  •   Feiox
    feiox 2015-07-11 21:46:00 +08:00 6720 次点击
    这是一个创建于 3747 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在我所见到的无论是闭源还是开源代码中,甚至像 redis 、 requests 这种公认的高质量代码中,都会看到一个文件夹叫 tests。那么,是因为这些作者也是所谓的“平庸者”?
    节目中说的,主播们不喜欢写测试,还提到上古时代,Hack God 们大概可能也不写测试。那么,这两位主播的水平又是在哪一个层次上呢?

    44 条回复    2015-07-13 13:33:39 +08:00
    engHacker
        1
    engHacker  
       2015-07-11 21:50:42 +08:00
    在生产环境中,如果不测试,我只能呵呵。人不要太自信。尤其是涉及到钱的软件,如果不测试,出了问题,那就是灾难。
    hahastudio
        2
    hahastudio  
       2015-07-11 21:52:37 +08:00
    如果软件真要成为工业,就必须要有测试。
    feikaras
        3
    feikaras  
       2015-07-11 21:55:04 +08:00 via iPad
    呵呵
    johnsmith123
        4
    johnsmith123  
       2015-07-11 21:55:49 +08:00
    LZ 我看你骨骼惊奇,为何不去做测试?
    Feiox
        5
    Feiox  
    OP
       2015-07-11 22:03:54 +08:00
    bengol
        6
    bengol  
       2015-07-11 22:05:35 +08:00
    比较认同这个观点
    Comphuse     7
    Comphuse  
       2015-07-11 22:06:11 +08:00
    没听过节目,单从“TDD 是平庸者的保障”这句话看来没问题啊。就像“好记性不如烂笔头”只对普通人成立,那种拥有照相机记忆的天才不需要。
    参考: http://www.zhihu.com/question/29047376/answer/43224089 。链接里那种人就算不写测试也比普通人捅篓子的概率低一百倍。
    kaichen
        8
    kaichen  
    PRO
       2015-07-11 22:11:47 +08:00   1
    开源项目的作者写自动化测试不是因为他们平庸,而是担心其他人(有可能是平庸之辈)把他写的代码搞坏好吗?

    有时别人一个 Pull Request 过来,先跑一下看看有没有把自己的代码搞坏,然后再看他做了什么,有没有道理。

    另外,TDD 和自动化测试也是两个概念好吧?
    yangxiongguo
        9
    yangxiongguo  
       2015-07-12 00:58:34 +08:00
    大部分人是平庸者滴,要认清这点。
    FrankFang128
        10
    FrankFang128  
       2015-07-12 01:00:11 +08:00
    楼主的逻辑很奇怪。
    你这样想吧:
    TDD 比非 TDD 多一项功能:保障平庸者。
    ibremn
        11
    ibremn  
       2015-07-12 01:06:10 +08:00
    TDD 和 tests 不是一回事儿。
    另外楼主你逻辑有问题。
    elvba
        12
    elvba  
       2015-07-12 01:47:13 +08:00
    没错啊,因为我们大部分人都是平庸者……
    crayygy
        13
    crayygy  
       2015-07-12 08:35:06 +08:00 via iPhone
    不写测试的有两种人
    一种人牛到不需要测试,他自己就足以保障代码质量。
    还有一种人……不提也罢
    ltm
        14
    ltm  
       2015-07-12 09:27:14 +08:00   2
    TDD 应该是Test-Driven Development吧,先写测试,然后让程序通过测试,再迭代。
    TDD和Unit Test是两码子事。
    raptor
        15
    raptor  
       2015-07-12 09:28:08 +08:00
    @crayygy 不幸的是:后者是大多数,但他们却总以为自己是前者…
    zhigang1992
        16
    zhigang1992  
       2015-07-12 09:31:35 +08:00 via Android
    没有测试,敢重构么?
    就算自己写的代码,三个月后还认识么?

    测试还可以当文档看。

    TDD还有一个好处就是然你先考虑接口,再考虑实现
    williamx
        17
    williamx  
       2015-07-12 10:52:40 +08:00
    “TDD 是平庸者的保障”这句话本事是完全正确的。当软件开发从个人精英发展成工业团队之后,从事这个工作的大部分员工都是“平庸”的普通人,如何保障他们的出产的品质是很有必要的一件事情。
    pH
        18
    pH  
       2015-07-12 10:57:07 +08:00
    最开始看标题以为是说TDD和FDD。LOL
    101
        19
    101  
       2015-07-12 11:07:02 +08:00
    明显有问题,单打独斗可以不写,开源项目能保证所有 contributor 都提交无 bug 代码?更不要提公司团队合作了,不是天才们变平庸了,而是开发方式变了,这个时代的需求和演进速度都不一样。
    东施效颦还是变不了西施
    Shared
        20
    Shared  
       2015-07-12 11:52:54 +08:00
    这个世界本来就没那么多天才,承认自己是个平庸者也不会死
    Javescript
        21
    Javescript  
       2015-07-12 12:21:33 +08:00   1
    内核恐慌是给外行和新手听的,你们不要太认真。
    Numbcoder
        22
    Numbcoder  
       2015-07-12 12:29:42 +08:00
    「节目中说的,主播们不喜欢写测试」
    呵呵!
    以为自己不写测试,自己就不是平庸者了?
    背上纹条龙,自己就是黑帮老大了?
    anoymoux
        23
    anoymoux  
       2015-07-12 12:46:13 +08:00 via iPad
    测试在大多数情况下是必须的,但TDD是个垃圾…
    samael
        24
    samael  
       2015-07-12 13:38:17 +08:00 via iPad
    正常,大部分人都不会承认自己平庸,以为自己水平在平均以上
    cc7756789
        25
    cc7756789  
       2015-07-12 13:58:38 +08:00
    可惜这些开源项目不是光光作者自己一个人用,而是有很多不同的水平的人或不同大小的项目在用,所以必要的东西即使可能没必要也得有必要。
    jziwenchen
        26
    jziwenchen  
       2015-07-12 14:06:17 +08:00
    认可自己的平庸 然后多写测试就好了;
    some0ne
        27
    some0ne  
       2015-07-12 14:07:42 +08:00
    TDD和Unit Test是两回事,不写测试是不可接受的,在一个完整的开发流程中。

    推荐这篇文章: http://coolshell.cn/articles/3649.html
    karloku
        28
    karloku  
       2015-07-12 14:14:55 +08:00
    TDD BDD这种东西在弄大型项目的时候, 确实让项目变得可控很多

    至于个人项目或者社区项目的话tdd不是找不自在吗...
    ivvei
        29
    ivvei  
       2015-07-12 14:26:19 +08:00
    有测试又不等于TDD。两者差别大了去了。
    asj
        30
    asj  
       2015-07-12 14:42:49 +08:00 via iPad
    TDD暂且不谈
    关于平庸,建议看看这篇文章
    http://blog.codinghorror.com/the-ten-commandments-of-egoless-programming/
    msg7086
        31
    msg7086  
       2015-07-12 15:08:42 +08:00
    DHH写过文章:TDD不行,还是写测试吧。
    railgun
        32
    railgun  
       2015-07-12 16:01:09 +08:00
    真正的老司机不需要ABS,不需要刹车助力。但是真正的老司机知道不是每次开车的都是老司机……
    anthonyeef
        33
    anthonyeef  
       2015-07-12 16:31:44 +08:00
    Hi,不妨贴上链接地址?想听听主播到底是怎么描述的。
    towser
        34
    towser  
       2015-07-12 16:40:23 +08:00
    测试和测试驱动开发是两回事。提出一个观点就要被质疑水平和层次,您国代码猴个个都比别人牛逼。
    tt7
        35
    tt7  
       2015-07-12 18:09:07 +08:00
    "TDD 是平庸者的保障", 并不代表不平庸者就不用 TDD, 也不代表不用 TDD 的就是“非凡”者。这句话基本就是一句用来装逼的废话。
    icylogic
        36
    icylogic  
       2015-07-12 19:14:26 +08:00
    主播们不喜欢写测试? 假如不是断章取义, 那知乎每天提问题也是找到一个解释了...
    reusFork
        37
    reusFork  
       2015-07-12 19:20:15 +08:00
    凡是人都会犯错误,这是人的生理特性决定的。认为自己永不犯错,只有一个原因就是自大。
    不写测试,只是自大的庸才的做法。
    charlie21
        38
    charlie21  
       2015-07-12 19:57:43 +08:00
    在(用某框架)做 web APP 的时候,TDD 、所谓的多写测试、测试驱动开放 有 2 个优势
    1 避免在前期构建时候的过度设计,继而避免重构
    2 在面向黑盒编程时,方便排错
    cxshun
        39
    cxshun  
       2015-07-12 21:39:26 +08:00
    先搞清楚TDD是什么。Test-Driven-Development。先写测试,再让研发根据测试用例去写代码。如果真的是整个项目都这样,那研发真的是基本看着写代码就好,完全不用想什么东西的。

    上面的朋友为什么能回答到有没有必要测试呢?

    普通的测试是必须要有的,开源项目里面的tests是属于自动化测试的范畴,这个是为了避免merge代码之后造成项目问题。跟TDD是完全不同的两个东西。
    Walleve0
        40
    Walleve0  
       2015-07-12 22:20:27 +08:00
    测试驱动开发确实是平庸者的保障,但是软件测试并不是,这是两个不同的问题。
    我认为TDD低估了一个优秀的开发人员的实力,并给了任何有代码编译的人一个定义自己为开发人员的机会。
    如果把大部分精力都花在写测试代码而不重视写产品的代码,那么其意义何在?
    其次TDD的代码你觉得是为了提供了虚假的安全感更多呢,还是为解决软件开发中真正的软件熵的问题做出了实质的贡献。

    个人认为TDD存在的意义仅在于用于工业化的普通程序员的管理。
    GG668v26Fd55CP5W
        41
    GG668v26Fd55CP5W  
       2015-07-12 22:36:32 +08:00 via iPhone
    是的,你说对了 。大神是不需要这套玩意的
    nullcc
        42
    nullcc  
       2015-07-13 08:40:08 +08:00
    个人觉得这话本质上没什么大错,不过不要过分解读,弄成某些情况的充要条件就过了。
    LedChang
        43
    LedChang  
       2015-07-13 10:47:14 +08:00
    TDD真的好么,我一直感觉TDD是从ACM来的灵感。。。。
    njutree
        44
    njutree  
       2015-07-13 13:33:39 +08:00
    不写测试要嘛因为很简单,要嘛因为mock很难,要嘛因为很懒,要嘛因为太年轻。除此之外,胡乱加标签是什么鬼,写测试就是因为资质平庸?我是不是可以说“盔甲是平庸者的保障,真正的武侠高手不需要”,现实不是玄幻小说,有时你看到了现象但它不一定是原因。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1077 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:03 PVG 02:03 LAX 11:03 JFK 14:03
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86