为什么有的大公司代码也很烂?

最近一个朋友进入梦寐以求的大公司,和我抱怨了下,他们大公司代码写的也不怎么好,连他一个菜鸡都能看出逻辑漏洞,都没人改。让他有点怀疑人生了。那么为什么有的大公司代码也会如此烂呢?

很多人第一个给的原因就是:历史原因。可能这是最重要的点,如果是老项目,几乎每个人都是一来接手一个项目,如果之前维护这个项目的人,水平比较高,代码行云流水,代码规范,逻辑严谨度都很高,恭喜你,你获取一个学习优秀代码的成长起点。对于你是幸运的,鱼哥之前接触过这样的项目,真是写的好,巧妙的设计模式,逻辑清晰,和读系统源码一样。但是你没那么幸运,接手一个水平不是很高的团队维护的代码,那你就有事情做了,重新写,还是重构。烂代码跟一坨屎一样,很多时候就是和一坨屎共处千万别深挖,说不定把哪里挖塌了把你埋了,扔一坨代码到屎山上,达到自己目的,能跑就行了,你还要搞清楚山上的屎哪一坨是谁拉的,拉的人吃了什么,就没什么意思了。能在超级大的屎山上扔一坨代码进去,把自己的事干了,也是本事真的,毕竟谁没维护过烂代码。复杂度足够大,都会成为屎山的,什么设计模式都没什么鸟用。这时候可以花时间加班来重写吧,不然你干不下去的,等着你的要么走人。

大公司业务逻辑复杂这点很容易理解,一个系统和N多系统集成,一个业务对象上百个字段和几十种状态,一个流程几十个环节。大公司人员变动大很多开发的还是外包人员,外包人员的流动性可想而知。技术更新换代代价太大。但没有人敢去推倒重来,单单修改后的测试工作量就不可小觑。而且改好了无功(不出绩效),改出问题了谁都负责不起,所以只要代码能工作,后面的开发都是在上面修修补补,导致整体代码千疮百孔惨不忍睹。技术leader只关注功能,不关注代码很多leader其实根本不是写代码写上去的,而是直接就去做了“架构师”,说实话他自己都写不好代码,这也是很主要的一个原因。

还有,领导也不会关心你什么技术实现,不会关心你是10行代码还是1000行代码。所以,这种背景下,要把代码写得好到好像一个人写的一样人能看懂,还是很难的。老代码只要没有毛病,没人会去优化装饰,没有人会去干这些吃力不讨好的工作,代码重构/代码评审很多时候是流于形式,只是说说而已。有些大项目每年的代码量以50%速度增加,真是好大的负资产啊!

那有人说,大公司不是每个人技术都很强的么?有这个想法的人,你就大错特错了,大公司每年都会校招很多应届生,有些应届生在短短几年后成才起来,跑路了,有些没有成长起来的,还是要持续写代码,那么自然就有隐患了,如果不是很精干的工程师来负责review代码的话。就会变成一个一坨屎坑。面试时,招大牛是需要价钱的,很多公司由于成本原因,并不会这么去做。

一个团队,在任何时候,都应该分辨得出: 分辨什么样的烂是真烂,什么样的烂是业务复杂; 分辨不出,就不要去修改。

也应该积极寻求:如果是业务复杂,能不能更简化更抽象一些;如果是烂,能不能在有限的成本中改好一些。

原文发布于微信公众号 - 何俊林(DriodDeveloper)

原文发表时间:2018-10-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java社区

加入我们,终身免费获取本公众号所有视频资源

24940
来自专栏SDNLAB

KDDI研究所成功实现多种不同光传输网络的互连

KDDI研究所、三菱电机、日本国立研究开发法人、日本信息通信研究机构(NICT)、日本庆应义塾大学、富士通、Ixia Communications公司、日本东阳...

27950
来自专栏知晓程序

星巴克弱爆了!这款小程序,教你如何优雅喝咖啡

今天,知晓程序(微信号 zxcx0101)给你推荐的「咖啡小 Q」小程序,就能帮你细致地记录下你独特的味蕾感受。

12100
来自专栏云市场·精选汇

竞争升级,小程序成巨头标配!

9月7日,QQ在最新安卓版本上线了小程序,用户可通过聊天列表界面右上角的“+”号看到 QQ 小程序入口。不久前,阿里在支付宝上也先后加速了小程序进程。

5500
来自专栏数据库新发现

拉里·埃里森亲自支招,数据库自动化之后,DBA何去何从?

作者:eygle |English 【转载时请标明出处和作者信息】|【恩墨学院 OCM培训传DBA成功之道】 链接:http://www.eygle.com...

19330
来自专栏我是攻城师

关于未来编程发展趋势的九大预测

44060
来自专栏互联网杂技

40岁+,你还有编程吗?

美国劳动力的中值年龄是42岁,而StackOverflow的一项有关年龄的调查表明,40岁之后的开发人员只占开发人员总数的13%。那么其他人到哪里去了?他们被解...

42550
来自专栏码洞

老钱的处女作《深入理解RPC》正式上线了

RPC(Remote Procedure Call)服务,也即远程过程调用,在互联网企业技术架构中占据了举足轻重的地位,尤其在当下微服务化逐步成为大中型分布式系...

24310
来自专栏新智元

谷歌旅游AI小助手: 不只订酒店,想去哪玩、爱吃什么TA都知道!

在奢华旅游的世界里,目前压倒性的两个超能力是:个性化和直觉。酒店、应用程序或旅游公司对用户的需求和愿望做出的反应越好——最好是在用户的需求和愿望出现之前就做出预...

12830
来自专栏闰土大叔

在帝都做web全栈是种怎样的体验?

都说我经常在公众号里给大家喝鸡汤还不带勺子,也有些童鞋经常在微信上私信我有什么好的前端学习路线推荐给他的,那么今天我特意整理了一些学习路线分享给大家,希望大家一...

13700

扫码关注云+社区

领取腾讯云代金券