重构改善既有代码的笔记

本博客主要是学习《重构-改善既有代码》时的笔记和心得。

结论:

  1. 分层的思想,增加层级可以隔离变化
  2. 唯一不会变化的就是变化本身
  3. 符合6大基本原则
  4. 面向接口,面向对象编程,每个类都有抽象父类或者接口
  5. 不断的思考哪里还可以修改,还可以更加简洁,分层 层次更加清晰

重构时机:

当发现需要添加一个新的特性很麻烦的时候,阅读的很吃力,不好理解,看起来不优雅,不爽,就需要重构了。

重构第一章 一个Demo:

  1. 建立可靠的测试环境。
  2. 过长函数分解成小函数,每次修改后都要运行测试
  3. 变量名称修改,尽量改成符合人的阅读习惯
  4. 函数应该放到对应的类中
  5. 去除临时变量
  6. 运用多态取消掉条件判断:最好不要在另一个对象的基础属性中使用switch语句,就算要用也要在对象自己的数据上使用。

重构的原则:

对软件内部的一种调整,在不改变软件可观察的前提下,提高其可理解性,降低其修改成本。
开发过程中只做2件事:添加新功能和重构。不能同时做。

代码的坏味道:

1.重复的代码 :提炼
2.过长的函数:分解
3.过大的类 :分类
4.过长的参数:尽量用 对象代替
5.发散式变化:就是说一个类 引起其变化的原因 有2个以上。
6.散弹式修改:就是说遇到某种变化时,许多类都要修改
7.依恋情节:函数对某个类的兴趣高过对自己所属的类。
8.数据泥团:总是绑在一起出现的数据应该拥有属于他们自己的对象。减少参数和字段的个数
9.基本类型偏执:尽量使用对象 代替 数值
10.switch现身:尽量少用switch,使用多态消除
11.平行继承体系:让一个继承体系的实例去引用另一个继承体系的实例
12.消除冗余类:
13.夸夸其谈未来性
14.令人迷惑的暂时字段:把这些变量和相关函数 提到一个新的类中
15.过度耦合的消息链:一个对象请求另一个,另一个又去请求另另一个。
16.中间人:过度的委托了
17.2个类之间过于亲密
18.异曲同工的类:2个函数做同一件事,却有2个不同的签名
19.不完美的类库
20.纯数据类:
21.被拒绝的遗赠:使用委托 代替不必要的继承
22.过多的注释:并不是说注释不好,而是 完美可以用好的代码去代替 注释

构筑测试体系

1.junit测试框架

重构列表

就是重构时要从以下方面去思考:

  1. 名称
  2. 概要
  3. 动机
  4. 做法
  5. 范例

重新组织函数

1.提炼函数 extract method
2.内联函数 inline method
3.内联临时变量 inline temp
4.以查询取代临时变量replace temp with query
5.引入解释性变量introduce explain variable
6.分解临时变量split temporary variable
7.移除对参数的赋值remove assignments to parametes
8.以函数对象取代函数replace method with mehod object
9.替换算法substitute algorithm

在对象之间搬移特性

1.搬移函数move method
2.搬移字段move field
3.提炼类extract class
4.将类内联化inline class
5.隐藏委托关系hide delegate
6.移除中间人remove middle man
7.引入外加函数introduce foreign method
8.引入本地扩展introduce local extension

重新组织数据

1.自封装字段self encapsulate field
2.以对象取代数据值replace data value with object
3.将值对象改为引用对象change value to reference
4.将引用对象改为值对象change reference to value
5.以对象取代数组replace array with object
6.赋值被监视数据duplicate observed data
7.将单向关联改为双向关联
8.将双向关联改为单向关联
9.封装字段encapsulate field
10.封装集合encapsulate collection
11.以子类取代类型码
12.以类取代类型码
13.以状态或者策略模式取代类型码
14.以字段取代子类

简化条件表达式

1.分解条件表达式
2.合并条件表达式
3.合并重复的条件判断
4.移除控制标记
5.以卫语句取代嵌套条件表达式
6.以多态取代条件表达式
7.引入null对象
8.引入断言

简化函数调用

1.函数改名
2.添加参数
3.移除参数
4.将查询函数与修改函数分离(避免函数有副作用)
5.以明确函数代替参数
6.保持对象完整
7.以函数代替参数
8.引入参数对象
9.移除设置函数
10.隐藏函数-修改访问控制符为private
11.以工厂函数取代构造函数
12.封装向下转型
13.以异常取代错误代码
14.以测试取代异常

处理概括关系-主要是继承关系

1.字段上移
2.函数上移
3.构造函数本体上移
4.函数下移
5.字段下移
6.提炼子类
7.提炼超类
8.提炼接口
9.折叠继承体系
10.塑造模板函数
11.以委托取代继承
12.以继承取代委托

大型重构

不是为了重构而重构,是要有明确的目的时才进行重构
四个大型重构方法:
1.梳理并分离继承体系
2.将过程化设计转化为对象设计
3.将领域和表述/显示分离-就是分层的思想如 mvc mvp mvvm
4.提炼继承体系-就是增加中间层

