李锋镝的博客 - LiFengdi.Com

  • 首页
  • 时间轴
  • 留言
  • 左邻右舍
  • 我的日常
  • 关于我
青衿之志 履践致远
霁月光风 不萦于怀
  1. 首页
  2. 原创
  3. 正文

何谓重构?为何重构?

2019年6月24日 14225点热度 0人点赞 0条评论

什么是重构?

所谓重构是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。
——引用自《重构:改善既有的代码设计》

重构(名词)

对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

重构(动词)

使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。

为什么需要重构?

项目经过不断的迭代、修改、升级...基于原先的设计所得到的系统,整体结构逐渐衰弱,代码质量不断降低,代码的可读性、弹性越来越差,冗余代码越来越多,导致新的需求只能胡乱拼凑上去...再加上公司内部的人员调整,陈年代码无人能懂更不敢随意优化(稍不注意就会导致意想不到的灾难发生)。
这样导致的结果就是代码质量、项目性能慢慢下降,程序的设计逐渐腐败变质,本来严谨的编码工作逐渐变成胡乱拼凑的随性行为(只要完成了现有功能,不影响老的功能就万事大吉了!——这应该是大部分在陈年代码的基础上编程的工程师的真是想法)。

通过重构我们能得到什么?

1.重构能够改进软件设计

代码结构的流失是累积性的。越难看出代码的设计意图,就越难保护其中的设计,于是该设计就腐败的越快。而经常性的重构可以帮助代码维持自己的形态和结构。

完成同样一件事,设计不良的程序往往需要更改代码,这通常是因为相同的代码在不同的地方做着同样的事。如果消除重复代码,你就可以确定所有的事物、行为在代码中只表述一次,这正是优秀设计的根本。

2.重构使软件更容易理解

重构会使代码渐趋简洁,越简洁就越容易理解,越容易理解就越容易修改...

3.重构能够找到代码中隐藏的bug

对代码进行重构,可以更深入的理解代码,搞清楚程序的结构,于是bug就被揪出来了。

重构能够帮助程序员更有效的写出更强健的代码。

4.重构提高编程速度

良好的设计是开发的根本,拥有良好的设计才可能做到快速开发。如果没有良好的设计,或许短时间内进展迅速,但是恶劣的设计很快就让你的速度慢下来。你会花费大量的时间进行调试,添加新功能难度越来越高,修改时间越来越长,bug越藏越深,为了解决问题于是一个又一个补丁出现...哦~真是一个恶性循环。

重构可以帮助你更快的开发软件,因为它阻止系统腐败变质,它甚至还可以提高设计质量。

何时重构:见何时重构?

 

除非注明,否则均为李锋镝的博客 - LiFengdi.Com原创文章,转载必须以链接形式标明本文链接
本文链接:https://www.lifengdi.com/archives/article/275
标签: JAVA 重构
最后更新:2019年6月26日

李锋镝

既然选择了远方,便只顾风雨兼程。

打赏 点赞
< 上一篇
下一篇 >
guest
您的姓名(必填)
您的邮箱(必填)
您的站点
guest
您的姓名(必填)
您的邮箱(必填)
您的站点
0 评论
Inline Feedbacks
查看所有评论
支付宝红包

人言落日是天涯,望极天涯不见家。已恨碧山相阻隔,碧山还被暮云遮。

最新 热点 随机
最新 热点 随机
开工啦~ 今晚,回家过年! 图数据库选型:Neo4j、Janus、HugeGraph Redisson分布式锁的watch dog自动续期机制 哀莫大于心死 你好,2023
居家办公了~C# 11 的这个新特性,我愿称之最强!看病难~取药难~~RocketMQ的push消费方式实现详解国庆节过的也很累~~开工啦~
设计模式总结 更多的Xshell配色方案 ElasticSearch添加mapping LDC是什么? 阳了... 图解 | 原来这就是网络
最近评论
dd 发布于 1 小时前(02月06日) 请问idea2022 myBatiscodehelperpro 3.1.5激活码?
Frankie Bridge 发布于 8 小时前(02月06日) I really like your writing style..Its so easily un...
Frankie Bridge 发布于 2 天前(02月05日) Hi! Just wondering- what template did you use for ...
lyshark 发布于 3 周前(01月18日) 已添加贵站,申请交换友链:) name: LyShark - 孤风洗剑 link: https:...
poetry 发布于 1 个月前(01月05日) 感谢分享
有情链接
  • 志文工作室
  • 临窗旋墨
  • 旧时繁华
  • 城南旧事
  • 强仔博客
  • 林三随笔
  • 徐艺扬的博客
  • 云辰博客
  • 韩小韩博客
  • 知向前端
  • 阿誉的博客
  • 林羽凡
  • 情侣头像
  • 哥斯拉

COPYRIGHT © 2022 lifengdi.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备16004681号-2