9  
我下个月就要跳槽了,还重构什么代码!
来源:https://mp.weixin.qq.com/s/8OBAbW4-e75eSps3lQM4KA
作者: 系统管理员 于 2018年10月05日 发布在分类 / 本站资讯 / 其他 下,并于 2018年10月06日 编辑
技术 重构 开发 这个 没有 一下 一直 很早 起来 偶尔

作者 :木易小光 |   微信公众号:木易小光

代码重构,国内的IT行业的企业,不敢说100%有这个问题,相信大部分公司都存在,很早就需要重构的代码模块,却一直用着,能拖就拖,即便它直起来并不是那么的“完美”,使用起来也不是最简单方便的,只要它还能用,就会一直用着。当然老板是不会管程序员这个的,并且99%以上的老板从来没注意到,更确切地说是并不知道项目到了重构的时候,也不清楚重构带来的意义,小编收集了一下这方面的原因,给大家盘点一下:

paste1538813281703.png

时间被严重压缩项目急,能上线就不错了

时间被压缩的情况,在开发界屡见不鲜,现在都已经成家常便饭了,但这个现象,在很早之前,并没有这么严重,随着C端快速发展,尤其是手机应用的迅速崛起,这使得以前“系统分析员”的工作,被拆分到产品部门,而现在绝大多数从事产品的人没有技术开发的底子,快速占领市场的需求,加上没有完全吃透需求的产品,和技术底子的薄弱,导致需求被反复修改,和开发时间被严重压缩。时间被压缩了怎么办呢?谁会管你重构不重构的,能上线就谢天谢地了,这时候程序员只求上线后别出严重级的bug就可以了,系统上线后,接下来又要面临新的开发任务和需求的反复修改带来的额外的工作量,不是他们不想重构,一没精力二没时间三没心情。

paste1538813302234.png

涉及的模块太多太杂,风险太高代价太大

要重构的功能模块,通常不是那种只用一次,只显示一次的页面代码,而是多个模块公用的功能块,这种功能块在最初的需求中,一般只用几次,没人预料到未来的的需求是个什么样子,从而对代码做最优的优化和架构,这使得程序员开发的过程中,只要这段代码不出问题,可能会一直用着,除非是接下来要添加的功能,不改这个公共模块就没法再做,这时候才会去重构,而重构后,可能接口参数改要,意味着之前写的所有的功能可能要做一定的修改,并且都要再跑一遍测试,单元测试,集成测试等等,本地测试完上传到测试服务器测试,再上线在生产环境中测试,工作量非常之巨大。你要一进公司就吵着要重构代码的话,估计会被测试的小伙伴们所嫌弃,他们一定老恨你了。所以,要重构的话,其实代价非常大的,成本很高,可能还会出各种bug。

paste1538813945515.png


没任何的功劳和业绩,还要被同事嫌弃

代码还能用,你要吵着重构,不仅会被同事,尤其是测试所嫌弃还招恨,可能还会影响到上线项目的正常使用,人写出来的程序一定是有漏洞的,最怕的就是那些潜在的漏洞,在测试阶段没测试出来,上线后没出现,但一段时间表现出来,一旦出现,可能面临的是周末休息日的无偿加班,或者是晚上凌晨时的修复,这也是为什么你经常会看到在高铁上、马路边,甚至自行车上,垃圾桶上都能看到程序员在改代码,其实是在修复bug,一般都是着急处理的线上的bug。有些bug导致的产生的数据是不可逆的,访问量高的网站晚处理一秒,产生的数据量就非常庞大。还一个非常重要的原因是:做重构,没有任何的功劳和业绩。在外行人看来,你把一个能用的功能写成另一个能用的功能,做功为零,还耽误了时间,浪费了开发劳动力。他做的东西虽然在程序员眼里价值很高,但在外行人眼里那个从从0到1的那个人才是最有价值的。没有功劳的活,谁愿去做,还得罪了人。

paste1538813375328.png

能力不足以重构,读别人的代码都费事

还有一种原因是,程序员的能力还没有到达重构的地步,不得不说,现在开发这个行业,被各种培训机构带的有点浮夸了,很多非计算机系毕业的学生,被培训机构一阵忽悠,谁谁谁学了三个月,月薪上万,而培训机构本身的师资又是个非常严重的问题,这种流水线上培训出来的员工,现在在企业里广受病诟,一来要价高,二来底子薄。因为有培训机构的过度宣传,潜移默化的增加了这些人的自信心,但编程,要学的东西太多了,而培训机构是不会教这种东西的,只教你怎么使用语言和工具。比如你学的是java,只教你java相关的语言和怎么使用eclipse这类的工具来做开发。而开发的基础知识,算法、数据库、数据结构、编译原理、操作系统等等都不会教的。当然也有些科班出身的能力可能也跟不上,这就造成了现在这种局面,时间紧的情况下,能写出来上线就非常不错了,没有bug,完美。重构,不可能的。

