专栏首页程序员的知识天地互联网大公司还在采用过时的技术,为什么?

互联网大公司还在采用过时的技术,为什么?

许多刚毕业的程序员朋友,都有一个执念,进想要那种规模大一点一的公司,上市的,业内有名的最好。

为什么大家都想去大公司?

因为很多人觉得,公司大一点,正规一点。开发技术应该不错,应该与时俱进,流程应该会规范一些。说到这里,依然有这种想法的朋友,请握个爪。

然而,当他刷完什么“ 编写可读代码的艺术”,“ 代码整洁之道” ,废了好大一番功夫进去以后,却发现完全和自己想的不一样。他发现他所在的大公司:

(1)代码混乱

I,比如一个发送的Http 请求的的Util 类,竟然出现了三四种。开发人员甲封装了一种,开发人员乙封装了一种,公司框架自带了一种。

II,到处充斥着Ctrl + C键和Ctrl + V键的味道,更有甚者,居然连作者都不改,原样复制过去。

三,日志风格千奇百怪,缺乏统一规范。每个人都有一套自己的日志风格。重点是,一些关键步骤,居然不写日志。

IV,一些几千行的类,关键步骤不加注释,一个方法几十个参数都是随处可见。

2)开发流程混乱

我,一个项目组IDE 和JDK 都不统一,比如用理念,日食,MyEclipse中的都有。然而重点是,把思想,日食独有的配置文件都上传到了服务器。

二,完全没有文档。比如要改一个需求了,OK,去调试代码,根据断点去反推原来的逻辑是怎么实现的。反正不改出问题就行。

三,程序员白天大部分时间在处理BUG,以一种混日子的态度在工作。反正能搞得定新需求,搞得定功能测试,项目能如期上线就行。至于代码有多搓,无所谓!

(3)技术落后

我,还在用四五年前的技术,例如还在JSP 里头写大量的JAVA 代码进行开发等。

二,架构上很多方面欠考虑。比如,采用了消息队列,却完全不做持久化处理,完全不担心数据丢失的问题,也没做可靠性的保证。服务之间传送数据,重要信息完全不加密,明文直接传。

三,性能调优就是拍脑袋做的

以上种种,大家如果深有感触,请再次握个爪。那么,为什么会这样呢?

缘由

人员层次

但凡在大厂工作几年的老员工,有没有这样一个体会,的身边牛逼老员工基本都跑了,来剩下的员工基本都是比较平庸的。

大部分人在工作中,其实都处在一种重复劳动的状态,就是也。所谓的拧螺丝,工作,技术水平得不到提高那么在这种工作性质之下,会诞生两类人:

(1)平庸的人

这类人在工作中满足于能完成需求即可,对代码的美丑并不关心。正所谓

码不在烂,能跑就行。

当然,这类人并不是缺乏提升自己技术的能力,而是由于惰性,没有明确的规划,缺乏提升技能的意识,导致时光匆匆流走,想要跳槽却没地方收留,一不小心,这类人就成为了老员工。说到这里,赶紧回忆一下自己,不是的英文成天拿什么没时间当理由,然后明日复明日,小心成为老员工。

另外,大公司基本不会裁人,而手上的技术水平已经能应付工作。就算努力学了一堆新技术,也没有用武之地,于是这类人就能安然自得的继续过下去。

大家可以对比一下你身边的同事,一个是自毕业的时候就在这家公司熬了十年的,一个是十年间在三四家公司呆过的。请问哪一个水平更高呢?

(2)牛逼的人

这类人在工作中,一般有着较强的责任心,且对代码有着很高的追求,对问题有着独特的见解,回去也会不断的学习,提升自己。然而这类人的所学,通常没有发挥的空间。比如,可能出现下面的对话

程序员答: “老王,你这个地方不能这么写,会出现XXX的BUG的。”

老王: “你懂什么,公司创立的时候,我就在这个项目组了,就该这么写。”

