改别人的代码是一种怎么样的体验

程序猿的终极噩梦应该是祖传代码了吧。

很多码农小萌新们,都经历过这样的时刻吧。矜矜业业检查前人代码时,发现了明显到觉得智障的漏洞,认真的你准备大刀阔斧地修改,但你的老司机同事可能会劝你最好不要动,并露出意味深长的表情。

因为他们知道,你遇到了祖传代码。

什么是祖传代码

祖传代码(legacy code)就字面意思而言,就是前人程序猿给你留的“宝藏”代码。这些代码都存在着问题,但你要么就无从下手无法修改,要么就一改出大问题,这就是为什么这些宝藏会存在这么久流传到你的手上。

比如,你可能会遇到这样的代码。

//add by xxxx 201x-x-x: 这是一段神奇的代码。。反正这么写就对了

“曾经我一直不信还有能让人辞职的代码,

直到我遇到了祖传代码。”

几乎每个公司都存在着祖传代码

每家公司都会有那么些“历史遗留问题”。亚马逊的工程师形容说他们的代码:“一座很大的屎山,你见过的最大的山,每次你想修正一个bug,你的工作就是爬到屎山的正中心去”。

有网友曾发现了微软的祖传代码。

看过几年Windows内核的代码,也就只是看看,不能改。有时候看到一些奇怪的逻辑,不要慌张,这里面一定有一个很长的故事。

不过万事没有绝对。

有一次和同事一起调试一个蓝屏,看到一段内核内存管理的代码,有一个地方没看懂,貌似for循环多循环了一次。恩,这一定是我们的理解能力太差了。然后我们仔细看了一下午,终于想出了几个貌似合理的解释。为了确认,我们鼓起勇气写信给当时Windows内存管理的大牛Landy(他现在已经是tech fellow了)询问了此事。

结果人家很快回复了我们。”It is a bug since day 1. I have just checked in a fix.” 留下我们俩一脸懵逼。

就这样一个从NT开始藏了十多年的bug被两个小白给发现了。

ps. 这个bug没有什么显著影响,只是内核态内存分配性能略微受损。

——by知乎@Tim Chen

有些祖传代码,你一动, 我们就再也回不去了

我们组有一个著名的6000行后端JS,没有面向对象封装,纯靠函数。其中有好几个上千行的函数,带了二十多个形参,几个标志位,分别有十几个数字状态。注释?没有的。

每一个接手过这段代码的人都会不约而同的发一条朋友圈以示佩服。

但神奇的是,代码在执行上基本没太多的错。

直到几个月前,一个大牛在走之前把这段代码全部重写了一遍,留下了至今都没有改完的bug。

——by 网友

有时候,祖传代码是可以用来创造岗位的
刚来到这家公司的时候,看那些老旧代码觉得逻辑为何这么绕,本来是一个很直接的事,非要绕着圈子写,没必要共用一个函数还非要实现一个公共函数,结果该公共函数超级复杂。

后来发现负责的模块比较稳定的人都被fire了,明白了叔叔大爷们的良苦用心。

在某些国家的某些行业里,保住饭碗是多么不易啊!

——知乎网友 @砖头

一个祖传代码是如何代代相传的

面对祖传代码,每个接手的程序猿都会添点新料,但没有谁有勇气真的去解决,毕竟谁也不想给自己挖坑。

很多行业是前人栽树后人乘凉的,不过程序猿很多时候却是前人挖坑,后人填坑的

希望猿界,大家能多给后人留条活路。

其实对于新员工,特别是刚进入职场的新人。进入到公司的时候肯定会接触到老项目,老代码。如果你没遇到,那么就是新公司,要么就是新项目!接触到老项目的新员工或新职场人,看到老项目的代码时,总是有想改动的冲动!!!跟当年我进入公司一样一样滴,不过你要是重构的话,劝你少做这样的事!

  • 第一:会花费大量的时间。而且你手头也有任务,所以会消耗你大量的精力!
  • 第二:重构还可能带来很多新的bug,老的项目已经打了几次补丁,已经很“稳健”了!你改好了,没人表扬,要是改出线上问题,那可是要绩效处理的!

