首页 > 编程知识 正文

什么是代码重构,代码重构的目的

时间:2023-05-05 08:00:29 阅读:140281 作者:3974

为什么祖传代码被称为粪山?

清新的冷风

说到祖传代码,必须提到当时移动的经验。

我进公司的第一天,隔壁的妹夫告诉我,你是今年第五个负责这个模块的。 我的心凉了一半。 这个TMD才7月呢。 听她说,最长工作了两个月。

我不相信那个邪。 页面的交流很普通,不是也要追加删除后端进行调查吗? 去哪里很难? 看到代码后,才知道too young,too simple。 其中最老的代码是09年的会议,一直维护到现在。 现在正好是10周年的庆典,我很荣幸地包揽着。 这恐怕是码期的预售吧。 现在使用的还是jdk1.6,不管是什么前端后端,页面都是用Java写的。 最有洞的是里面的js,有4、5个共同的js文件。 可能是数万行代码,被注释的代码占三分之二。 出来,我不会杀他的。

奇怪的是,两个月了还没有安排需求,就是在来的那个礼拜上说让我看看代码。 每天早上点一杯咖啡,一点一点的页面,心情好的话看代码,生活得很舒服。 这就是节目单上的春天吧。 我不知道前面的四个兄弟放着这美好的日子,你是怎么逃的?

一天中午,项目经理叫我来,问我代码看起来怎么样。 从项目框架说起业务逻辑,其实有个屁的框架,随便拉五六分钟,项目经理笑了笑,点了点头,很满意的样子。

“是个好电话。 这有个臭虫。 请修理”

“嗯,没关系”出乎意料,毕竟快两个月了。

“下月初,你将努力完成‘说话时十七八天的样子’。

“没关系。 「

开始写代码,有点兴奋,结果两个多月没练了。 也有一点胆怯。 因为这是能否顺利转正的关键之战。

两个多月来,我最认真地看了代码。 我在哪里? 我是谁? 我在做什么? 是哪个智力障碍者写的函数? 十几行参、变量命名、汉语拼音占了大半。 我严重怀疑这是小学生写的代码,还是像智障一样不分前后的鼻音。 小学的国语教师害怕是cmdzm老师教的(并不是真的看不起cmdzm老师)。 函数内部的无限递归调用,本以为马上就要结束了,结果函数又返回来了。 一个函数有800多行。 果然还是要出来还给你,过了两个月的春天,一下子掉进了冰室。

这样的日子浑浑噩噩地过了七八天,邀请我来的那个技术gldfy真的不忍心,来指示我。

“年轻人,即使这样看代码,我想明年春天也没办法。 你这个bug是第三个人在线的时候写的。 请重点看他提交代码的部分”

一句话要唤醒梦中的人,只能用这个最笨的方法。

看了三天,终于找到了问题,花了十分钟解决了。 然后,技术管理员检查了我的代码两个小时,放心地让我在线。

在后面和项目经理吃饭的时候,“有一个喜欢的电话,前面的四个人跑了,我在看你。 你知道为什么你那两个月前刚来,我什么都没让你做吗? 我怕你一开始就制造需求,扛不住退路。 ”

“经理,那个代码那么旧。 为什么不重构呢?”

“上次重构代码的项目经理已经被大上司开车了。”

编辑是2019-02-17

清新的冷风(作者)回复熊前一个月

重构祖传的代码就像移动祖坟一样,你不知道稍有不慎就会偷窃吗!

douvrildouvril回熊一个月前

这个代码可以很容易地改变垃圾。 拔掉一个萝卜就可以把整个菜地的根拿出来。

年轻有为回复大熊的一个月前

恢复了一时的爽快,全家人都在火葬场。 我们现在的项目是重建,分解为微服务并重写。 现在两个代码并行了一年,两个都在维护中。 至今仍有50%以上的客户使用旧代码。 鬼知道当时给部分客户定制了什么需求。 最痛苦的是维持两个环境[遮住脸]。 新代码缺少什么功能代码,需要同步进行?

多管闲事,恢复青春是一个月前了

是的,居然转移到了过去50%。 我们上次就是这样建立新系统直接被抛弃的。 现在旧系统不行。 就这样一点一点地更换.

nullnull1一个月前

大问题不能重构,即使有问题也是前任的问题。 现在,请尝试重建。 即使有一点问题也是你的问题

bldhcbldhc1一个月前

项目是否着急将决定是否是粪山。 很多习惯良好的程序员项目在超急节奏工期短、熬夜持续的情况下也不会懒散地写注释。 等待粪山有时是管理问题。 另一方面,连续变化的需求有时也是粪山的原因。

