我的代码和注释都写的像坨屎,那又怎么样?

题图: 摄于2019年 – 绍兴东湖

一周前,我的朋友圈被一篇 #百度某新员工发飙:前人代码写得像一坨屎,颠覆了对大厂的认知# 的文章刷屏了,评论区也非常热闹。

但让我惊讶的是,几乎所有的声音里都充满着嘲笑与讥讽,有的剑指百度的价值观,那架势就好像李彦宏杀了他亲爹似的,有的把这事与之前 “阿里云挂掉” 联系起来,调侃技术大厂与技术 “大肠” 等同,都是一群垃圾货抱团,还有的则借题发挥,拿出自己的代码趾高气昂的对老板说 “瞧瞧,百度的程序员也不过如此,我们可比他们强多了”。

早就想就此类现象发表一些观点,借这个机会,谈谈自己的看法。

2007年初,我曾在杭州某游戏公司担任架构师,负责在线游戏点卡交易平台的设计与开发。当时游戏虚拟交易非常火爆,为了促进交易额的攀升,市场部的同学可算是动足了脑经,今天一个活动,明天一个促销,搞得研发的小伙伴疲惫不堪,不仅白天写代码赶工,而且晚上还要与运维一起值班守护。

在当时那个时代,我觉得搞开发的都是一个祖师爷教出来的,无论你把任务分配给谁,也别管内容是啥,只要你连续指派同一类型的任务,他必定会给你抽象个公共服务出来,然后再和你大谈 “代码(或功能)抽象” 的强大特效,嘴里还不停地叨叨 “以后再遇上这样的业务,再也不需要硬编码了,只需要这么一配,那么一调,就搞定啦!”

很多历史就是惊人的相似,信息产业的发展过去了那么多年,太多的事实表明,在缺乏经验与业务背景的前提下,大多数的抽象设计都是 “过度设计” 的产物。

可想而知,随着这些 “抽象特效” 的陆续上线,BUG数直线上升,临时性补丁满天飞,好几次营销活动都险些酿成了惨剧,还好运气算不错,都有惊无险。

就这样,公司的业绩也在技术颠簸中不断的发展壮大,并在半年内完成了新一轮的融资。

2008年春节后,因部分核心开发的离职,我打算重新引入一些有经验的架构师,并对系统进行部分的重构。

在连续看了几名候选人之后,我们选定了两名有电商背景的架构师,一个工作五年,一个工作七年,并确认一周后便能入职。正当我们打算大干一场的时候,这俩人却在入职一周后同时提出离职,这速度刷新了我当时的世界观。

我有些郁闷,立即找他们谈话。

在离职面谈中,他们向我倾吐了一些原因:

  • 命名没标准,无效命名太多,完全看不懂;
  • 注释几乎为空,代码逻辑全靠BUG;
  • 类继承关系混乱,把 “面向对象” 硬生生搞成了 “面向过程”,满屏的IF…ELSE……

这几点,我用今天的话总结下:代码写的太烂,注释写的太没水准,这系统和人都带不动,我走了,再见。

行,还算客气,并没有直接说出 “像坨屎” 这三个字。

也许是因为不甘心,我一直努力的向他们诉说着整个系统的发展过程,希望他们明白 “好的架构不是设计出来的,而是演进出来的” 道理,可他们却在说完以上这些原因之后选择了沉默,不再说话。

离开后,他们去了阿里,之后我也没再和他们联系过。

回忆起当年的我,那个内心还比较纯真的年纪,如果你跟我说阿里的代码和注释都是金子镶成的,我也绝对会相信。

这些年,我经历过一些所谓的大厂,也通过人脉关系了解过一些互联网头部企业的编码质量。

不可否认,有些公司,有些团队的某些代码与注释,的确看起来像坨屎。

几年前,我在大智慧,团队里有位五年经验的工程师,为了用Javascript实现一个 “Next Day”,不仅花了整整一周,而且在实现NextCurrentDay的时候,居然用Javascript从0开始手撸了一遍,这么一个Date+1的计算,还忘记算闰年。

原本三天干完的活,他居然搞了一周,还居然不用Date对象,就算完全没有脚本基础,我想学过计算机的应该都会知道吧。

不仅如此,他还把这个方法名取名为 “getAbc”,并且没有一行注释。

在做CodeReview的时候,差点没把我气的背过气去,瞬间点燃了我的火爆脾气,指着他的鼻子,呵令他在三天内完成修改。

没想到,这事过去没几天,他居然提出离职,并在离职面谈时向公司投诉,说我对他进行了人身攻击。

更有意思的是,他居然去了某某大厂,拿到了比在大智慧高1.5倍的薪水。

经过这件事,我觉得自己的人生观又一次被颠覆了。

