你以为大厂的代码就不烂了?烂成一坨屎...

点击“开发者技术前线”,选择“星标🔝”

在看|星标|留言,  真爱

4e5731d5310b7ec52b2562b08d32593e.png

来自:开发者技术前线

作者:可可

最近有一位朋友进入梦寐以求的某大公司,入职没多久就和我抱怨了下,他们公司代码写的也不怎么好,连他一个菜鸡都能看出逻辑漏洞,但却没人改。

让他有点怀疑人生了。那么为什么有的大公司代码也会如此烂呢?

7c71e0db1074121fca6337afafa9629a.png

他发现团队高工的写得代码和开源的代码一对比后,公司的代码写非常臃肿,差距也非常大。甚至好多代码,写的都比较复杂。这哥们告诉我:一个好简单的功能要研究1-2天才能摸清代码怎么改。。最后写一行代码

3f23ab21eaf0c954471ba92f35930bbd.png

为什么大公司代码写的并不好?

ff5b1fda86b4630067569b8bd60ad6e1.png

历史遗留

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

63857fca9c8e52f6161e8fefdf3e8f1d.png

有一天来个架构师,也只能把垃圾代码装到垃圾箱,但垃圾代码还是垃圾代码。并没有改变。

06bc250a4eaa99c7e93cca7f04d54fe2.png

业务逻辑

业务逻辑复杂,一个系统和N多系统集成,一个业务对象上百个字段和几十种状态,一个流程几十个环节,自己业务依赖他人的,别人写的烂,自己也会被影响,反正写的烂无所谓了。看着别人集成的代码反正也不知道哪里不对劲,代码能跑就行,谁动谁背锅

5be53f85aafd5092286b757c24b40ada.png

然后扔一坨代码到本来的屎山上,那就更烂了。

39f90846183c146a9490317bf1ea288a.png

追求开源

3d49eef120931c861fe162c36583dd62.png

大公司技术团队基本考虑利好招人、技术宣传,一般都会做开源项目,开源项目发起后,基本要在短时间内交付一个可使用的版本,在还没有开源之前。通常项目会在内部团队进行接入实验,因此首先被恶心的就是公司自己内部的团队,项目Bug多,和已有的服务系统不兼容,各种接口适配、包装。最后开源项目对外开源了,但内部业务团队的遗留的接入层没人维护,甚至开源项目对外开源后,造轮子的团队完成KPI后,就抛弃不维护、或者作者已经离职去其他大公司继续造轮子了。

这样造成代码屎山有人堆,没人铲的局面,越来越臭

1deddae07e9be60eecca0dabb5e7e8ac.png

注重效率

大公司对项目要求迭代快,尤其在大公司的孵化项目的初创团队,人员配置不完善,并且高层们为了拿下市场份额,会给业务施加压力。所以要求短时间内版本要上线,这样一来,业务开发就没时间去关注质量,在这边copy,那边copy, 先上线再说,久而久之,后面的自己看到自己写的代码都会恶心死,本想改下?改了能有KPI?算了反正当前程序能跑,懒得改。

36d4d387afc02585469ec4265ffd8f04.png

1e10ad657cabbfdbbaed5e82d7d4d0e9.png

技术栈不统一

大公司技术团队由非常多的业务部门组成,不同部门之间技术栈未必全部统一,每个业务部门一把手为了自己的一亩三分地,害怕自己团队被其他部门吃掉,稳住技术护城河,通常也不愿意接入其他部门开发的轮子,甚至还要自己造轮子后恶意竞争,于是形成了不同部门有自己的技术栈,有的后端用Java, 有的用go。这样一来,在部门间协作时会遇到系统无法互相调用,两边的开发人员又会开始疯狂开发适配层接口,在本来就不怎么好的代码上又打补丁,让这座代码屎山堆地更加高了。一旦某个部门被裁或者合并,这座代码屎山会越来越薰,臭是晕留下的对方部门的技术同事。

最后留言说说你遇到的烂代码,并且它是怎么样的?

— 完 —
点这里👇关注我,记得标星呀~
前线推出学习交流一定要备注:研究/工作方向+地点+学校/公司+昵称(如JAVA+上海
扫码加小编微信,进群和大佬们零距离

END

后台回复“电子书” “资料” 领取一份干货,数百面试手册等

历史推荐

蚂蚁金服开源了一款研发框架!还是增强版的

11 年北漂老码农被卷跑了!他道出了离开的真相!

阿里巴巴常用的12个开发工具

好文点个在看吧!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 《代码随想录知识星球精华-大厂面试八股文v1.1.pdf》是一份介绍八股文的面试指南,针对大厂面试常见题型进行分类,以及给出相应的解答思路。这份资料具有很高的参考价值,在为即将面试的求职者提供指引的同时,也可以让读者对八股文的思维框架和策略有更好的了解。 这份资料主要包括面试题目的主题分类,如动态规划、字符串、树等,每个分类下又相应给出了典型的问题,如“最长公共子序列”、“二叉树的层次遍历”等等。对于每个问题,都给出了具体的思路指导和代码模板,许多题目给出了多种不同的解法,这些解法包括时间复杂度和空间复杂度的优化。 这份资料对于求职者来说,意义重大。在面试中,对于某些问题我们可能没有完全解决,但如果有了这份资料,我们在面试中也会有一个清晰的思考框架和即时可用的代码模板。此外,这份资料同样适用于对算法和数据结构感兴趣的开发者和工程师,对于自学和提高都有帮助。 总之,《代码随想录知识星球精华-大厂面试八股文v1.1.pdf》是一个非常实用的参考材料,它是广大求职者和程序员不可或缺的工具,值得一读。 ### 回答2: 《代码随想录知识星球精华-大厂面试八股文v1.1.pdf》是一份由知名博主“代码随想”的知识星球推出的热门资料。该资料主要介绍了大厂面试中常见的八股文,包括但不限于动态规划、双指针、贪心算法、字符串操作等。 通过学习该资料,可以系统地学习和掌握各种常见的算法和数据结构,有助于提高自己的代码能力和面试竞争力。此外,资料还给出了一些实际的面试题目例子,对于准备去大厂面试的人来说,是一份非常实用的资料。 当然,要想真正掌握这些算法和数据结构,需要自己的不断练习和实践。只有在解决实际问题的过程中,才能真正体会到这些算法和数据结构的作用和优越性。 总之,该资料对于想要深入了解算法和数据结构、提高面试竞争力的人来说是一份值得推荐的优秀资料。 ### 回答3: 代码随想录知识星球精华-大厂面试八股文v1.1.pdf是一份关于大厂面试八股文的精华资料,它收集整理了各个大厂面试中常见的八股文题目和解题思路,对于准备求职或者升职的程序员来说是一份非常有价值的资料。 该资料中涵盖了常见的算法、数据结构、操作系统、计算机网络、数据库、设计模式等知识点,每个知识点都有详尽的讲解和相应的面试题目,可以帮助面试者全面了解每个知识点的考察方向和难点。 此外,该资料还提供了八股文的解题思路和解题方法,强调了实战经验和面试技巧,对于提高面试的成功率也是非常有帮助的。 总之,代码随想录知识星球精华-大厂面试八股文v1.1.pdf是一份非常实用的面试资料,它帮助面试者深入了解各个知识点的考察方向和难点,提高了应对面试的能力和成功率,对于准备求职或者升职的程序员来说是一份不可或缺的资料。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值