大牛程序员都不敢乱动的祖传代码,动一行,修半年

相信很多已经参加工作的程序员们都会遇到下面这样子的代码注释://add by xxxx 201x-x-x: 这是一段神奇的代码。。反正这么写就对了。一般情况下这种类型的代码就是我们所说的祖传代码了。像这种代码,程序员们最好不要乱动,尤其是一些小新们,不要觉得这段代码看着好烂就想着去优化一下。因为你不会知道乱动这些祖传代码会有什么样的后果?

  程序员甲:

  刚入职的时候,熟悉项目代码,经常碰到各种奇形怪状的代码,有且不限于:各种进不去的分支,各种奇葩逻辑,各种风格不统一的编码风格,各种我也形容不上来但是看着很蛋疼的代码。。。每当问起老员工这里为什么这样实现时,他都会漏出一副深邃的表情:别问我,我来时就这样了,历史遗留问题。。。

  至于如何对待,我举个例子。我们代码中有一行代码,在一个奇奇怪怪的地方设了个奇奇怪怪的标志量,然后后面一个注释:

  // 位置不能动,不然时序就都乱了。

  作为一个萌新我当然乖乖滴没去动它,直到有一期新需求,这个标志量的位置出现了点小问题,然后我就尝试性地把这句话往后挪了一小下,然后程序从头错到脚指甲。在体会到前辈的用心良苦后,我又在那个注释下面加了一句:经验证,真的不能动。。。

  阿里程序员乙:

  加入阿里后见过太多太多历史遗留代码了。

  看了后基本都是一脸蒙蔽,特别是首页跟详情的代码。

  这代码什么意思?为什么要这么写?它想做什么?这几个判断干啥的?这业务场景是啥?哈?????。。。。。。。。

  刚进阿里的时候动手改过点老代码,自己测的好好的,一到集成到处crash可把我吓的,现在我根本不敢动了。。。

  就那样当祖宗供着吧。

  程序员丙:

  你以为看到祖传代码已经很悲催,但是有的代码八代单传更悲催,你以为八代单传很悲催,但是发现有的代码断了香火,你以为断了香火的代码最悲催,但是你发现了无字天书。。。

  当你只删了一行代码时,可能会发生下面这种情况

  还有一些心机程序员丁:

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

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

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

  其实对于此类祖传代码,我们的对待态度要分2种情况:

  1、如果是已上线的项目:尽量以少动为主——在编程中,优化是万恶之源……如果实在是需要改动,则需要通读上下文搞清楚该段代码对应的边界条件,尽量封装起来。并且同时做好热更新预案(保证如果此段代码出问题的情况下,能够通过热更新切换代码入口)

  2、如果是开发中、未上线的项目:通读上下文,如果祖传代码逻辑很难理解,务必重写+测试。所谓勿在浮垒筑高台不外如是,趁着项目没上线吃透了,省的为以后维护此处埋下隐患。

  大家遇到过这种祖传代码吗?对于祖传代码大家又是什么样的态度呢?欢迎在评论区留言分享

 
posted @ 2019-07-19 23:33  经管时评  阅读(852)  评论(0编辑  收藏  举报