大话重构 大话重构 8.5分

大话重构

Random
软件重构的动机
- 增加新功能 - 改正原有的BUG - 改善原有程序结构 - 优化原有系统性能

这里的重构指的主要是后面两条,你拿到一个遗留系统,不要想着一口气做一个新的系统,把旧的功能都搬到新的系统上面。这样百分百会失败。新系统会比老系统还要糟糕。

正确的做法是阅读遗留系统的代码,给代码加上注释。尽可能地抽取方法抽取类,在不改变原有系统的外部行为的前提下修改代码。

放弃大布局,小步快跑的开发方式

你需要做一套完整的测试机制,但是Web容器是不适合做自动化测试的。这时候你就要分离出业务层和Web层。

OCP

Open-Close-Principle 开放-封闭原则

我们开发软件系统,对于功能扩展是开放的。

同时,在修改代码的同时,不要影响到系统原有的功能。(即不要引入新的BUG)

主要思想就是,新旧代码要尽可能地分开。

保证软件功能扩展是满足OCP!

DIP

Dependency Inversion Principle 依赖反转原则

高层次的模块不应该依赖底层次的模块,都应该依赖于抽象接口。

抽...

显示全文
软件重构的动机
- 增加新功能 - 改正原有的BUG - 改善原有程序结构 - 优化原有系统性能

这里的重构指的主要是后面两条,你拿到一个遗留系统,不要想着一口气做一个新的系统,把旧的功能都搬到新的系统上面。这样百分百会失败。新系统会比老系统还要糟糕。

正确的做法是阅读遗留系统的代码,给代码加上注释。尽可能地抽取方法抽取类,在不改变原有系统的外部行为的前提下修改代码。

放弃大布局,小步快跑的开发方式

你需要做一套完整的测试机制,但是Web容器是不适合做自动化测试的。这时候你就要分离出业务层和Web层。

OCP

Open-Close-Principle 开放-封闭原则

我们开发软件系统,对于功能扩展是开放的。

同时,在修改代码的同时,不要影响到系统原有的功能。(即不要引入新的BUG)

主要思想就是,新旧代码要尽可能地分开。

保证软件功能扩展是满足OCP!

DIP

Dependency Inversion Principle 依赖反转原则

高层次的模块不应该依赖底层次的模块,都应该依赖于抽象接口。

抽象接口不应该依赖于具体实现,而具体实现则应该依赖于抽象接口。

靠近人机交互的为高层次。

靠近硬件设备端的为低层次。

降低程序的依赖度

- 工厂模式 - 适配器模式 - 桥接模式 - 策略模式 - 命令模式 - 组合模式&装饰者模式(包装)

分层

MVC层 业务逻辑层 数据访问层
贫血模型 充血模型

一次完整的重构过程

- 分解大函数 - 拆分大对象 - 提高复用率 - 发现扩展点 - 降低依赖度(相互解耦) - 分层 - 领域设计驱动

总之

这本书里的内容很详细地讲解了如何对于一个遗留系统如何更好地进行维护和二次开发的步骤。有很好的代码示例讲解,书中的UML图示例更是一目了然,各种逻辑关系一看图就完全理解了。对于系统重构需求的吐槽也是句句精准。这本书很适合初学者一看。

0
0

查看更多豆瓣高分好书

回应(0)

添加回应

大话重构的更多书评

推荐大话重构的豆列

了解更多图书信息

值得一读

    豆瓣
    我们的精神角落
    免费下载 iOS / Android 版客户端
    App 内打开