于是这类人的所学,并没有啥发挥空间。就算有发挥的空间,过不了多久,他也会离职。因为在IT圈,只有通过跳槽才能得到高薪。这点,我们必须明白,大厂都有一套严格的薪水涨幅制度,并不会因为你做出了特别牛逼的贡献,给你月薪突然翻了一倍。而且,如果给你涨了薪水,你公司的其他人呢,他们涨还是不涨?所以,很多公司宁愿给一个新员工高薪,却不愿意给老员工提工资,就是这个道理。

因此,这类牛逼的人觉得公司现有的薪资匹配不上自己的能力后,就会跑路的。大家在IT圈会听到一个说法

乙级公司就是给一个级公司培养人才的,A级公司就是给小号级公司培养人才的。

所以,当你发现自己身边没有牛逼的大神,不要惊讶,因为大神都跑路了。

重构成本

当一个系统的代码,成为祖传代码以后,其业务规模和复杂程度,都远远超乎你的想象。我们在开发新需求的时候,都是在原有基础上小心翼翼的修补。比如,可能出现如下对话

老王: “谁让你乱改这个模块代码的,知不知道,你这么改导致了XX模块不能用了。”

程序员答:“我....只是想让代码看起来更好看而已。”

老王: “你以为我不知道这么写很挫么,乱改出问题了,你抗么赶紧改回去。”

其实你能看到的问题,老员工看的比你更清楚,也许人家比你还明白应该要如何解决。但是为什么老员工不去做呢?因为,老员工明白,技术上的事情没有100%肯定不出事的。出了事了,谁来背?

再打一个比方,

你一个月薪水10K,你花了5个月的时间,提升了一下10%性能。站在你的角度,你高兴了。但是站在公司的角度,卧槽,我亏了啊。我还不如花20K再买一台机器。在你身上投入了50K,还要担心你会不会跑路。

所以,从重构成本上来看,又提高了。

另外,很多中层的领导,基本都是守着自己的一亩三分地,不求无功,但求无过。所谓祖传代码的出现,其实是整个部门的责任。你一个人重构的开开心心了,后续就可能整个部门一起加班,谁去做这种吃力不讨好的事情。而且最重要的是,在技术领先者水平和开发流程没有改变的情况下,你的新代码过不了几个月又会变成所谓的祖传代码。

当然,但是这并不意味着,这些技术项目没救了。比如,某一天你的对手,出了个吊打你们项目的产品。这种时候,只能大改了。反正搏一搏,没准还有出路呢。

公司性质

其实,的大部分公司都是重视业务价值,而不到看技术价值。

有些大厂存在一个很有趣的现象,产品经理的薪资比技术人员的薪资还高。因为他们觉得,无外乎是增删改嘛,找点应届生就能作了,没必要花大价钱请牛逼的人来写。

于是呢,很多中层是所谓的没写过代码的业务员,又或者是没撸过一行的代码的产品经理,然后就很搞笑了,会出现如下情形

产品经理: “这个功能,你们看一下要多久才能实现。”

研发人员: “大概下个月十五左右吧。”

产品经理: “!什么要这么久就初一,下个月初一,一定要上。”

研发人员: “我!!!!这个功能XX地方比较复杂,需要点时间”。

产品经理:“你当我傻么,就是如果..可以实现的,怎么要这么久!”

研发人员: “我!”

产品经理: “就下个月初一了,做不出来,公司的损失你背还是我背”

于是呢,在重视业务价值的公司,无论你多牛逼,你乃至的英文码神下凡,你写出的代码也是不堪入目。说到这里,你可能就会辩解道

“我们可以在前期做好设计和规划后,再开始开发啊,这样就能减少出现渣渣代码的可能性。”

确实,我承认这么做可以减少出现烂代码的可能性。然而,大家都知道,需求是一个善变的小姑娘,一天一个样。你再牛逼的设计,也顶不住需求的频繁变更啊。

