码农杂谈第94 掐架

小A经过面试,入职了M公司的高级java工程师的职位,来了公司之后,
主管分给他一个重构的活,他看了S系统之后,感觉代码烂得一塌糊涂,毫无
章法可言,但是据身边的同事说,这个系统经历了N波开发人员了,小C
偷偷告诉他,他来的时候,就是这一堆代码,啥文档都没有,都是自己去
运行调试加琢磨的,然后把自己整理的小文档交给了小A,小A硬着头皮
开始重构了,说是重构,其实就是在保证原逻辑不变的情况下,把该放的
代码放到该放的地方,比如控制层,只放跳转相关的,逻辑呢,都严格
按照接口编程,先定义接口再定义实现类,这是java开发最基本的套路了,
然后经过一番努力,S项目的代码终于有了大的改观,但是问题来了,在验证
既定功能的时候,遇到一个问题,那就是两个线程池在配合完成一项调用的时候,
有两个逻辑的执行顺序,始终不一样,但是代码的对比却没有什么差别,唯一的
差别就是类的结构发生了变化,通过各种办法,始终无法达到一致,小A非常
苦恼,毕竟重构走到这一步也不容易,但是遇到这个问题,也必须得解决,否则
就前功尽弃了,自己的力量不行,就得想办法借助别的力量,他试图去找同事
来帮忙,但是没有得到任何帮助,找之前的大拿,由于别人无法看代码,也没
帮上忙,就这样焦灼了几天,小A终于开窍了,他试图从侧门解决问题,那就是
用打标记的方法来让重构后的逻辑强行和重构前一致,最后也终于实现了,他觉得
很得意,告诉主管后,主管却很茫然,觉得这是投机取巧,最后找到原因才行。
于是,小A就想从主管哪里得到支援,无奈,得到的答复是他不太懂这个系统,让
小A去问某某,然后小A就去问某某,某某告诉小A,他只是业务比较熟悉,代码的
细节其实并不是很理解,而且也很忙,无暇顾及。小A觉得很压抑,虽然是一个团队
,但是真的需要大家支援的时候,他深深地觉得孤立无援,虽然他解决了问题,但是
别人总觉得没有彻底解决,确实也没有彻底解决,不过用其他方式也达到一样的
效果了。并且测试也通过了,上线验证了,那个地方没有出问题。上线后遇到一个
明显的问题,就是测试中的数据量比较小,没有发现,线上数据量大,出现了,在
一个切面打印日志的地方,由于数据量巨大,日志打得停不下来,程序就卡在哪里了,
主管觉得很失望,对小A寄予厚望,而且重构也延期上线了,但是竟然还是还是出问题了。
年底考核的时候,小A的考核得了B,主管的评价就是不能从根本上解决问题,而且某次
上线之后,没有验证就回家了,小A觉得第二个评价或许无所谓,第一个评价就有失
公平。就和主管了理论起来了,因为主管说其实这个系统也没多复杂,小A就说没多复杂,
为什么我当时问你,你说你不清楚,既然不清楚,你怎么知道不复杂。主管非常尴尬,
没想到小A竟然会和自己理论,就不客气地说,我们本来对高级是预计厚望的,但是没想到
你的表现没有达到应有的水平。为了进一步证明主管的评价没错,主管还说小A去别的组之后,
组里又给他填了很多坑,小A上杆子了,说很多坑,都有哪些,你能不能具体点呢,主管
又尴尬了,说你去问某某某,都是他帮你改的,小A说那行,我现在就去问,找到莫某某后,
某某说,他最近在开发他的任务,其他的事,他一概不知,看到主管有点尴尬后,某某说,
就是哪个什么什么问题,害得我们查了好久,小A觉得有些好笑了,说那个什么什么问题啊,
那个跟我有关系吗?某某某也觉得不好意思了,说当然有啊,毕竟系统是你重构了,你就得
负责到底了。小A觉得没必要再去辩解什么了,他心里闪过这么一句话,一个高个和一群矮子说话,
两个字,费劲。这个故事告诉我们一个道理,做技术的人想让别人信服你,必须要做到,
别人解决不了的问题,你能搞定,这样你肯定才有资格说什么是什么。
 
同步音频已经在蜻蜓fm + 喜马拉雅fm + 懒人听书fm 更新,敬请关注

posted on 2018-01-26 23:13  偏拿代码说事  阅读(122)  评论(0)    收藏  举报

导航