重构 章八阅读笔记

24 阅读2分钟

《重构:改善既有代码的设计(第2版)》 ePUBw.COM 46个笔记

• 所有变量都处理完之后,编译。

如果我真的觉得日后它极有可能再度启用,那还是要删掉它,只不过可以在代码里留一段注释,提一下这段代码的存在,以及它被移除的那个提交版本号

当你尝试阅读代码、理解软件的运作原理时,无用代码确实会带来很多额外的思维负担。

动机

Remove Dead Code

8.9

动机

Replace Loop with Pipeline

8.8

拆分循环还能让每个循环更容易使用

2023/8/16 发表想法 不予苟同

拆分循环还能让每个循环更容易使用

动机

Split Loop

8.7

测试覆盖足够全面

每次移动代码之后运行测试,看看有没有任何测试失败

如果前者会修改后者中引用的变量,也一样不能安全地进行上述移动

移动代码时,最容易遵守的一条规则是,如果待移动代码片段中引用的变量在另一个代码片段中被修改了,那我就不能安全地将前者移动到后者之后

任何有返回值的函数都不存在副作用

让存在关联的东西一起出现,可以使代码更容易理解

动机

Slide Statements

8.6

消除重复

提升代码的表达力

动机

Replace Inline Code with Function Call

8.5

动机

Move Statements to Callers

8.4

消除重复

动机

Move Statements into Function

8.3

数据结构才是一个健壮程序的根基

动机

Move Field

8.2

发现需要频繁调用一个别处的函数,我也会考虑搬移这个函数

如果

搬移函数最直接的一个动因是,它频繁引用其他上下文中的元素,而对自身上下文中的元素却关心甚少。此时,让它去与那些更亲密的元素相会,通常能取得更好的封装效果,因为系统别处就可以减少对当前模块的依赖。

动机

Move Function

8.1

◆ 第8章 搬移特性

第8章 搬移特性