其实,在某些时候,没有必要把代码当成一种艺术品,应该要能够接受适当程度的瑕疵。只要到点可以跑,可以追踪BUG,基本能交差就成。我相信,给任何一个人足够的时间,都能把代码变成一个艺术品,但是这有什么用。等你弄好,黄花菜都凉了。迅速上线,能挣到钱才是重点啊,才是你的KPI体现啊。很多优秀的代码,是给了重构的时间的,大牛们都是一边写一边重构的。如果不给时间,大牛们也写不出优秀的代码的。换句话说,你完全可以后面挣到钱以后,再把原来的架构推导重来。

我们要明白,写代码是为了挣钱,而不是为了雕琢一个所谓的艺术品。如果将写优秀代码比动词}一种情怀,请问

情怀重要,还是金钱重要?情怀能让你买房么。

OK,弄清楚主次,挣钱才是硬道理。

审视自己

这个地方,我希望大家好好审视一下自己,因为重点不是

大公司为什么还在采用过时的技术

而是

你为什么只能进采用过时技术的公司

其实,每一个公司都有一个所谓的标杆部门,这个部门的技术通常是拿的出手的。可是,这样的部门,通常是最难进的。所以啊,你要去拿的出手的部门,好好努力吧,少年们。

希望大家看完以后,能有所收获。工作中,不断的提升自己,少一些抱怨吧。

在这里给大家分享一下,我是一名5年前端工程师,自己根据这几年从事前端的经验,整理一套系统的前端教程(基础+案例+工具),跟大家分享下我的成果,进群:731+771+211,群里不停更新最新的教程和学习方法,有想学习网络前端的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴可以加入学习。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从代码中就可以看出一个程序员的性格?

    之前有一个领导说过,自己写的代码就像自己的孩子,要对他负责,曾经一度认为他说的是真理,后来才发现,实际工作中是特别的复杂的,自己的“孩子”到最后还是会交给其他人...

    一墨编程学习
  • 年薪30w+的软件开发工程师需要掌握的技能

    现在,有这样一种主流观念,压垮了很多新手软件开发者,那就是你需要学习很多东西才能成为软件开发人员,并且很多人不知道从哪里开始起步。如今新手进入软件开发的程序员月...

    一墨编程学习
  • 维护Python代码的5种工具

    随着软件项目进入“维护模式”,对可读性和编码标准的要求很容易落空(甚至从一开始就没有建立过那些标准)。然而,在代码库中保持一致的代码风格和测试标准能够显著减轻维...

    一墨编程学习
  • 2018-08-24 大公司为什么还在采用过时的技术!

    https://mp.weixin.qq.com/s/-1VPme1Eb_ItA4ej6_Ghsw

    Albert陈凯
  • 写了 100 万行代码的程序员身上发生了什么故事

    看完之后就头皮一阵发麻,让我写一万行的代码?!are you kidding me?(黑人问号脸)我估计写到20万的时候就会突然有个疑问—-“咦?我的头发呢?”

    哲洛不闹
  • 人工智能在软件开发领域应用现状

    江湖上一直流传着这样的传闻:“程序员们很快就要失业了,因为人工智能马上就能写出完美的代码了”。人工智能是以软件形式存在的,编写了这些强大软件的码农们,如果被自己...

    yuanyi928
  • 快速学习-如何学习一门新语言

    cwl_java
  • Spring+SpringMVC+MyBatis+easyUI整合优化篇(八)代码优化整理小记及个人吐槽

    前言 这两天也一直在纠结这一篇文章该写什么东西,前面临时加的两篇文章就有些打乱了整体节奏,这一篇又想去写一下代码层面优化的事情,可是也不太能抓住重要的点,不太确...

    我是十三
  • 为什么大公司还在用过时的技术?

    本文出自一朋友给我的提问,于是博主呕心沥血给他花式洗脑了几个小时。忽然发现,应该还有许多朋友有同样的疑问。所以整理成文。

    Java技术栈
  • 聊聊clean code

    clean code,顾名思义就是整洁的代码,或者说清晰、漂亮的代码,相信大多数工程师都希望自己能写出这样的代码。 也许这是个千人千面的话题,每个工程师都有自己...

    美团技术团队

扫码关注云+社区

领取腾讯云代金券