聊一聊重构

  •   大家好!欢迎莅临厚土燎原的天地,深感荣幸能与您相遇在此,共同品读我的拙作。您的阅读如同春风化雨,对我而言意义非凡。衷心邀请您留下宝贵的评论与指点,每一字一句都是对我莫大的鼓励与鞭策。热烈欢迎,期待与您智慧碰撞,共绘思想的火花!


目录

什么是重构

为什么要重构

什么时候去重构

好的时机:

什么时候不要重构

哪些代码需要重构:

小技巧


什么是重构


重构就是通过调整程序代码来改善软件的质量、性能,使其程序的设计模式和架构
更趋合理,提高软件的扩展性和维护性。

白话:优化代码,使得代码能让大家看明白,容易改,bug少。


为什么要重构

1、重构改进软件设计
很多时候我们是在没有真正理解原有设计的情况下去修改代码,不断的持续这个
过程会导致代码逐渐失去原有的结构,于是通过源码很难理解原有的设计。
代码的结构流失是累积性的、越难看懂的代码,它原有的设计腐败的更快、
而重构可以维持代码应有的形态。

2、重构使软件更容易理解
重构能更好的表达代码的意图。
1、自己改起来很方便
2、借助重构可以理解不熟悉的代码。

3、重构帮助找到bug
重构过程中会发现一些隐藏的bug。

4、重构提高编程速度
减少很多调试时间、代码质量越高,可读性越强、理解代码的时间更短。


什么时候去重构

重构应该是随时随地的进行,不需要专门拨出时间来重构。


ps:大规模的重构还是需要排期来做的。

好的时机:

1、添加新功能时重构
重构能够帮助我们理解原代码、理清代码的结构。
添加新特性不轻松、不方便、通过重构可以更容易加入新的功能。

2、修补错误时重构
加深理解,易于找到bug

3、代码code-review时重构
code-review肯定会发现一些问题,这个时候顺便重构是一个比较好的选择。


什么时候不要重构

1、重构的前提是现有代码大部分功能是可用的,如果不满足,就不要重构了,
不如重新写一个。


2、项目接近尾声也不要进行重构、因为没什么时间了、而且容易导致新的问题。


哪些代码需要重构:

1、重复代码。
1.1、同一个类两个函数有相同的表达式,使用extract method提炼重复代码,
然后两个函数调用这个提炼后的代码。
1.2、两个子类包含相同的表达式,使用extract method提炼重复的代码,
然后推入超类。
1.3、不相关的类出现重复代码,把重复代码抽到一个独立类中。
1.4、如果只是相似,需要将差异部分和相同部分区分,构成单独的函数。
然后发现可以使用模板方法模式。

2、过长函数:
代码行数太多,代码过长则难以理解、并且没有办法写注释。所以要对过长函数
进行拆分。使用extract method把适合集中的代码放到一起变成新的方法。


 3、条件表达式
条件表达式,使用decompose conditional,把if里面的内容提取出来变成
一个新的函数。


4、循环
需要把循环和其内部的代码提炼到一个单独的函数。

5、过大的类
引入了太多的实例变量,容易导致重复的代码。可以把大类拆成多个类,把不属于
该类的内容移到正确的位置。

6、过长参数列
过长的参数列会导致方法难以理解,可以通过引入参数对象,把这些参数放到
参数对象里面,从而大大缩短参数列。

小技巧

有一个判断要提炼的代码的技巧。就是找注释、如果这个代码需要用注释来说明,
那么就可以将这段代码提炼为一个函数,哪怕只有一行。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厚土燎原

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值