引流:985女生提问,Clean Code 到底有没有必要?是不是写代码”💩山“才是正途?从《甄嬛...
7631
2022.05.02
2022.05.03
发布于 未知归属地

请问一下各位大佬,clean code在实际的工作中,到底有没有必要。感觉在工作中很多的精力都放在理解别人的代码上了,如果人人都能写出很好理解的代码,那工作效率能提升一个大的台阶。但是我经过如下思考,觉得我实在是太天真了,大家这么聪明,怎么会写不出clean code呢?
以下是思考过程:

情况1:

自己写出了比较清晰的代码,别人写的不清晰。老板内心:代码写的太好了,以后别再写了,然后把你开除了。别人看你的代码也很开心,不用费心理解。然而那些写的代码不好理解的工程师,却会因为一直被需要,而保住了工作。🐶
PS:看《甄嬛传》有感:蜚鸟尽,良弓藏;狡兔死,走狗烹,华妃的哥哥年大将军就是最好的反面教材。

情况2:

大家可以想想扁鹊是怎么评价自己的两位兄长的。写好代码的人,相当于在问题还没暴露的时候,就解决了问题,但是这样就体现不了价值了。反而到处救火的人,会让别人觉得更重要。从前有个人,写的代码预判到了所有的bug,这个程序员就再也没啥MR了,写的代码量少之又少,天天准点下班,影响其他社畜的工作积极性。老板决定还是把他开除了吧,让团队氛围更纯粹。🐶 PS:表面的态度要比里子更重要,不要舍本逐末。看《甄嬛传》有感:皇上知道甄嬛身上的蝴蝶是演戏,但是皇上觉得甄嬛的态度让他很感动。当然甄嬛也知道皇上知道她在演戏,预判了预判。

情况3:

清晰逻辑的代码让看代码的人觉得,这不是很简单的问题嘛?写出clean code反而让别人看轻。一看到你的代码,大家都行了。

PS:clean code让大家都成为了懂王。很多事情说清楚了,就没有那么神秘了。

情况4:

复杂的设计,难以理解的命名。例如用汉语拼音缩写命名,初始化函数命名为(void csh())(有些大聪明可能觉得英文和汉语拼音缩写混合效果更佳)。会让所有人包括自己都难以看懂, 那后面重构就基本上难以进行了。每次重构就是重新开发。创造了很多的工作量,增加了就业。
PS:多年前我是一个最最菜鸟的实习生,曾在一个模块里用汉语拼音缩写命名。这么多年,我都已经换了几份工作,仍旧有人找到我,问我这个名字是啥。我定思:“当时的我真是个大聪明,看我代码的人,也是个大聪明”

情况5:

一个作业,只要快速交上去,完成了目标,老板就很开心。老板又不care你的代码是个啥,就像上海市市委书记怎么知道我们从居委买到了臭肉🐶。

PS:中庸之道是老祖宗的处世哲学。奉劝各位要好好理解其中内涵。看《甄嬛传》有感:后宫里总有太监和宫女吃对食,本是平常之事,大家当作看不见就好。皇后为了搞甄嬛,非得搞苏培盛和崔槿汐,说他们吃对食,淫乱后宫,让皇上很不开心。

情况6:

工作中,代码规范还是代码质量,都是自上而下的推动的,反向搞,只会头破血流🐶。

PS:得罪领导妹有好果汁吃。不过如果领导真的要审核代码质量和规范,相信各位大聪明肯定都有妙招对付。看《甄嬛传》有感:后宫不得干政!,大家想想甄嬛是怎么失宠的?

情况7:

业界需要不干净的code,如果你的code都干净了,那是不是也不需要文档解释?ide做出那么多复杂的功能还有啥用?🐶

PS:重要的是输出,代码越差,就越多文档来解释,咱的输出也越多!尽管输出的质量不佳,但是量大啊!要是没有ide,只能ctrl+f了😮‍💨。

情况8:

作为reviewer,给别人提出了一堆意见。被review的人,心想此人是不是对我有意见,从此怀恨在心。长此以往,敌人越来越多。
PS:看《甄嬛传》有感:华妃到处得罪人,皇后天天让人滑胎,只有甄嬛给别人送孩子。朋友搞得多多的,敌人搞得少少的。

综上所述,clean code就是程序员的天敌,只有创造代码“💩山”才是正途。就像一个博弈中的囚徒一样,所有人揣测其他人都是报以最大的恶意。
欢迎大家补充讨论~

我终于成为了我最讨厌的人。
💩
💩💩
💩💩💩

正文:
感谢各位大佬积极的评论,上面都是在抖机灵,如果按照这个套路来做事或摆烂,最终吃亏的还是自己。现在大公司是越来越重视Clean Code了,用各种工具来确保代码的Clean,用培训来提高员工的素质,用绩效手段作为正确的价值导向,让写代码变得更加规范化,减少了💩山的产生。然而以个人的见闻,一些小公司、国企却不重视。我简单的抛砖引玉分析下:

小公司不重视的原因:

小公司为何不重视,很多时候是因为在客户面前的弱势,被无穷尽的客户需求而拖垮的。在《The Clean Coder》里,经常讲到承诺,专业的人或公司会重视承诺,坚守原则,知道何时说“不”,如何说“是”。在中国这个过度竞争的社会,很多公司都会为了竞标来缩短工期,小公司为了争取业务常常对客户过度承诺,承诺一些保质保量交付不可能的目标,最终层层传递,到了底层的执行者-程序员这一层就会为了工期而交付质量差的代码。

一些国企为何不重视

一些国企不重视,是因为很多领导不是从一线提拔而来,或者处在转行之中,并不是很懂业务,领导们不知道什么叫做Clean Code,当然也不知该如何改善。这里不展开讲,总之对于很多国企而言,软件行业还是一个比较新的行业,除了少数能做好,大部分还是比较差的。有一些有自知之明的国企会选择用外包来解决问题。

作为个人,我会逐渐的增强自己的职业素养,成为一个Clean Coder,与各位大佬们共勉。至于如何成为Clean Coder,Martin老大爷在《代码整洁之道-程序员的职业素养》《代码整洁之道》里都讲的很多了。知难行易,知行合一,更重要的还是实践。
曾经选修过跳水课,在五米台的时候,泳池有5m深,由于水面存在折射,加上台面的高度,看起来有十多米高。我的双腿是颤抖的,内心是拒绝的,尿意层层涌上,不敢跳下去。看到我的迟疑,跳水老师教育我:“你心中默念123,到了3,就条件反射的跳下去!”,我只好照办,默念123后,竟然真的跳下去了。面对这种高度,大部分人都会有本能的恐惧,而专业的跳水运动员会克服恐惧,把跳水动作变成肌肉记忆,条件反射般的在空中做出各种优美的跳水动作。专业的程序员也是如此,程序员只有必须不断的坚持一些原则,才能逐渐的成为专业的程序员,否则面对麻烦就偷懒或者妥协,最终只能原地踏步。Martin老大爷的程序员准则,会让我在工作中面对很多恐惧和焦虑,软弱的我可能会选择妥协或投降,当遇到这种情况,我会在心中默念123,在数到3的时候坚持自己的原则,做正确的事。如果周围环境不好,做这种事情就会遭受更大的痛苦。不过正如各位大佬所言,此时不润,更待何时。

评论 (52)