所以 劝年轻人一定要三思而后行!!!!不要只看到代码糟糕,可能上一个人没办法那样写,因为是上上个人留下来的代码造成不好改!!!

同样的,你看别人代码很垃圾,别人看你写的其实也不会觉得好到哪里去。除非你真的本事过硬。比周围的同事都要高出一大截的技术!!!否则你也不会好到哪里去

本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/phone/30774.html

(0)
上一篇 2023-06-06 12:49
下一篇 2023-06-06 12:58

相关推荐

  • 为什么世界上有手机

    就像问:为什么世界上有火车,有汽车,有人类?好像意义不大,但是如果深层地思考一下,似乎有无穷无尽的答案,而且没有准确的,具体的,符合逻辑的答案。 每当我们问,为什么有…… ?为什么…

    手机教程 2023-03-29
  • 如何截取片段(如何截取片段教程)

    在使用视频素材时,常常需要将素材中不需要的片段去除。这时,我们就需要对视频进行截取,但是很多小伙伴并不知道具体该如何操作。那么,下面就一起来看看怎么在手机上截取视频片段吧! 第一步…

    2023-01-08
  • 中国移动取消全国漫游了吗

    “网络极客”,全新视角、全新思路,伴你遨游神奇的科技世界。 中国移动通讯集团有限公司于今日发布了取消流量“漫游”费的公告。 从2018年7月1日起,中国移动取消流量“漫游”费,新老…

    2023-02-12
  • iphonexs max怎么调试才是最佳

    iphonexsmax作为苹果公司2018年发布了一款机型。当时上万元的价格也属实有点贵。 iphonexsmax该款手机信号方面表现的非常不尽人意,有时候在电梯里几乎是没信号的表…

    2022-12-25
  • 怎么定位苹果手机位置

    你好,我是萤火与我们。我是不请自来的,都是我可以解答!用苹果手机的朋友大家都知道,每一部iPhone手机都会有一个自己的ID(自己设置的),只有设置好了苹果ID我们才能正常使用iP…

    2023-03-19
  • 手机恢复出厂设置后怎么恢复数据

    在恢复出厂设置之前要帮数据备份好 恢复出厂设置后是不能恢复 1、首先来说如果点击了“恢复出厂设置”朋友们完全不用惊慌,因为手机上的数据还是能够找回来的。在网上找一款免费的手机恢复数…

    手机教程 2023-04-27
  • 支付宝怎样添加好友转账,支付宝添加好友口令

    支付宝作为移动支付工具,同时它也兼具有社交及娱乐功能,因此支付宝也可以添加好友,成立朋友圈! 那么怎能添加好友呢?打开支付宝APP,点击右上角“十”,就会看到支付宝提供的添加朋友的…

    2023-03-21
  • 微信如何更换提示信息声

    首先得区分手机是Iphone还是安卓! 安卓看这里: 先打开微信的设置——>新消息提醒——>声音——>新消息提示音。 Iphone看这里: 苹果系统封装性比较强,所以最主要是在手机…

    2023-03-10
  • 手机是现代人必备的通讯工具之一

    智能手机是现代社会离不开的通信工具,你玩手机熟练它们的功能吗? ●如今一部分年轻人喜欢在头条上提出一些让人匪夷所思的问题,专门糊弄我们这些文化程度仅仅只读初中都没有读完的人。 ●既…

    2023-05-14
  • 植物大战僵尸2,植物大战僵尸国际版

    《植物大战僵尸》(外文名:Plants vs. Zombies)是一款益智策略类塔防单机游戏,由PopCap Games开发,于2009年5月5日发售。该游戏支持Windows、M…

    2022-12-22