那些坑爹的老代码,究竟改还是不改?!

原创 2017年10月31日 09:00:40

在软件研发中,我们总会遭遇一个场景,就是要去改变或添加一项功能到既不是咱们创建、也不熟悉、更与自己负责的系统部分无关的代码中时,会遇到麻烦,而此时的内心更是崩溃的。

那么,面对前任程序员留下的代码,究竟要不要改?改写老代码,究竟如何才能不留坑?


曾刊载于《程序员》的《神秘的程序员们》漫画一则

长久以来,业界流传着一个约定俗成的禁忌:如果你恨一个程序员,就让他去维护年久失修的老代码吧!提到老代码,相信所有程序员都有话要说。

或许每位程序员都有一颗封疆扩土的雄心,所以入职后面对着冗余复杂的陈旧代码,很希望将一切推翻重来。毕竟代码结构 Bug、运行缓慢乃至于过于挑战审美等问题,很容易让人抓狂。但是对一家软件企业来说,老代码就是资产的象征,是多年积累下来的核心和重要竞争力。

对于软件产品,先后几波人维护过代码是很常有的事儿。如果你重写的新技术、新语言或者新框架并不能给产品带来质的飞跃,技术领导者又为什么要同意重写项目代码?更遑论维护过程中资金链断裂、核心程序员离职等突发情况的存在。

基于以上的思考,对于老代码我们究竟动还是不动?业内有赞同也有反对的声音:

@mostone:
动当然可以动,但一般一个项目的代码都比较庞大,如果耦合度较高,修改的风险必然很大。

@u013553804:
大刀阔斧,全部推倒重来,当无可奈何的时候。

@u012377333:
老代码能不能动,就看老代码写的怎么样了,比如一些开源框架,里面的很多基础的代码都不需要动或者只是简单的添加和新的业务逻辑相关的代码。如果老代码没有基于编码规范进行,里面势必就埋了很多雷,谁踩谁死。这里就涉及到一个问题,每一次代码合并必须要进行代码review,让该项目的所有开发人员对代码达成一致意见后,这样的老代码才能愈久弥坚。

@chinglish:
革命的时机未到你就去革命最终会革了自己的命;革命时机到了你再去革命那才真的是承天应人破而后立。

@dreaper126:
脱离业务需求,脱离上层的支持,脱离一个宽裕的时间段,切忌不要拆雷,成了没一毛钱好处,败了你就成千古罪人。

@汪海洋的博客:
变量命名没点数,有时写着还手误;界面全靠神奇数,保准看到就发怵;私有公有混一处,代理委托亦糊涂;消息通知满天飞,委托方法一大堆;第三方库无出处,随手改动无备注;单个对象多职责,悲伤逆向流成河;产品突增新功能,一行代码变大神;来了任务有委托,多写一行都嫌多。

对于老代码你有什么样的观点?欢迎各抒己见,在留言区分享你和老代码的爱恨纠缠。

版权声明:本文为博主原创文章,未经博主允许不得转载。

改,还是不改?

改革一:纸质书改为电子书 有些改革,是顺势而为,因为因循守旧的旧已经没有,无旧可守。迟改不如早改,还踩在时代的鼓点上。被逼着改,不如主动改。 改革二:本土餐馆国际标准化服务 有些改革,看似顺应潮...
  • corrine_lei
  • corrine_lei
  • 2017年07月19日 17:16
  • 62

我们不改需求了,给你们立字据!

朋友发给我的,觉得写得很现实,很搞笑,甚至有些夸张。 源文连接: http://toutiao.com/i6257302629982929410/引言说明 你=客户 对于做2C产品的公司,...
  • wangshubo1989
  • wangshubo1989
  • 2016年03月05日 22:49
  • 4846

Java坑爹玩意儿之-多线程

谈到多线程,总是会提到线程和进程,还有同步机制
  • usually1993
  • usually1993
  • 2017年04月22日 22:26
  • 95

你编或者不编程,项目就在那里,还未完成;你调或者不调试,BUG就在那里,早晚得改……

 你编或者不编程,项目就在那里,还未完成;你调或者不调试,BUG就在那里,早晚得改……...
  • airingyuan
  • airingyuan
  • 2014年07月14日 16:47
  • 347

坑爹的智力题,挑战你的智商!

话不多少,在QQ群里面看到网友分享的几个极品的智力题。挺有挑战性,或许大家一旦看过就感觉很简单了,第一眼说实话挺不好想的。             结合网上的分享,解读下:            ...
  • wojiushiwo987
  • wojiushiwo987
  • 2012年11月03日 20:47
  • 6762

1023——坑爹的黑店

#include using namespace std; int main() { int n; cin>>n; int m,i,j,k; for(m=0;m>s...
  • u011470356
  • u011470356
  • 2013年07月22日 18:24
  • 895

Linux只修改日期不改时间

为了绕过某些
  • tanweii163
  • tanweii163
  • 2014年06月19日 14:45
  • 828

初心不改,矢志不渝

有爱,有工作,有梦想,有青春; 爱书,爱电影,爱音乐,爱旅行,爱胡思乱想; 等变瘦,等发财,等出国,等梦想成真,等冬天过去,等你爱我; 做个四有五爱的七等少年,继续我的追求,修行在路上。 曾经我看到别...
  • zbwroom
  • zbwroom
  • 2017年08月21日 10:30
  • 1258

被12306坑了?聊聊验证码发展

年关将至,也正值春运购票高峰,正所谓“一张车票引无数英雄尽折腰”。近日,铁路部门的官方购票网站12306再次成为网友调侃的对象。不过,这次 调侃的内容不再是抢票难的问题,而换成了12306登陆时的图形...
  • caomiao2006
  • caomiao2006
  • 2016年09月10日 22:32
  • 629

ACM坑爹的黑店

今晚刷了一道题目,想了很久只想到穷举法……看了
  • jianghubazhu
  • jianghubazhu
  • 2014年08月07日 23:58
  • 520
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:那些坑爹的老代码,究竟改还是不改?!
举报原因:
原因补充:

(最多只允许输入30个字)