zxdmzzxdmz1一个月前

重构这个词自不必说,99%的开发都没有这个能力,只是按照自己喜欢的方式写。 下期开发继续骂妈妈

lee binlee bin1一个月前

哈哈,我去年率领过技术队。 我也看了一个多月后,提出了全面重做的方案。 一个月的重建,也就是我拥有这个团队的第三个月,我被踢了没有技术团队。 哈哈哈

健身房

一个兄弟上班时突然勃然大怒,大声质问这个TM是谁写的代码。 出现了这么明显的bug,也不发表评论,当时项目组的周期农户们吓得不敢说话,害怕把自己揪出来。

项目经理说:“XX先生,请查一下SVN记录,查一下整个公司的举报,扣他的年终奖。

这个男人:我已经在查了.

几分钟后……

不可能吧,这怎么可能呢?

大家聚集在一起,发现这个代码是这个兄弟一年前自己提交的。

/p>

为了避免过度尴尬,大家都没再提这个事情。

---------------------------------------------------

回到问题,是的,都是一堆臭屎,不做记号的话,还真分不出来是不是自己拉的。

编辑于 2019-01-09


予人玫瑰,手有余香
赞赏
1 人已赞赏

daemoneye

几年的代码也好意思叫shit山?这种东西得在微软/电信公司这种toB地方才恐怖。

我司有些代码我正好要升级gcc版本,要试试转docker踢到云上去,然而这批代码写于2000年前,那个酸爽哦。最早的部分可能写于1980年代bell实验室,第一批维护升级做需求的人早就退休了,第二批也退休了,每一行代码动起来都胆战心惊。

这会出现什么结果呢,重构花费时间极长,但是b端客户对稳定性和可升级性的需求不是普通客户能比,所以历代开发在这个坑上只能采取坑上盖板子这样的方式继续开发,坑传个10年20年,从底子上来看问题多太正常了。质量全是靠工程手段维持。框架稀里哗啦,代码风格迥异,逻辑不知道干什么,早期代码没有注释,指针到处乱来,文档有一本砖头一样厚的90年代开发指南,那感觉,嘿嘿嘿。

发布于 2019-01-09

蟲蟲
IT民工

屎山?小公司的祖传代码才可以叫做屎山。

大公司的祖传代码,那是屎海上漂浮的僵屎山。

你就在这屎海里面漂着,一旦进来了,就出不去了。

每天的工作,就是在粪泳前进。还有拉着部门的粪船前进。

各个部门的粪船每天继续产出新鲜的屎,投放到屎海里,它们不断聚集,成为新的屎山。

旧的屎山顺着洋流还相互亲热着,迸发出岩浆般热情的屎,掉落在你头上和身边。

你不得不一边拼命地游以自保、一边还想尽办法地不沾太多屎到身上。

系在你身后的是部门的大船,部门领导坐在船上,用伞和棍子推着避免撞上屎山。

偶尔有个负责的领导,还会愿意让你上上船休息。

可惜一旦你沾着太多的屎了,或者让船沾着太多的屎了,就等着被踢下船去吧。

偶尔有那心有抱负的人,尝试着改变这一切。

他们以为找到了一些仿佛可以容易对付的屎山,想着要重构,说他们看到了一条干净的出路。

但是,他们还是太年轻了。

因为,他们看到的,只是屎山的一角。

他们带着部门的船从旁边划过,却不知这就是昨日的泰坦尼克。

发布于 2019-01-09

bmdbh

之所以被成为屎山,因为你一碰,就会屎山爆发,那画面……不忍直视!


俊秀的寒风看到祖传代码时:


俊秀的寒风尝试改动时,只删了一行代码时,可能会发生下面这种情况

有句话,说的非常好:祖传代码就像一座很大的屎山,你见过的最大的山,每次你想修正一个bug,你的工作就是爬到屎山的正中心去!

发布于 2019-01-09

香一
资深造轮子十九年
731 人赞同了该回答
看着难受,又不能改它,只要一动,山就塌了,将自己深埋屎下,臭不可闻。

就像你有几栋楼,几百个房间,手上拿着一串没有备注的钥匙,一个一个房间试,你以为你打开了,却没想,门后还有一道门。

俊秀的寒风费劲心思解决了所有门,你又发现,钥匙断了。

你完全不明白为什么要这样设计,那么愚蠢,俊秀的寒风有了个新想法,忙碌之后,又发现自己写的更蠢。

不要试图去理解它,改变它。

这是神圣的传火,让你的下一任有点事情做。

发布于 2019-01-08
 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。