概述
近日受一位资深程序员大牛写的一篇学习路线建议的博客影响,开始读《重构-改善既有代码的设计》,《大话设计模式》两书。此篇博客为读《重构-改善既有代码的设计》的学习心得笔记,将在每天的 学习中,不断更新...
一、为什么要重构
重构的意义在于将眼光放长远,而不仅限于当前暂时的提高开发效率。
重构要做的就是通过对软件内部的代码结构做调整(不影响其外在的功能),使代码具有更强的可读性(由于一段时间后,自己可能会忘了自己之前写代码的逻辑,或是不久之后有其他程序员需要修改你的代码),扩展性(添加新功能,可以尽可能的不修改原有的代码,修改原有代码意味着可能会影响其他原有的功能),降低复杂性(过于冗余的代码,很容易让人看的头昏脑涨),提高编程速度(有的人可能会认为重构需要付出更多的时间代价。是的,但是这个代价个人认为是一种前人种树,后人乘凉的效果。暂时的时间代价,带来的是后面更多人的高效率开发。如果在一个大项目中,人人都能做到不断的重构代码,那项目后期的开发效率将会越来越快,越来越轻松)。更加深刻的理解代码(想要对代码进行重构,就必须非常了解代码,否则很容易引入bug);
二、重构之前,注意事项:
重构代码,一定要保证不影响其原有的功能,所以重构需要一小步一小步的进行重构,而不是大规模重构后开始测试。
三、重构列表
1.合理的变量名能够让别人见名知意
2.尽量减少临时变量的个数,过多的临时变量会是代码看起来更加复杂,难懂。也更容易在修改代码的时候,发生没有意想不到的问题。
四、代码的坏味道
a、重复代码
何为重复代码?既在一个以上的地方看到他,就可以成为重复代码。
第一种情况
两个地方发现相同的表达式,这是可以提炼重复代码
第二种情况
两个互为兄弟的子类含有相同的表达式,可以将相同的部分提炼出来,推入父类中。
第三种情况
如果是两个完全不相关的类,拥有重复代码,则可以将方法提炼到自独立类中,至于这个提炼的方法该属于哪儿个类,则需要做判断
b、过长代码
c、过大的类
d、过长参数列
...
五、简化条件表达式
分解条件表达式
必要时将if条件提炼出来,封装到函数中,函数作为条件(更能体现条件要表达的意思)
合并条件表达式
有时分开的条件,写了多个if,但是要做的事情却一样,这时可以合并条件语句(逻辑或 、逻辑与、独立函数)
移除控制标记
控制标记大大降低程序的可读性。
用java提供的break、continue、return来代替。
以卫语句取代嵌套条件表达
当不同的判断执行条件,调用不同方法时(有返回值)
旧思路:用一个变量来统一接收所有方法的返回值,最后返回
新思路:直接return 方法();
使用if...else 表示这两种情况出现的概率都差不多,当某一些条件出现的概率很小的时候,可以用if... if... if.. 分开写,代码可读性会更强一些。
并且一大堆的if.. else if.. else if else..而部分else if 出现的次数很少。这时看代码的人也会去看这段代码,会妨碍他们的理解。
最后
以上就是火星上老鼠为你收集整理的读《重构-改善既有代码的设计》汇总的全部内容,希望文章能够帮你解决读《重构-改善既有代码的设计》汇总所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复