咨询热线:13706262158
您当前的位置: 首页 > 新闻中心 > 行业动态
  NEWS

新闻中心

行业动态

龙8long8,程序员写代码变量命名随意代码不传代码库难道是防御性编程?

发布时间: 2024-08-03 次浏览

  快被公司的一个程序员逼疯了!在他身上发生的事情我觉得是现象级的,能够充分表现出一部分程序员平时的工作方式以及立场,我有时候都感觉他对于工作比较偏执,但是这个“偏执”不是说他是那种学究型的程序员,而是他的很多想法做法其实都已经跑偏了!偏离了正常人的思考方式!那么他到底做了什么事让我对他那么有意见呢?这个程序员下称老赵。

  首先就是老赵特别喜欢复制粘贴,这本来其实也无可厚非,毕竟大部分程序员平时的工作内容就是“CURD”和复制粘贴!

  老赵有几段代码到现在我一直都记不住,因为他的函数名写得非常简单,比如说F(),乍一看到这个函数名您知道这个函数是干嘛的吗?

  要说他非要这么起名字的话,本身也不妨碍代码执行,但是好歹写个注释呀,但是他又特别不喜欢写注释。于是,他的代码中经常会出现一大堆只有一两个字符的变量名,有些名字我挠破头还能理解出来,但是,有些我是怎么也想不出来到底是啥意思!

  比如说,老赵有段代码的函数名是这么起的,叫作“ReceiveUB”,Receive翻译起来很简单,但是“UB”是啥玩意?

  看完函数内容我才明白,这个函数是用户登录的Session过期后,用来回调的,回调方式就是打开浏览器并跳到用户登录页,所以,“UB”的意思应该是“UserBrower”,而且,这还只是我猜的,因为这是最合理的解释了!

  “UB”还能勉勉强强解释,但是在他代码中有个他经常喜欢起的变量名,叫“TL”的,这个我就真的受不了了!

  同样叫“TL”,我见过类型为List的变量叫“TL”,也见过类型为List的变量叫“TL”,开始龙8long8,我理解不了他为什么这么起,后来我才发现规律,只要是集合(List)变量,他一般都会起名叫“TL”!

  好好好,你这么起名字是吧!如果这么起名字可以的话,以后我给所有变量都起名叫“obj”是不是也没问题呢?因为“万物皆object”嘛!但意义是啥?

  上次我看到这种乱七八糟的起名字的方式,还是有一次我反编译一套代码看到的,因为只有反编译后的代码才会出现那种毫无意义的变量命名。

  后来我估计“F()”代表的其实就是Function的意思,他代码的风格就是这样,今天即使明白了每个变量、方法、类型名称的意思,明天我照样不会记得它们的具体作用!

  关键是,有时候有些老赵设计的业务逻辑不懂,我们就会去问老赵,老赵则会直接跟我们说:“去看代码啊,我代码写得很清楚!”

  除了这个,老赵还有一个巨大的问题,就是他自己写了一些私有工具,但是这些工具在我们公司的每个项目里面都有使用到,甚至耦合了公司的业务逻辑!

  于是,我就在公司几个程序员里面一个一个去问,想知道是不是哪个程序员写完忘传了!结果,到了老赵这里,老赵说这是他写的,但是,他又跟我解释说,这个工具包里面没多少东西,他就写了一个公共函数在里面。

  既然老赵不愿意,我也不好勉强,于是我就想着,既然他不愿意把这个工具包上传到公司代码库,那我只能把引用这个工具包的所有函数都重新写一遍。

  为了方便,我直接反编译了老赵写的工具包,结果不看不知道,一看之下我才知道,这个工具包压根不像老赵所说的只有几个函数而已,这里面光是代码文件就有几十个,几乎每个文件里面的内容都和我们公司的现有代码业务高度耦合。

  本来老赵写的东西我是很少关心的(主要也是看不懂),但是,经过这个事情,我把几个我经常见到的几个函数在我们代码库里面全局搜索了下,匹配结果竟然有几百次之多!粗略估计,老赵写的这个工具包,已经跟我们公司的业务密不可分了!

  这是多么可怕的事情,一想之下,细思极恐,如果老赵离职了,那么一旦他这个工具包出现了问题,那么光修改代码都够我们剩下的程序员受得了!

  而且,因为老赵这个工具包我们并没有源码,万一他在离职之前或者是现在已经在代码内写了“代码炸弹”之类的东西,后果是不堪设想的!

  但是,我不好猜忌老赵这么说的具体目的,龙8游戏官方进入咱也不能把人想得那么坏,但是,我很少见到程序员有把自己写的代码故意藏着掖着不上传到公司代码库的,龙8游戏官方进入因为如果我们老板是个懂技术的,那是绝对不会允许老赵这么干的!

 
龙8-long8唯一官方网站

扫一扫关注我们

热线电话:13706262158  公司地址:昆山市玉山镇柏庐中路406号
Copyright © 2012-2018 龙8公司 版权所有   渝ICP备17006236号-1