欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

规范何用论

程序员文章站 2022-03-14 15:32:14
...
英文原文 http://diveintomark.org/archives/2004/08/16/specs

大多数开发者是本蛋(morons),剩下的全是昆蛋(assholes)。我(Mark Pilgrim)不时的发现自己本人流于两个集团之一,所以不惭认定以下事实。


昆蛋

昆蛋精心阅读各种规范,寻找纰漏,疏忽,甚至仅仅是错别字。他们会写出严格符合规范,但是根本没用的代码。如果有人碰巧指出他写了没用的软件,他就可以自鸣得意了,然后在博客上作无辜状哭诉,指出规范中清楚证明他的极端破败软件如何如何技术性正确的条文。

有些昆蛋会写测试用例。碰到这样的人,在规范编写过程中是有好处的,因为有时搞好了可以把这些人无穷无尽的时间和精力利用起来,在规范定稿之前找出更多纰漏。不幸的是,要利用昆蛋,需要的时间和技巧有过之而无不及。这就是为什么写出好规范要如此耗时:大多数的时间浪费在了昆蛋管理上面。


本蛋

另一方面,除非被人吼了,本蛋从不主动读规范。他们做事就是淘荒几个示例程序,基于自己设想出来有限的几种情况写出看起来好用的代码。一旦交付,他们必然要被人吼,因为他们的产品很难找出哪怕一点能够符合别人用的规范。有人给他们指出规范里清楚说明他们软件破败如何严重的条文,他们于是加以修正。

本蛋一般没什么特别,但是其中有两种本蛋值得特别提及。第一种像所有本蛋一样改示例程序,交付,然后被吼,在*去读规范之后,他们会神奇般转变为昆蛋,辩驳说规范有歧义,或者某种程度上有误导,或者无从轻重,因为也没别人能实现,或者干脆就是错误的。这些人被称为“反社会者(sociopaths)”。不管规范定得多好,他们也不会去写与之相符的代码,所以对这些人不理也无妨。

第二种本蛋也是改示例程序,交付,然后被吼。但当他们开始习惯读规范之后,会神奇般的转变为拥护者,并且总结他们的失误写成教材。这些人被称为“专家(experts)”。几乎世上有用的教程都是由出身本蛋的专家写出来的。


天使

有人会辩驳说并非所有开发者都一定是本蛋或者昆蛋,但他们想错了。例如,有人认为存在一类我(Mark Pilgrim)称之为“天使”的开发者。“天使”仔细阅读规范后写代码,并且交付他们的产品之前针对成套测试进行全面测试。不会有真正的天使存在,不过对规范撰写者来说,有这个念像能让他们自我感觉好一些。


规范何用

如果你的规范不够好,本蛋就永远没有机会做出正确的东西。每有一个人抱怨他们的软件太破,就有两个昆蛋站出来说没有这回事。以仲裁本蛋与昆蛋之纷争为主要目的的规范,解决不了任何事情,争论还是会历年郁积。

如果你的规范够好,本蛋还有一线战机突破昆蛋的重围,知错能改而取得最终胜利。与此同时,除了挑规范毛病而无所事事的昆蛋们也就无的放矢,最后无趣而终,收手转去寻找其他人侵扰了。
相关标签: 软件测试 IDEA