paste1538813980218.png

更注重短期的效益,疲于解决眼前的bug

国内的软件开发行业,非常注重短期的功能上线,和竞争对手争抢市场,一个app,一套系统,能活下来还是个问题,每个月光开发人员的成本就是一笔不小的开支,不考虑未来?融资之后再说,挣到钱之后再说,老板按日计算企业还能活多久,长远的东西,等到了时候再说吧。互联网每年出一个新概念,云概念,saas,H5,大数据,今年开始流行区块链,为了吸引资本关注,能用的全用上,现在在大数据和区块链上,并没有一个非常完善的运作方式和指标,都是摸着石头过河,把数据按一个报表的形式表现出来,也自称为大数据。而底层的架构,在需求阶段是最费时间的,没有一个长远的考虑,没法做到架构上的完美,这种追逐短期效益使得程序员只能疲于解决眼前的bug,而缺少长远上的考虑,更确切地说是没有精力照顾到长远上的架构扩展。需求都写不完,何谈时间与精力来重构?

paste1538814007765.png

地位低,没有话语权

通常国内的程序员,地位很低,没有任何的话语权,产品三天改了五次需求,程序员一旦表现出过激的语言和行为,产品便会以程序员很难“管”的借口向老板告状,这时的程序员,前进一步不是,后退一步也不是,两头为难,而原本可以做得很好的系统的激情,被这三番五次的改需求折磨掉了,程序员的工作做得好不好,只能是自己同行人知道,底层架构很好,代码写得很规范,但外人看不到,产品不明白,老板只看功能实现,在程序员地位低的公司里,你面临的可能是出力了也得到任何的表扬和功绩,在只注重表象的公司里,不如只做表象的东西。这就造就了程序员会选择不重构代码的原因。因为,实在是没有用。

paste1538814022156.png

互联网产品更新迭代快,没必要重构

互联网时代,尤其是苹果iphone的流行,带来了移动端app的发展,带来了互联网开发行业的春天,程序开发行业的产品、前端以及ios、安卓端需求人数急剧上升,每过一段时间,你发现有一堆app成为流行应用,互联网产品变化之快,用早期的前辈留下来的开发模型已经完全不能满足需求了,能敏捷尽量敏捷,能有多快就多快,这也造成了程序员无休止的加班,而有的公司,业务方向上的转变也是跟风经常变动,一开始小额贷款,中间p2p,后来做消费分期,这是听一个网友讲的,底层数据经常变动,这玩意你想做重构,不可能的,架构更别想着完美,以最快速的完成开发上线,才是首要的,代码烂,关用户什么事,关老板什么事,能用就行,用户又看不到代码。

paste1538814037984.png

互联网行业人员流动大

有一个问题其实一直是互联网行业无法避免的,就是从业人员的流动极大,平均两年,尤其是一线城市,北上广深,程序员工作一年再跳槽,平均薪资上涨20%都算少的,而在一线新兴领域,比如前几年的大数据领域,今年的区块链,做的人很少,半年的从业经验都会被企业抢着要。人员的流动,带来的是程序维护成本的增加,因为,每个程序员都知道,不管对方的代码写得好还是不好,看别人的代码都是一种痛苦,看自己半年前的代码也是一种痛苦,但当你看到署名是自己的时候至少还能接受。而在企业做开发的程序员,尤其是刚毕业的,绝对不会一直待下去的,这就考验从业人员的职业道德了,我到底应该把代码写的多好?可维护性应该做到什么地步?至少在我还在公司的时候,不会出现特别麻烦的bug。这些程序员的出走,重构就成了问题,他们遗留的代码会变成一种“历史”,能不动就变动,牵一发而动全身。



 推荐知识


 访问权限

创建人 系统管理员
文档编辑权限 创建者私有
文档阅读权限 来自分类
分类阅读权限 所有人
分类编辑权限 所有人
分类审核权限 无需审核
分类预览权限 所有人
分类下载权限 所有人
 历史版本

修改日期 修改人 备注
2018-10-06 16:21:00[当前版本] 系统管理员 格式调整
2018-10-06 16:11:39 系统管理员 格式调整
2018-10-05 13:27:49 系统管理员 CREAT

 附件

附件类型

PNGPNG

  目录
     关联知识
    1. 10亿级订单系统分库分表设计思路!
    wcp知识库系统-V4.1.4 ©2013-2018 WCP