为什么国内程序员都很少进行代码重构?
﹠ℐ为什么国内程序员都很少进行代码重构?
上家公司有一个活生生的例子,有一个历史遗留项目,代码经过无数人的手,某天出现了一个奇怪的bug,那个朋友在翻了半天的代码后,提出了项目重构的意见,我们都劝他不要搞了,这种项目重构下来不死也得脱成皮,他说我宁愿脱皮也不愿意再吃屎了,然后他就按自己的想法去重构项目了,那段时间,基本上把公司当成家了,晚上不回家,累了就躺沙发上睡一觉,熬了半个月,项目只完成了20%,突然有一天,发现他不在公司了,几天没来上班,一打听,这老哥把自己熬的肾衰竭了……
所以,珍爱生命,非万不得已,不要想着重构
╌✷为什么国内程序员都很少进行代码重构?
脑壳有包才去重构,业务都做不过来,以前有个老兄想重构代码,领导直接给说,重构可以不算kpi,日麻的 重构不出问题,领导觉得原来就好好的 你重构不出问题那是应该的。出问题就是你的责任。最好是从业务上进行重构 顺便重构代码,业务上没诉求,系统提供服务平稳的,你觉得有重构必要?
▼✳为什么国内程序员都很少进行代码重构?
因为国内程序员没有这个实力,大多程序员在35岁被裁被迫转行,有技术的都不在这个行业了还怎么重构?留下一堆菜鸟CRUD都整不明白,难道让他们知道怎么重构?
ℋ┅为什么国内程序员都很少进行代码重构?
成本太大
大多数软件产品的开发都是经过了很多开发人员的付出,如果进行代码重构需要了解产品、了解框架、了解代码逻辑,这个过程会花费大量的时间和人力成本,对于企业来说,效益是第一位的,与其花费精力进行效益不大的产品重构,不如去承接更多的项目来的实在。
领导决策
由于大部分企业的老板都是非技术人员出身,他们更关注效益和客户,为了符合企业的发展,在进行产品开发时会更多的采用新技术来吸引客户,花费精力重构代码不如开发一套新产品或者开发更酷炫的效果更具有实在意义。
代码规范不足
由于国内互联网较之国外起步较晚,很多企业发展时间较短,加之人员流动比较大等多方面的因素,很难形成标准、严谨、行之有效的代码规范,所以很多技术人员在开发时都是根据个人风格习惯在开发,等其他人接手代码时,缺少相关标准和文档,很难理解代码逻辑,花时间去了解代码、重构代码不如直接推翻重做来的方便。
客户定制化需求
部分企业创业初期对企业信息化是不够重视的,只有企业发展到一定程度才会考虑信息化建设,而由于业务的限制,大多数标准化的互联网产品都很难满足企业的实际需求,需要进行大量定制化的开发,对于互联网企业来说,即使产品开发足够完善,在实际项目中也需要进行扩展,倒不如直接在项目中进行调整。
程序员的发展限定
在国内很少有终身的程序员,大部分都会逐渐转向销售、售前、项目经理、产品经理等岗位,而这些岗位则需要了解业务、了解客户,对技术的需求反而不会太高,所以与其花时间去专研技术不如将更多的精力用在业务和项目层面。
代码能够重构对底层框架要求深度掌握、且代码框架本身要足够灵活,而国内绝大部分技术人员都是停留在对框架的使用层面、少数可以完善、结合使用,极个别的在做同语言山寨或者换一种语言重写,能够对产品体系进行把握、与时俱进扩展实在是凤毛麟角。随着国家的经济提升、IT行业逐渐成熟,在我国这么多IT公司基数下,即便是凤毛麟角的概率,重视基础框架、积累萃取、不断迭代完善的一些技术公司也会慢慢崭露头角、涌现出来的。
━Ⓙ为什么国内程序员都很少进行代码重构?
谢邀~
【国内程序员很少进行代码重构】,这个现象虽然没有什么调查统计,不过我写了十多年代码,也发现身边的程序员大多数是这样的,【宁可写新的代码,也不愿意重构老代码】。下面我也谈谈自己的看法:
系统没有问题,就是最大的功劳
我见过的大部分的传统行业的软件公司或IT部门是这样的(互联网公司不太了解),“只要系统稳定,那么就是最大的功劳”,而保持系统稳定最好的方法是什么?就是尽可能的不要动系统!
可能很多人不能理解,但很多公司确实是这样,甚至公司对项目的考核标准中,项目有什么突破的权重很低,是否有生产事故的权重很高。所以很多“机智”的项目组成员,千方百计的不接需求,或者把需求推给别的项目组。在这种单位里面,别说重构了,新代码都写的不多。
测试覆盖度太低,重构代码没办法保证质量
代码重构,很重要的一个问题:“重构后的代码谁来保证?如果影响到原有的功能怎么办?”
这时候很有效的一个方法,是使用各种自动化的测试来保证重构代码的质量。
但是,大部分公司,不管是单元测试还是其他的自动化测试,都是不健全的,甚至是没有的。所以只要不是被逼不得已,程序员宁可重新写一个方法,也不愿意重构之前的代码。
其他
代码风格有差异,看别人的代码真心累。
有的代码写的真心不敢恭维,各种奇怪的思路真的理解不了。
文档没有,注释也没有,有时候看代码只能靠猜。
希望我的回答,能够帮助到你!我将持续分享Java开发、架构设计、职业发展等方面的见解,希望能得到你的关注;另外,关注我后私信【资料】两个字,可获取架构、大数据、面试等相关资料。
------------------
推荐阅读: