
“这代码真垃圾”,当我们翻查一些代码寻找一个特别讨厌的bug时,同事大声这样说。“是吗”,我回答到。
像 这样的谴责,以及其它一些类似的话,在办公室里经常会听到,而且频率在增加。而最令人不安的是,这代码并不是特别的糟糕。我这话是什么意思?不能把它们写 的更好吗?当然!大多数的代码都有改善的空间——只要有足够的时间和资源。垃圾代码确实有,我们都看得见,而且都是我们自己写的,但这并不是问题。
问题是我们有一个不良的“这代码真垃圾”文化。
这是一种我感觉在web开发社区中越来越常见的文化。接着上面的例子,我请同事解释一下,解释为什么这代码很垃圾,我得不到一个直接的答复。
“这还不垃圾,你看这代码”,他回答说,那种趾高气扬我需要仰头才能看到他,紧邹的眉头就好象是说,如果不能看出这代码有多烂,那就是个傻子。结果你知道怎么着?我开始感觉有点傻了。我差点就忍不住开始跟着他一起嘲笑,认定这代码真的有多烂,多糟糕。
在 我继续下面的内容之前,我发现上面的内容并没有在最好的光线下描绘我的同事。所以,让我弥补一下。他是个非常好的小伙。坦白的说,他是我见过的最和善的小 伙之一。他友善,有一个他很爱的家庭,他跑马拉松,乐于助人,聪明,等等等等。还有一点要说明:他是一个经验不多的新手。他还在学一些基础的开发知识。这 没什么好羞愧的,我们都经历过这个阶段。那么,为什么这样一个友善、聪明的小伙,在他参与的第一个大型web项目上,他的第一反应就是去指责一些代码很垃 圾?——他甚至还没有真正的去理解它。
生活规律:垃圾往下倒。
这个问题并不单独出现在程序员新手中。很多精明人士都有这 习惯。你也许是一个奇才,一个久经考验的程序员,但如果有这样一种习惯,整个团队和项目都会受到负面影响。因为新手们把你当作知识和经验的源泉。越多的人 拥抱这种“这代码真垃圾”文化,这种文化就会越被认可,越成为模仿的对象。很快,程序员开始变的不是积极在项目上出力,而是去贬低别人在项目上的贡献。最 大嘴、最反面的程序员很快就成了最受尊敬的人。所有人都受折磨,项目受影响,而一部分人却能能得到赞美,为倒是都是垃圾而感到心满意足。
我们应该怎么做?
没有人想显得愚蠢,没有人想自己的工作被认为劣质。一旦“这代码真垃圾”文化开始传播,唯一能确保自己在别人之上的办法就是贬低别人。最终,这变成了一种负能量,而不是想着去解决问题。
那 么,对这样的一种特殊现象有什么解决方法?阻止它。不要不加思索的否定别人的代码——在没有原因、没有理解的情况下。有很多的方式可以处理那些看起来有问 题的代码。如果发现代码中有异味,想办法改进它。从理解这些代码开始,在此基础上修正。如果你发现项目中有一些不良风气,不要跟随。如果有人对你说“这代 码真垃圾”,问他为什么,然后了解查明,去做一些事情让它变的不垃圾。向最初写这些代码的人了解,也许他们这样写代码是有原因的。帮助他们,而不是诋毁他 们。
下一次,当我发现从显示器里飘出可疑的异味时,我会转身问我的同事,“我们如何改进这段它?”因为,我们要面对它们,有时候代码会很垃圾,但这不意味着我们也去变成垃圾。
引用来自“开源中国匿名会员”的评论
引用来自“巴林的狗尾草”的评论
引用来自“西红柿幽幽子”的评论
引用来自“巴林的狗尾草”的评论
没有别的意思,就是想让你体验一下被人说垃圾是什么感觉。第一时间只想到反对和消沉。基于你是什么样的人。
文章说的蛮对的,面对代码,要么帮忙重构,要么写点儿文档帮忙理解,要么还有最后一条路,shut up。
没必要把自己抬高到圣人的水准。
你既然那么喜欢抬杠,那好,
第一,死不悔改的人多了去了。这点,你同意吗?
第二,写得麻痹连老娘都认不得它是谁的多了去了。这点,你同意吗?
第三,做出这些事情的人来,是不是缺乏责任感?
别总以为随便丢一坨出来就能获得赞誉,
别总以为随便丢一坨出来就有人愿意付出帮你改成什么好东西。
你敢丢出来,就不要怕被人骂,怕骂你就窝在被窝里面慢慢孵卵好了。写得不好别人指出你不好的地方,你浪费人家时间还不允许别人骂回你两句?别总想着占便宜。天下没那么多好事。
回到原题,既然你觉得这话说得真垃圾,麻烦您把它重构成您觉得很圆满的话来。麻烦您写点文档来帮忙理解怎样理解才不垃圾来。要不然,最后一条路,希望你看到这个之后,能改变你喜欢把自己拔高到圣人水准,用仁义道德来碾压指责别人的习惯。
引用来自“巴林的狗尾草”的评论
没有别的意思,就是想让你体验一下被人说垃圾是什么感觉。第一时间只想到反对和消沉。基于你是什么样的人。
文章说的蛮对的,面对代码,要么帮忙重构,要么写点儿文档帮忙理解,要么还有最后一条路,shut up。
引用来自“巴林的狗尾草”的评论
没有别的意思,就是想让你体验一下被人说垃圾是什么感觉。第一时间只想到反对和消沉。基于你是什么样的人。
文章说的蛮对的,面对代码,要么帮忙重构,要么写点儿文档帮忙理解,要么还有最后一条路,shut up。
引用来自“巴林的狗尾草”的评论
引用来自“西红柿幽幽子”的评论
引用来自“巴林的狗尾草”的评论
没有别的意思,就是想让你体验一下被人说垃圾是什么感觉。第一时间只想到反对和消沉。基于你是什么样的人。
文章说的蛮对的,面对代码,要么帮忙重构,要么写点儿文档帮忙理解,要么还有最后一条路,shut up。
没必要把自己抬高到圣人的水准。
你既然那么喜欢抬杠,那好,
第一,死不悔改的人多了去了。这点,你同意吗?
第二,写得麻痹连老娘都认不得它是谁的多了去了。这点,你同意吗?
第三,做出这些事情的人来,是不是缺乏责任感?
别总以为随便丢一坨出来就能获得赞誉,
别总以为随便丢一坨出来就有人愿意付出帮你改成什么好东西。
你敢丢出来,就不要怕被人骂,怕骂你就窝在被窝里面慢慢孵卵好了。写得不好别人指出你不好的地方,你浪费人家时间还不允许别人骂回你两句?别总想着占便宜。天下没那么多好事。
回到原题,既然你觉得这话说得真垃圾,麻烦您把它重构成您觉得很圆满的话来。麻烦您写点文档来帮忙理解怎样理解才不垃圾来。要不然,最后一条路,希望你看到这个之后,能改变你喜欢把自己拔高到圣人水准,用仁义道德来碾压指责别人的习惯。
引用来自“西红柿幽幽子”的评论
引用来自“巴林的狗尾草”的评论
没有别的意思,就是想让你体验一下被人说垃圾是什么感觉。第一时间只想到反对和消沉。基于你是什么样的人。
文章说的蛮对的,面对代码,要么帮忙重构,要么写点儿文档帮忙理解,要么还有最后一条路,shut up。
引用来自“开源中国匿名会员”的评论
死不悔改的多了去了。写得麻痹老娘都认不得他是谁的也多了去了。这就是缺乏责任感。
引用来自“巴林的狗尾草”的评论
没有别的意思,就是想让你体验一下被人说垃圾是什么感觉。第一时间只想到反对和消沉。基于你是什么样的人。
文章说的蛮对的,面对代码,要么帮忙重构,要么写点儿文档帮忙理解,要么还有最后一条路,shut up。
引用来自“陈景峰”的评论
引用来自“陈景峰”的评论
中国软件90%生产垃圾。说代码是垃圾的程序员,又制造新垃圾。
首先国内大学只会教你if for这些,那些教授水平有限。谭浩强就是一例。
而国外大学主要是以很多自己校内软件作为教具,例如伯克利FreeBSD,如果你学开发分布式 有BOINC,你学数据库有PostgreSQL. 教授会带你进入这些领域,传授你这些成熟系统的思想。
我最近写了一些nginx扩展,php扩展,mysql扩展,postgresql扩展,难得不是语言,而是接受他们的思想。
引用来自“巴林的狗尾草”的评论
没有别的意思,就是想让你体验一下被人说垃圾是什么感觉。第一时间只想到反对和消沉。基于你是什么样的人。
文章说的蛮对的,面对代码,要么帮忙重构,要么写点儿文档帮忙理解,要么还有最后一条路,shut up。
引用来自“刘子玄”的评论
本来就是,开源界各种垃圾代码。
还有国内公司,我也见过很多垃圾到不行的代码,纯粹是拼凑。这些代码,说垃圾已经很客气了
引用来自“巴林的狗尾草”的评论
没有别的意思,就是想让你体验一下被人说垃圾是什么感觉。第一时间只想到反对和消沉。基于你是什么样的人。
文章说的蛮对的,面对代码,要么帮忙重构,要么写点儿文档帮忙理解,要么还有最后一条路,shut up。
引用来自“花间小酌”的评论
我比较同意11L的观点 我现在的一个同事 看别人代码的时候 随便以浏览 就蹦出一句话:这都是啥呀 那种鄙视的劲头 显得他很牛
引用来自“巴林的狗尾草”的评论
引用来自“刘子玄”的评论
本来就是,开源界各种垃圾代码。
还有国内公司,我也见过很多垃圾到不行的代码,纯粹是拼凑。这些代码,说垃圾已经很客气了
引用来自“巴林的狗尾草”的评论
没有别的意思,就是想让你体验一下被人说垃圾是什么感觉。第一时间只想到反对和消沉。基于你是什么样的人。
文章说的蛮对的,面对代码,要么帮忙重构,要么写点儿文档帮忙理解,要么还有最后一条路,shut up。
骂垃圾代码的是素质问题
你是什么问题?
引用来自“陈景峰”的评论
中国软件90%生产垃圾。说代码是垃圾的程序员,又制造新垃圾。
首先国内大学只会教你if for这些,那些教授水平有限。谭浩强就是一例。
而国外大学主要是以很多自己校内软件作为教具,例如伯克利FreeBSD,如果你学开发分布式 有BOINC,你学数据库有PostgreSQL. 教授会带你进入这些领域,传授你这些成熟系统的思想。
我最近写了一些nginx扩展,php扩展,mysql扩展,postgresql扩展,难得不是语言,而是接受他们的思想。
首先国内大学只会教你if for这些,那些教授水平有限。谭浩强就是一例。
而国外大学主要是以很多自己校内软件作为教具,例如伯克利FreeBSD,如果你学开发分布式 有BOINC,你学数据库有PostgreSQL. 教授会带你进入这些领域,传授你这些成熟系统的思想。
我最近写了一些nginx扩展,php扩展,mysql扩展,postgresql扩展,难得不是语言,而是接受他们的思想。
引用来自“刘子玄”的评论
本来就是,开源界各种垃圾代码。
还有国内公司,我也见过很多垃圾到不行的代码,纯粹是拼凑。这些代码,说垃圾已经很客气了
引用来自“开源中国匿名会员”的评论
死不悔改的多了去了。写得麻痹老娘都认不得他是谁的也多了去了。这就是缺乏责任感。
还有国内公司,我也见过很多垃圾到不行的代码,纯粹是拼凑。这些代码,说垃圾已经很客气了