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

2015-07-11 21:46:00 +08:00
 Feiox

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

6087 次点击
所在节点    程序员
44 条回复
Javescript
2015-07-12 12:21:33 +08:00
内核恐慌是给外行和新手听的,你们不要太认真。
Numbcoder
2015-07-12 12:29:42 +08:00
「节目中说的,主播们不喜欢写测试」
呵呵!
以为自己不写测试,自己就不是平庸者了?
背上纹条龙,自己就是黑帮老大了?
anoymoux
2015-07-12 12:46:13 +08:00
测试在大多数情况下是必须的,但TDD是个垃圾…
samael
2015-07-12 13:38:17 +08:00
正常,大部分人都不会承认自己平庸,以为自己水平在平均以上
cc7756789
2015-07-12 13:58:38 +08:00
可惜这些开源项目不是光光作者自己一个人用,而是有很多不同的水平的人或不同大小的项目在用,所以必要的东西即使可能没必要也得有必要。
jziwenchen
2015-07-12 14:06:17 +08:00
认可自己的平庸 然后多写测试就好了;
some0ne
2015-07-12 14:07:42 +08:00
TDD和Unit Test是两回事,不写测试是不可接受的,在一个完整的开发流程中。

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

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

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

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

个人认为TDD存在的意义仅在于用于工业化的普通程序员的管理。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/205029

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX