聊一聊重构

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


目录

什么是重构

为什么要重构

什么时候去重构

好的时机:

什么时候不要重构

哪些代码需要重构:

小技巧


什么是重构


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

白话:优化代码,使得代码能让大家看明白,容易改,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、过长参数列
过长的参数列会导致方法难以理解,可以通过引入参数对象,把这些参数放到
参数对象里面,从而大大缩短参数列。

小技巧

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

厚土燎原

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

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

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

打赏作者

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

抵扣说明:

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

余额充值