概述
这两个星期需要重构超高降效部分的脚本,原因是原来的脚本结构比较乱,脚本间函数调用的层次很深,参数太多,不易读也不易维护。正好下午数据组的学习活动是《代码大全》中的重构,于是很有兴趣地去听了一番,确实收获很大。
下面是我的学习笔记,仅摘取对本次工作有用的部分:
1. 什么是重构
重构是指不修改代码外在行为,而是修改代码内部结构使其更易维护;重构不是去修改代码的实现错误,也不是增加新的功能
(--看来我这次要做的事情真的是名副其实的重构活动)
2. 特定的重构
1) 数据级的重构:
用具体的变量代替常量(脚本中确实很多这样的问题)
让变量名更加清晰可读(目前脚本中父函数和子函数中确实存在相同的参数变量名)
引入中间变量
用函数代替表达式
用多个单一用途的变量代替一个多用途的变量
局部用途使用局部变量而非参数
将需要额外功能的基础数据转化为类
2) 语句级的重构:
分解布尔表达式
将复杂的布尔表达式转换为易理解的布尔函数
合并条件语句中不同分支的重复代码
使用break或return而不是循环控制变量
在if-else-then结构中一旦有结果就返回
用多态代替条件语句
创建和使用null对象而不是去检测空值
3) 子程序级的重构:
提取子程序或方法
查询和修改操作相互独立
调用和删除参数
合并相似的小程序
将参数决定函数行为的函数进行拆分
4) 类的重构,接口的重构,系统的重构本次不涉及
3. 安全的重构
保存初始代码
重构的步伐小一点
同一时间只做一个重构
把一次需要重构的事情一条条列出来
专心于当前做的重构,过程中发现的其他需要重构的内容都放在一个池子里,以后考虑
Yangc和zhangzx分享了他们重构的经验和教训,总结如下:
1. 如果A和B都比较复杂,需要进行重构,如果直接修改可能导致耦合部分出错,那么可以创建一个作为中间媒介的C
2. 一定要注意修改完一小部分后要及时提交成果,否则如果出错了想回退时,中间部分修改的内容都没有办法保留
3. 一定要列一个计划表,最好把需要重构的东西整理成一个列表,拆分成几个小时几个小时的重构量
4. 过程中发现了其他需要重构的地方,先保留着,不要一下子就修改了,关注重点
最后
以上就是欢呼老鼠为你收集整理的对代码重构的理解的全部内容,希望文章能够帮你解决对代码重构的理解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复