总结

谨慎 和 2顶帽子
好的代码,是具有易扩展,易维护,健壮性,可读性,高内聚低耦合的特点。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 重构改善既有代码是指对一个已经存在的代码进行优化和改进,从而提高代码的可读性、可维护性和可扩展性。对于电子书的MOBI格式来说,重构改善有以下几个方面的作用。 首先,重构可以提高代码的可读性。通过重构,我们可以优化代码的结构,使其更加清晰易懂。对于MOBI格式来说,我们可以重新组织文件的结构,提取出公共的代码片段,增加注释和文档说明,使其更容易理解和维护。 其次,重构可以增强代码的可维护性。通过重构,我们可以降低代码的复杂度,减少代码的冗余和重复,使其更易于维护和修改。对于MOBI格式来说,我们可以使用面向对象的设计原则,提取出独立的功能模块,使其可以独立测试和维护。 再次,重构可以提高代码的可扩展性。通过重构,我们可以将代码的功能进行模块化和解耦,使其能够灵活扩展和增强功能。对于MOBI格式来说,我们可以设计可插拔的功能模块,使其能够方便地添加新的特性和支持新的格式。 最后,重构可以提高代码的性能和效率。通过重构,我们可以优化代码的算法和数据结构,减少不必要的计算和存储开销,提高代码的执行效率。对于MOBI格式来说,我们可以优化文件解析和渲染的算法,提高电子书的加载速度和用户体验。 综上所述,通过重构改善既有代码,对于电子书的MOBI格式来说,可以提高可读性、可维护性、可扩展性,同时也可以提高性能和效率。重构是一个长期持续的过程,需要不断地改进和优化,以保持代码的健康和可持续发展。 ### 回答2: 重构改善既有代码是指通过对已有代码的优化和修改,使其更加易于理解、扩展和维护。对于电子书的mobi格式文件,可以采取以下重构改善措施: 首先,对代码进行模块化重构。将功能相关的代码段封装为独立的模块或类,使其具备高内聚性和低耦合性。例如,可以将与电子书内容解析和渲染相关的代码放置于一个独立的模块中,与界面交互相关的代码放置于另一个模块中。这样可以使代码结构更加清晰,易于理解和维护。 其次,采用设计模式对代码进行重构。设计模式是一种被广泛应用于软件开发中的经验总结,可以提供可靠、灵活和可维护的解决方案。对于电子书mobi格式的代码,可以采用一些常见的设计模式,如工厂模式、单例模式、观察者模式等,来改善代码的设计和结构。 此外,注重代码的可读性和可维护性也是重要的重构目标。通过添加适当的注释、命名变量和函数等,使代码更加清晰易懂。同时,消除重复代码、提取公共代码,使代码更加简洁、可复用。 最后,进行性能优化是重构过程中的另一个关键点。通过分析和定位性能瓶颈,优化代码的执行效率,提高电子书mobi文件的加载速度和响应能力。可以采用一些优化技术,如缓存、异步加载等,来改善代码的性能。 总结起来,通过模块化重构、采用设计模式、提高可读性和可维护性、性能优化等措施,可以改善电子书mobi格式的既有代码。这样可以使代码更加健壮、可扩展和易于维护,提高电子书的用户体验。 ### 回答3: 重构是指对既有代码进行优化和改进,以提高代码质量、可维护性和可扩展性。 首先,对于电子书 mobi 文件的重构,可以从文件结构和命名方面着手。通过整理文件和目录结构,使其更加清晰和简洁,方便代码的阅读和维护。同时,对于变量、函数和类的命名,遵循一致且有意义的命名规则,以增加代码的可读性。 其次,可以通过减少代码冗余来改善代码。通过分析重复出现的代码块,并将其提取为可复用的函数或类,以减少代码量和维护成本。此外,还可以利用面向对象编程的特性,将功能相关的代码封装成类,以提高代码的灵活性和可重用性。 另外,重构还可以通过代码的重组和优化来改善代码的性能。首先,可以对算法和数据结构进行优化,以减少时间复杂度和空间复杂度。此外,通过减少不必要的计算和避免频繁的IO操作,可以进一步提高代码的执行效率。 此外,重构还需要考虑代码的可测试性。通过引入单元测试和集成测试,可以对重构后的代码进行验证,以确保代码的正确性和稳定性。同时,还可以通过使用自动化测试工具,提高测试的效率和覆盖率。 最后,还可以通过代码注释和文档编写来改善代码的可维护性。通过为代码添加清晰的注释,可以方便其他开发人员的理解和维护。同时,编写详细和准确的文档,可以帮助其他人员快速上手并了解代码的功能和使用方法。 综上所述,重构改善既有代码的电子书 mobi 文件可以通过优化文件结构和命名、减少代码冗余、提高性能、提升可测试性和编写文档等方式来实现。重构的最终目的是提高代码的质量和可维护性,使其更加易读易懂、高效稳定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值