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

1,893 阅读4分钟

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

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

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

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

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

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

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


欢迎关注我的微信公众号「码农突围」,分享Python、Java、大数据、机器学习、人工智能等技术,关注码农技术提升•职场突围•思维跃迁,20万+码农成长充电第一站,陪有梦想的你一起成长。