“你说我的代码和注释都写的像坨屎?恭喜你,答对了,那又怎么样?老子不伺候了。”

你是否从这个事件中闻到了这股味道?

我曾在很多公开场合抨击过当今的 “新一代” 程序员,而抨击的内容也无非两点,一是基础知识薄弱,二是自我要求不高。

说到底,无非就是吐槽他们不了解内存结构,与数据库范式,甚至连基本的数据算法、二进制八进制十六进制转换之类的知识都不懂,或者是心态浮躁,满脑充斥着得过且过的价值观。

现在想想,这也怪不得他们。

互联网时代,是一个浮躁的时代,也是效率优先的时代,这不仅体现在技术圈,其他领域也一样。

如果我问你,现在考个驾照大概需要花费多长时间?相信很多人都会回答:3个月左右、6个月内。但在我当年,或许要三年才拿到驾照。

想要成为一名合格的司机,在这三年里,你不但要学习机械原理,还要掌握基本的修车技能,并通过 “师父带徒弟” 的实习期,才能拿到驾照。

现在呢?只要你的智商能够分辨 “油门” 和 “刹车”,似乎拿个驾照,也就是半年内的事。

有人说,时代造英雄,但别忘了,时代也造 “杀手”。

在马路上,你会遇到 “马路杀手”,在技术圈,你同样会遇到 “一坨代码”。

从古至今,似乎效率与质量一直是个矛盾,很多人也习惯拿这事来做挡箭牌。

“为什么没写注释?”

“因为赶工,没时间写呀”

“为什么不用这个对象?为什么不取有效方法名?”

“你又没跟我说,跑动就行了,你那么认真干嘛?”

这些对话是不是特别熟悉?听上去是不是特别有道理?

如果你也这么认为,我只想对你说,“你不但代码和注释写的像坨屎,技术价值观也像坨屎。”

真是人不要脸,天下无敌。

Image placeholder
asdfghjkl
未设置
  48人点赞

没有讨论,发表一下自己的看法吧

推荐文章
《双子杀手》票房扑街又怎样?李安开创的“AI易容术”,甩那些磨皮换脸大片几条街

大数据文摘出品作者:刘俊寰上映快小半个月了,李安导演的《双子杀手》大家都看了吗?这是李安继《少年派的奇幻漂流》(2012)和《比利林恩的中场战事》(2016)之后,再次推出的好莱坞电影工业的革新之作。

当中小企业决定上云,真的像你们说的那么简单吗?

题图:fromZoommy四季度历来是一年中最忙碌的时期,辛苦了一年,各项工作都在收官,千头万绪、环环相扣,再加上绩效考核的开展,不但烧脑,而且还烧心。同时,最后一个季度又肩负着为来年开局而打基础的艰

css注释怎么写?

css注释怎么写?一:css注释是什么?css注解(css注解)又被称作CSS注释(css注释)是有css文件代码间加入注释,解释说明意思,就像我们学习语文一样在文言文、诗词、文章用不同颜色进行批注说

手摸手教你搭建简单的 Git 的代码自动发布

