重构之改善代码
文章平均质量分 88
通过重构改善已有代码,使得代码的稳定性更好,提高开发人员工作效率,减少后期代码维护成本。
皮斯特劳沃
目前在一家大型互联网公司工作,担任JAVA高级开发工程师,主要负责手机APP服务器端相关开发和研发。平时喜欢学习和钻研技术,对算法、代码重构、设计模型有所学习和了解。目前正在学习RPC和WebService等相关分布式技术。
展开
-
优化代码的重要性
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/45131085 工作将近一年了,从事软件开发也有三年多了,也写过不少的代码,但整体上来看,代码质量很差。一方面是缺乏编程方面的经验,写出的代码不能够考虑全面地情形;另一方面可能是需求设计的频繁性变动,导致代码的结构的不稳定性变动。这些都直接或间接地影响代码的质量,而代码质量的好坏将会直接影响到产品的性能和用户体验。这些都会无形中影响用户原创 2015-04-19 17:55:25 · 10011 阅读 · 7 评论 -
重构笔记——引入本地扩展
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/44958839 在上一篇文章中介绍了“引入外加函数”。本文将介绍“引入本地扩展”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:你需要为服务类提供一些额外函数,但你无法修改这个类。 解决:建立一个新类,使它包含这些额外函数。让这个扩展品成原创 2015-04-09 13:32:17 · 2441 阅读 · 1 评论 -
重构笔记——引入外加函数
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/44313725 在上一篇文章中介绍了“移除中间人”。本文将介绍“引入外加函数”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:你需要为提供服务的类增加一个函数,但你无法修改这个类。 解决:在客户类中建立一个函数,并以第一参数形式传入一个服原创 2015-03-16 21:33:16 · 2416 阅读 · 0 评论 -
重构笔记——移除中间人
本文是在学习中的总结,欢迎转载但请注明出处:http://write.blog.csdn.net/postedit/44022341 在上一篇文章中介绍了“隐藏委托关系”。本文将介绍“移除中间人”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:某个类做了过多的简单委托动作。 解决:让客户直接调用受托类。动机原创 2015-03-02 19:48:16 · 4633 阅读 · 0 评论 -
重构笔记——隐藏“委托关系”
本文是在学习中的总结,欢迎转载但请注明出处:http://write.blog.csdn.net/postedit/43769929 在上一篇文章中介绍了“将类内联化”。本文将介绍“隐藏委托关系”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:客户通过一个委托关系来调用另一个对象。 解决:在服务类上建立客户所需的所有函数,用以隐藏委托关系。原创 2015-02-12 20:55:46 · 2771 阅读 · 0 评论 -
重构笔记——将类内联化
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43159817 在上一篇文章中介绍了“提炼类”。本文将介绍“将类内联化”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:某个类并没有做太多的事情。 解决:将这个类的所有特性搬移到另一个类中,然后移除原类。动机原创 2015-01-26 20:45:03 · 3309 阅读 · 0 评论 -
重构笔记——提炼类
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43059759 在上一篇文章中介绍了“搬移字段”。本文将介绍“提炼类”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:某个类做了应该由两个类做的事原创 2015-01-23 19:35:29 · 3468 阅读 · 1 评论 -
重构笔记——搬移字段
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42780243 在上一篇文章中介绍了“搬移函数”。本文将介绍“搬移字段”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:程序中某个字段被其所驻类之原创 2015-01-16 18:16:20 · 2339 阅读 · 0 评论 -
重构笔记——搬移函数
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42679983 我们都知道,类往往因为承担过多的责任而变得臃肿不堪。这种情况下,一般会使用"提炼类"这种手法将一部分责任分离出去。如果一个类变得"不负责任",一般会使用“内联类”这种手法将它融入另一个类。如果一个类使用了另一个类,一般会运用"隐藏委托关系"手法将这种关系隐藏起来通常是有帮助的。有时候隐藏委托关系会导致拥有者的接口经常性地变化,原创 2015-01-13 18:26:22 · 14935 阅读 · 0 评论 -
重构笔记——替换算法
本文是在学习中的总结,欢迎转载但请注明出处: 在上一篇文章中介绍了“以函数取代函数对象”。本文将介绍“替换算法”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:你想要吧某个算法替换为另一个更清晰的算法。 解决:将函数本体替换为另一个算法。 //重构前 String foundP原创 2015-01-10 13:53:14 · 2826 阅读 · 0 评论 -
重构笔记——以函数对象取代函数
本文是在学习中的总结,欢迎转载但请注明出处: 在上一篇文章中介绍了“移除对参数的赋值“。本文将介绍“以函数对象取代函数”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:你有一个大型函数,其中对局部变量的使用使你无法采用“提炼函数”这种重构手法。 解决:将这个函数放进一个单独对象中,这原创 2015-01-09 07:58:46 · 3647 阅读 · 0 评论 -
重构笔记——移除对参数的赋值
本文是在学习中的总结,欢迎转载但请注明出处: 在上一篇文章中介绍了“移除对参数的赋值“。本文将介绍“移除对参数的赋值”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:代码对一个参数进行赋值。 解决:以一个临时变量取代该参数的位置。原创 2015-01-07 18:43:41 · 3268 阅读 · 0 评论 -
重构笔记——分解临时变量
本文是在学习中的总结,欢迎转载但请注明出处: 在上一篇文章中介绍了“重构笔记——引入解释性变量“。本文将介绍“分解临时变量”这种重构手法。 下面让我们来学习这种重构手法吧。 开门见山 发现:你的程序有某个临时变量被赋值超过一次,它既不是循环变量,也不被用于收集计算结果。 解决:针对每次赋值,创造一个独立、对原创 2015-01-06 19:33:49 · 3009 阅读 · 0 评论 -
重构笔记——引入解释性变量
本文是在学习中的总结,欢迎转载但请注明出处: 在上一篇文章中介绍了“以查询取代临时变量“。本文将介绍“引入解释性变量”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:你有一个复杂的表达式。 解决:将该复杂的表达式(或其中的部分)的结果放进一个临时变量,并以此变量名称来解释表达式用途。原创 2015-01-05 07:24:28 · 3984 阅读 · 0 评论 -
重构笔记——以查询取代临时变量
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42167015 在上一篇文章中介绍了“ 内联临时变量“。本文将介绍“以查询取代临时变量”这种重构手法。 下面让我们来学习这种重构手法吧。开门见山 发现:你的程序以一个临时变量保存原创 2015-01-04 07:40:30 · 5230 阅读 · 3 评论 -
重构笔记——内联临时变量
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42167015 在上一篇文章中介绍了“ 内联函数“。本文将介绍“内联临时变量”这种重构手法。 下面让我们一起来学习该重构手法把。(PS:虽然某些重构手法看起很简单,但是和其它重构手法结合起来使用,会产生异曲同工的原创 2014-12-31 08:15:34 · 4995 阅读 · 2 评论 -
重构笔记——内联函数
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42261333 在上一篇文章中介绍了“提炼函数“。本文将介绍“内联函数”这种重构手法。 下面让我们一起来学习该重构手法把。原创 2014-12-30 08:10:04 · 6103 阅读 · 8 评论 -
重构笔记——提炼函数
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42214393 在前面的三篇文章中介绍了重构入门篇、代码的坏味道(上)、代码的坏味道(下)。本文将正式开启重构之旅。从本文开始在后续的文章中会陆续介绍92种重构手法,每一种重构手法都会对应于一种代码坏味道。在介绍的过程中,每一种重构手法也将对应一篇文章,可能有的重构手法比较简短,但是为了便于整理还是单独将其列为一篇。(PS:不管怎样,我都会坚持把这些原创 2014-12-28 15:45:05 · 5823 阅读 · 3 评论 -
重构笔记——构筑测试体系
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42167015 作为一名程序员,不知你是否在开发过程中也很少甚至不写测试程序,可能大多数人觉得这很正常,其实从个人角度来看也很正常,因为毕竟有测试人员专门进行测试的嘛!但是,如果能够认真观察程序员把最多时间耗在哪里,你就会发现,编写代码其实只占非常小的一部分。有些时间用来决定下一步干什么,另一些时间花在设计上,最多的时间则是用来调试。我敢肯定每一位读者原创 2014-12-26 08:06:51 · 4752 阅读 · 1 评论 -
重构笔记——代码的坏味道(下)
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42083495 在重构笔记——代码的坏味道(上)中介绍了22种坏味道中的11种,本文将介绍其余的11种坏味道。之所以将其分为两篇文章介绍,是因为一篇文章介绍22种方法显得篇幅太长,担心读者难以坚持看完。(PS:在对这些"代码的坏味道“了解和熟悉后,我们就要开始有针对性地进行重构了,但是在进行重构之前,我们似乎还缺少点什么!对了,我们还缺少测试环境!在开发的原创 2014-12-22 18:59:32 · 5215 阅读 · 0 评论 -
重构笔记——代码的坏味道(上)
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42041757 在重构入门篇中,简单地介绍了重构的定义、为何重构、何时重构等。我想对于重构是如何运作的,你已经有了较好的理解了。但是对于代码中的坏味道,你可能知道的并不多。坏味道可能是无形中产生的,也可能是开发人员偷懒造成的,还可能是其它某些因素导致的。不管怎么样,代码中的坏味道对程序没有半点好处,它会促使程序腐烂,甚至变质。对于开发人员,真的是很有必要原创 2014-12-20 11:51:53 · 13956 阅读 · 19 评论 -
重构笔记——入门篇
程序员经常会遇到晦涩难懂的代码,尤其是他人写的代码,可能是同事离职后转交给你维护的,也可能是项目遗留下来的。不管怎么样,当你被迫从一个2000行代码的类或一个500行代码的方法中去寻找并解决bug,我想大多数人都会头疼,对于没有一点注释的代码,甚至想死的心都有。这时候我们少不了会在心中默默诅咒写出这样代码的人。我想不管对于你还是我自己,当我们在开发的过程中,经常会抱以只要程序能正常运行就行,而不管代码是否整洁的心态。这样的做法其实是在坑自己,不要等到后续代码维护时再后悔当初没有把代码写好,那时再对代码进行修原创 2014-12-17 20:06:08 · 6103 阅读 · 5 评论