在我所见到的无论是闭源还是开源代码中,甚至像 redis 、 requests 这种公认的高质量代码中,都会看到一个文件夹叫 tests。那么,是因为这些作者也是所谓的“平庸者”?
节目中说的,主播们不喜欢写测试,还提到上古时代,Hack God 们大概可能也不写测试。那么,这两位主播的水平又是在哪一个层次上呢?
1
engHacker 2015-07-11 21:50:42 +08:00
在生产环境中,如果不测试,我只能呵呵。人不要太自信。尤其是涉及到钱的软件,如果不测试,出了问题,那就是灾难。
|
![]() |
2
hahastudio 2015-07-11 21:52:37 +08:00
如果软件真要成为工业,就必须要有测试。
|
![]() |
3
feikaras 2015-07-11 21:55:04 +08:00 via iPad
呵呵
|
4
johnsmith123 2015-07-11 21:55:49 +08:00
LZ 我看你骨骼惊奇,为何不去做测试?
|
![]() |
5
Feiox OP @johnsmith123 @feikaras 啊?(́◉◞౪◟◉‵)
|
![]() |
6
bengol 2015-07-11 22:05:35 +08:00
比较认同这个观点
|
![]() |
7
Comphuse 2015-07-11 22:06:11 +08:00
没听过节目,单从“TDD 是平庸者的保障”这句话看来没问题啊。就像“好记性不如烂笔头”只对普通人成立,那种拥有照相机记忆的天才不需要。
参考: http://www.zhihu.com/question/29047376/answer/43224089 。链接里那种人就算不写测试也比普通人捅篓子的概率低一百倍。 |
![]() |
8
kaichen 2015-07-11 22:11:47 +08:00 ![]() 开源项目的作者写自动化测试不是因为他们平庸,而是担心其他人(有可能是平庸之辈)把他写的代码搞坏好吗?
有时别人一个 Pull Request 过来,先跑一下看看有没有把自己的代码搞坏,然后再看他做了什么,有没有道理。 另外,TDD 和自动化测试也是两个概念好吧? |
![]() |
9
yangxiongguo 2015-07-12 00:58:34 +08:00
大部分人是平庸者滴,要认清这点。
|
![]() |
10
FrankFang128 2015-07-12 01:00:11 +08:00
楼主的逻辑很奇怪。
你这样想吧: TDD 比非 TDD 多一项功能:保障平庸者。 |
11
ibremn 2015-07-12 01:06:10 +08:00
TDD 和 tests 不是一回事儿。
另外楼主你逻辑有问题。 |
![]() |
12
elvba 2015-07-12 01:47:13 +08:00
没错啊,因为我们大部分人都是平庸者……
|
![]() |
13
crayygy 2015-07-12 08:35:06 +08:00 via iPhone
不写测试的有两种人
一种人牛到不需要测试,他自己就足以保障代码质量。 还有一种人……不提也罢 |
![]() |
14
ltm 2015-07-12 09:27:14 +08:00 ![]() TDD 应该是Test-Driven Development吧,先写测试,然后让程序通过测试,再迭代。
TDD和Unit Test是两码子事。 |
![]() |
16
zhigang1992 2015-07-12 09:31:35 +08:00 via Android
没有测试,敢重构么?
就算自己写的代码,三个月后还认识么? 测试还可以当文档看。 TDD还有一个好处就是然你先考虑接口,再考虑实现 |
![]() |
17
williamx 2015-07-12 10:52:40 +08:00
“TDD 是平庸者的保障”这句话本事是完全正确的。当软件开发从个人精英发展成工业团队之后,从事这个工作的大部分员工都是“平庸”的普通人,如何保障他们的出产的品质是很有必要的一件事情。
|
![]() |
18
pH 2015-07-12 10:57:07 +08:00
最开始看标题以为是说TDD和FDD。LOL
|
![]() |
19
101 2015-07-12 11:07:02 +08:00
明显有问题,单打独斗可以不写,开源项目能保证所有 contributor 都提交无 bug 代码?更不要提公司团队合作了,不是天才们变平庸了,而是开发方式变了,这个时代的需求和演进速度都不一样。
东施效颦还是变不了西施 |
![]() |
20
Shared 2015-07-12 11:52:54 +08:00
这个世界本来就没那么多天才,承认自己是个平庸者也不会死
|
![]() |
21
Javescript 2015-07-12 12:21:33 +08:00 ![]() 内核恐慌是给外行和新手听的,你们不要太认真。
|
![]() |
22
Numbcoder 2015-07-12 12:29:42 +08:00
「节目中说的,主播们不喜欢写测试」
呵呵! 以为自己不写测试,自己就不是平庸者了? 背上纹条龙,自己就是黑帮老大了? |
![]() |
23
anoymoux 2015-07-12 12:46:13 +08:00 via iPad
测试在大多数情况下是必须的,但TDD是个垃圾…
|
24
samael 2015-07-12 13:38:17 +08:00 via iPad
正常,大部分人都不会承认自己平庸,以为自己水平在平均以上
|
![]() |
25
cc7756789 2015-07-12 13:58:38 +08:00
可惜这些开源项目不是光光作者自己一个人用,而是有很多不同的水平的人或不同大小的项目在用,所以必要的东西即使可能没必要也得有必要。
|
![]() |
26
jziwenchen 2015-07-12 14:06:17 +08:00
认可自己的平庸 然后多写测试就好了;
|
27
some0ne 2015-07-12 14:07:42 +08:00
|
![]() |
28
karloku 2015-07-12 14:14:55 +08:00
TDD BDD这种东西在弄大型项目的时候, 确实让项目变得可控很多
至于个人项目或者社区项目的话tdd不是找不自在吗... |
![]() |
29
ivvei 2015-07-12 14:26:19 +08:00
有测试又不等于TDD。两者差别大了去了。
|
![]() |
30
asj 2015-07-12 14:42:49 +08:00 via iPad
|
![]() |
31
msg7086 2015-07-12 15:08:42 +08:00
DHH写过文章:TDD不行,还是写测试吧。
|
![]() |
32
railgun 2015-07-12 16:01:09 +08:00
真正的老司机不需要ABS,不需要刹车助力。但是真正的老司机知道不是每次开车的都是老司机……
|
![]() |
33
anthonyeef 2015-07-12 16:31:44 +08:00
Hi,不妨贴上链接地址?想听听主播到底是怎么描述的。
|
![]() |
34
towser 2015-07-12 16:40:23 +08:00
测试和测试驱动开发是两回事。提出一个观点就要被质疑水平和层次,您国代码猴个个都比别人牛逼。
|
![]() |
35
tt7 2015-07-12 18:09:07 +08:00
"TDD 是平庸者的保障", 并不代表不平庸者就不用 TDD, 也不代表不用 TDD 的就是“非凡”者。这句话基本就是一句用来装逼的废话。
|
![]() |
36
icylogic 2015-07-12 19:14:26 +08:00
主播们不喜欢写测试? 假如不是断章取义, 那知乎每天提问题也是找到一个解释了...
|
![]() |
37
reusFork 2015-07-12 19:20:15 +08:00
凡是人都会犯错误,这是人的生理特性决定的。认为自己永不犯错,只有一个原因就是自大。
不写测试,只是自大的庸才的做法。 |
38
charlie21 2015-07-12 19:57:43 +08:00
在(用某框架)做 web APP 的时候,TDD 、所谓的多写测试、测试驱动开放 有 2 个优势
1 避免在前期构建时候的过度设计,继而避免重构 2 在面向黑盒编程时,方便排错 |
![]() |
39
cxshun 2015-07-12 21:39:26 +08:00
先搞清楚TDD是什么。Test-Driven-Development。先写测试,再让研发根据测试用例去写代码。如果真的是整个项目都这样,那研发真的是基本看着写代码就好,完全不用想什么东西的。
上面的朋友为什么能回答到有没有必要测试呢? 普通的测试是必须要有的,开源项目里面的tests是属于自动化测试的范畴,这个是为了避免merge代码之后造成项目问题。跟TDD是完全不同的两个东西。 |
40
Walleve0 2015-07-12 22:20:27 +08:00
测试驱动开发确实是平庸者的保障,但是软件测试并不是,这是两个不同的问题。
我认为TDD低估了一个优秀的开发人员的实力,并给了任何有代码编译的人一个定义自己为开发人员的机会。 如果把大部分精力都花在写测试代码而不重视写产品的代码,那么其意义何在? 其次TDD的代码你觉得是为了提供了虚假的安全感更多呢,还是为解决软件开发中真正的软件熵的问题做出了实质的贡献。 个人认为TDD存在的意义仅在于用于工业化的普通程序员的管理。 |
![]() |
41
falcon05 2015-07-12 22:36:32 +08:00 via iPhone
是的,你说对了 。大神是不需要这套玩意的
|
![]() |
42
nullcc 2015-07-13 08:40:08 +08:00
个人觉得这话本质上没什么大错,不过不要过分解读,弄成某些情况的充要条件就过了。
|
43
LedChang 2015-07-13 10:47:14 +08:00
TDD真的好么,我一直感觉TDD是从ACM来的灵感。。。。
|
![]() |
44
njutree 2015-07-13 13:33:39 +08:00
不写测试要嘛因为很简单,要嘛因为mock很难,要嘛因为很懒,要嘛因为太年轻。除此之外,胡乱加标签是什么鬼,写测试就是因为资质平庸?我是不是可以说“盔甲是平庸者的保障,真正的武侠高手不需要”,现实不是玄幻小说,有时你看到了现象但它不一定是原因。
|