1.为什么我要弄这个? emmmm,因为有个自己的项目每次发布到线上,都要登录一下服务器,然后pull一下代码,执行一些项目初始化的命令(诸如:gitsubmoudleupdate,phpartisa

我们走访了900名微软员工,为你揭秘全球最大软件公司的代码评审机制

大数据文摘出品来源:michaelagreiler编译:倪倪、钱天培、毅航全球最大的软件公司之一微软拥有约140,000名员工,其中大约44%,即超过60,000名员工,是工程师。Office、Vis

5位女性程序员的自白:计算机不撒谎;女程序员的代码一样也很棒

谁说这个领域就是男性的天下偏见本身就是一种带标签的想法她们的世界里只信奉“computer never lies”她们认为代码漂亮比发型漂亮更重要她们到底是谁?谷悦是喜欢简单、纯粹工作的气质女神,八年

如何写出让同事好维护的代码?

上篇牛逼:如何写出让同事无法维护的代码?这篇教你如何写出不让同事无法维护的代码!写出整洁的代码,是每个程序员的追求。《cleancode》指出,要想写出好的代码,首先得知道什么是肮脏代码、什么是整洁代

InnoDB到底支不支持哈希索引,为啥不同的人说的不一样?

继续回答水友提问(最近问MySQL的多):沈老师,我在网上看到不同的资料,有的说InnoDB支持哈希索引,有的说不支持,到底哪个是正确的呢?对于InnoDB的哈希索引,确切的应该这么说:(1)Inno

我的天!这是史上最烂的项目:苦撑12年,600多万行代码…

编译:欧剃来源:projectfailures.wordpress.com转载自:Java技术栈你见过最烂的项目,撑了多长时间才完蛋?六个月?一年?今天介绍的这个奇葩项目,不但一开始就烂得透透的,还硬

Redis功能强大,那也顶不住被滥用啊!

Redis功能强大,数据类型丰富,再快的系统,也经不住疯狂的滥用。通过禁用部分高风险功能,并挂上开发的枷锁,业务更能够以简洁、通用的思想去考虑问题,而不是绑定在某种实现上。Redis根据不同的用途,会

看,那个35岁的程序员好像一条”狗“…

35岁并不是所有的程序员都成了架构师也不是所有的程序员都荣升技术总监更不是所有的程序员都转成了项目经理大部分35岁的程序员依旧是一线码农…..有的是真心喜欢,而更多的却是无奈。无论何种原因,35岁的程

微软张若非:搜索引擎和广告系统,那些你所不知的AI落地技术

这两年,被誉为“ 皇冠上的明珠”的自然语言处理领域发展愈发火热,成为了业内新宠,而 搜索和广告这两大老牌技术领域似乎已被大家遗忘。其实,这两大接地气的工程领域仍是各企业竞相抢夺的市场之一。近日,AI科

Go 注释的魔力

注释是记录和交流代码信息的宝贵工具。它们几乎是所有编程语言的共同特性,Go也不例外。然而,Go程序中的注释所能做的远不止给读者提供代码的信息。在本文中,我将重点介绍一些不太为人所知的用法,这些用法

HTML如何加脚注(注释)?

为了让别人一看就知道这段代码是做什么用的。正确的程序注释一般包括序言性注释和功能性注释。HTML脚注(注释):在HTML中,可以使用注释标签来添加脚注(注释)。注释标签用来在源文档中插入注释,注释不会

注释部分笔记

点击下方截图可插入当前视频播放画面,了解更多Mackdown语法可以点击上方?图标

.vue文件中如何写注释?

.vue文件中如何写注释?.vue文件中,每个代码块内,注释的时候,需要使用各自语言的注释语法去注释(HTML、CSS、JavaScript、Jade等)。在文件最顶部注释的时候用HTML的注释语法:

在2020年及未来,网络会变成什么样子?

日前,由思科全球发起的“Networking.Next联网未来”线上活动取得圆满成功。此次活动上,未来学家、网络专家和Cisco首席战略官分享了对网络未来发展的洞察,并重磅发布了思科《2020年全球网

敏捷方法适合什么样的团队?

敏捷开发适用于研发团队吗?距敏捷开发宣言的发布已经过去了将近二十年,现在很多团队都在思考“敏捷”的工作方式。营销团队想要尝试Sprint的方式来加速盈利,运营团队正在采用Scrum敏捷项目管理,而人力

vue..js 编写的简单音乐播放器

闲暇之余写了一个音乐小应用项目目录代码开始index.html 每日推荐音乐 {{music.title}} {{music.author}} n

本地读写的多活数据存储架构设计要义

本文由公众号EAWorld翻译发表,转载需注明出处。作者:ParasharBorkotoky 译者:白小白 原文:http://t.cn/AiKO0q4P原题:DesignConsiderations

看完知乎轮子哥的编程之路,我只想说,收下我的膝盖…

vczh,本名陈梓瀚,因知乎的个人信息介绍上写有“专业造轮子”,所以江湖人称“轮子哥”。vczh大学时代就在微软实习,毕业后即加入微软。开始时是在微软上海,后来进入北京的微软亚洲研究院。现已移居美国西

2019年-我的编程元年

12月,年末。我从事计算机软件维护工作3年,接触了不少的程序猿,认识了一些主流编程语言及其擅长领域。综合自己的实际情况,自己后期向往服务器运维领域或者网络安全工作,坚信能够通过1年的努力开发出自己的运

我的十年程序生涯:建模启航

我是一个有魄力的人!我是一个有魄力的人!请大家记住这句话,只有记住这句话,你才能明白我这十年间的选择。十年前我还是象牙塔中数学系的一名普通的大三学生。六年前我包里揣着3000块钱来北漂。三年前我在一家

阿里巴巴架构师:十问业务中台和我的答案

Photo@  ZachLucero文 |王思轩一切业务数据化,一切数据业务化。“中台”概念这几年非常火,特别是阿里、腾讯、百度、京东等互联网公司最近频繁的基于中台调整组织架构,把“中台”的热度又上升

2019我的入坑与填坑之旅

2019年是平平淡淡的一年,做为代码仔的我一直沉浸在无穷无尽的业务与需求当中,上半年做管理系统,下半年做小程序。唯一让我觉得做了点事的就是为公司输出了这两者的统一前端项目结构(都不能称之为架构)。上半