《Refactoring Improving the design of existing code》--Martin Fowler
chapter-1
例子1:根据不同类型电影,租期长短,计算价格,并输出。写到一个方法了。
可能变化:增加/改变输出样式,电影类型分类可能会变,计费标准会变。
只有优秀的人才能写出人易读的代码。机器永远会理解。
方法/变量名称,是代码清晰的关键。
方法应该放在,它使用的数据所属对象内,这样依赖低。
2,一个电影可以在生命周期内修改分类,一个对象却不能修复所属类。
不能创建电影子类,但可以创建价格子类。replace type with state/strategy,
把type相关行为移到state/strategy内部。
模式取决于:state:代表电影的某个状态,strategy代表计费策略。反映对结构的想法。
面向对象:思考对象的职责。
重构随时随地。
事不过三,三则重构。
重构可以取代预先设计。
switch少用,switch意味着重复。
间接层/方法:价值大于代价(易读复用)才有必要存在。
重复是万恶之源
chapter-6
6.1 extract method 以它“做什么”命令,不是怎么做。
6.4 replace temp with query 。临时变量尽量用final修饰。
double getPrice(){return getBasePrice * discountFactor();}
6.5 introduce explaining variable 解释性变量
boolean isMacOs = platform.indexOf("MAC") > -1;
if( isMacOs && isIEBrower){...}
chapter-7
如果一个类承担太多责任,考虑extract class,如果太鸡肋,考虑inline class
chapter-8
状态码
不变、且行为相同,不用抽取。比如性别男女。
不变、行为不同,抽取子类。
可变,生命周期内可变、或其他原因不能继承,使用state/stratege模式
chapter-9简化方法调用
查询、修改方法分离。getTotalAndSetSum()-->getTotal(),setSum();
参数超过4个时,使用对象封装参数。
工厂方法:根据类型码,提供一组类的,对象构造方式。接口简单统一。
如果有向下转型的代码,首先考虑是否可以用模板类代替。
组合:子类不需要父类的很多操作和接口。接口不能反映子类的功能,意图混淆。
继承:需要使用受delegation的类的所有方法,则改为继承。
类内部field自我封装:直接使用变量,直到它带来麻烦为止,自我封装是方便子类覆盖。
replace data value with object 把电话号码抽取成对象,因为有格式化,抽取区号,登方法
new Customer(1).store(),new Customer(2).store(),store(){list.add(this);}
多个order对应同一个customer,应该只对象改为引用对象,使用工厂
引用对象回提高难度
数组,集合,只应用于一组类似对象,如果不是使用包装对象替换,replace array with object
比如:一个元素是名字,第二个是分数,就应该封装为对象。
相关推荐
3. 过长的方法:如果一个方法执行了太多的任务,它就违反了单一职责原则,使得阅读和测试变得困难。应将大方法拆分成小的、可重用的部分。 4. DRY原则:重复的代码应当被提取成公共函数或模块,避免在多个位置重复...
重构的益处多样,包括改善软件设计,使代码更易于阅读和理解,帮助定位和修复bug,以及提高编程效率。重构应该成为开发过程中的常态,特别是在添加新功能、修复错误或代码审查时,都是进行重构的好时机。当发现代码...
下面将详细解读这个领域的核心知识点,并基于"代码质量-读书笔记"的内容展开讨论。 首先,我们要理解什么是代码质量。代码质量不仅仅关乎代码的正确性,更包括其可读性、可维护性、可扩展性等多个方面。良好的代码...
在阅读这本书的过程中,我们可以学到很多关于代码整洁性的关键概念。 1. **命名规范**:书中的一个重要部分强调了有意义的命名对于代码可读性的重要性。好的命名应该简洁明了,能够准确反映变量、函数或类的用途。...
这些笔记对于理解和实践重构会有很大的帮助,它们可以作为阅读电子书的补充,帮助读者更好地吸收和应用书中的知识。 另外,"Refactoring"这个文件可能是一个代码库,包含书中用作示例的源代码。这些代码示例是实际...
《重构商业:产业互联网时代的商业模式重构》读书笔记模板.pptx
阅读本书,有助于搭建优质营销体系,提升销售成功率,打造有执行力、有创造力、有活力的营销组织,理解营销体系的定位、使命以及未来的发展方向,构建流程并用好铁三角组织,搭建资源服务型组织,形成差异化解决方案...
总之,通过这本书和相关笔记,开发者不仅可以掌握重构的技术和方法,还能学会如何在实践中运用设计模式,从而编写出更高效、更易维护的代码。无论是对于初学者还是经验丰富的开发者,这本书都提供了丰富的学习材料,...
同时,read.txt文件可能包含作者的前言或阅读指南,提供了学习此笔记的建议和注意事项。 总的来说,《31天重构系列笔记》是C#开发者提升代码质量和效率的宝贵资源。通过系统的练习和学习,开发者可以提升自己的重构...
《从跟随到领先:H为管理体系重构之路》读书笔记.pdf
《从跟随到领先:H为管理体系重构之路》读书笔记.docx
《从跟随到领先:华为管理体系重构之路》读书笔记x.pptx
《从跟随到领先:H为管理体系重构之路》读书笔记.pptx
《重构笔记》主要探讨的是软件开发过程中的一个重要实践——重构,它是提高代码质量、可维护性和...通过深入阅读这份文档,开发者可以学习如何在实践中提升自己的重构能力,从而打造出更加优雅、易于维护的软件系统。
### 《Python编程金典》读书笔记知识点梳理 #### 1. 绪论 绪论部分通常会介绍Python的历史背景、特点以及为什么选择Python作为学习和使用的编程语言。此外,还会涉及Python与其他编程语言的区别,以及它在不同领域...
虽然这本书已经出版了很久,但是在这20年左右时间里,重构的核心思想并没有过时,许多实际的重构手法并没有什么重大变化。让我觉得是时候考虑再版有几个原因:一个原因是,第1版里的代码已经很陈旧了,书里面还有...
个人读书笔记,学习共享,希望每个苦恼于代码一坨坨混乱不堪的程序员都能学习. * 整洁代码的意义? 可读性,可维护性。 * 如何写出整洁代码? 1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守...