草庐IT

代码坏味道(一)

1、神秘命名  模块、类、函数、变量等的命名是编程中最难的两件事之一,正因为如此,改名可能是最常用的重构手法  对应的重构手法有:改变函数声明、变量改名、字段改名2、重复代码  顾名思义,就是在多处看到相同的代码结构  对应的重构手法有:移动语句、提炼函数3、过长的函数  确保函数内代码处在同一层抽象级,无须担心进程内的函数开销,提倡小函数4、过长参数列表  一个函数的参数一旦出现3个及以上,就需要注意,不易理解、使用和维护  对应的重构手法有:以查询取代参数、保持对象完整、引入参数对象、移除标记参数、函数组合成类5、全局数据  全局数据最显而易见的形式就是全局变量,他j可以给函数增加状态,这

代码坏味道(二)

1、可变数据  数据更新导致,而另外一处期待不同的值  对应的重构手法:封装变量、拆分变量、移动语句、提炼函数、将查询函数和修改函数分离、移除设值函数、查询取代派生变量、函数组合成类、函数组合成变换、引用对象改为值对象  欠理解2、发散式变化  每次只关心一个上下文(一旦产生修改,跳到系统某个点,只在该处做修改)  对应的重构手法:拆分阶段、搬移函数、提炼函数、提炼类3、霰弹式修改  类似于发散式变化,但是又恰恰相反(没明白书里这话是什么意思)  对应重构手法:搬移函数、搬移字段、函数组合成类、函数组合成变换、拆分阶段、内联函数、内联类4、依恋情结  最大化区域内部交互、最小化跨区域交互,也可

代码坏味道(二)

1、可变数据  数据更新导致,而另外一处期待不同的值  对应的重构手法:封装变量、拆分变量、移动语句、提炼函数、将查询函数和修改函数分离、移除设值函数、查询取代派生变量、函数组合成类、函数组合成变换、引用对象改为值对象  欠理解2、发散式变化  每次只关心一个上下文(一旦产生修改,跳到系统某个点,只在该处做修改)  对应的重构手法:拆分阶段、搬移函数、提炼函数、提炼类3、霰弹式修改  类似于发散式变化,但是又恰恰相反(没明白书里这话是什么意思)  对应重构手法:搬移函数、搬移字段、函数组合成类、函数组合成变换、拆分阶段、内联函数、内联类4、依恋情结  最大化区域内部交互、最小化跨区域交互,也可

读C#代码整洁之道笔记04_重构C#代码识别代码坏味道

1. 应用程序级别代码坏味道1.1. 布尔盲点1.1.1. 由于函数使用布尔值而导致的信息缺失1.1.2. 解决方案是将布尔替换为枚举类型1.2. 组合爆炸1.2.1. 不同的代码使用不同的参数组合来执行同一件事情的产物1.2.2. 解决方案使用泛型1.3. 人为复杂性1.3.1. 简单的架构复杂化1.3.2. 解决方案务必保持软件的简单易懂(KeepItSimple,Stupid,KISS)1.4. 数据泥团1.4.1. 相同的字段同时出现在不同的类和参数列表中时1.4.1.1. 说明系统中缺少类定义1.4.2. 识别并泛化缺失的类可以降低系统的复杂度1.5. 粉饰注释1.5.1. 注释中用

读C#代码整洁之道笔记04_重构C#代码识别代码坏味道

1. 应用程序级别代码坏味道1.1. 布尔盲点1.1.1. 由于函数使用布尔值而导致的信息缺失1.1.2. 解决方案是将布尔替换为枚举类型1.2. 组合爆炸1.2.1. 不同的代码使用不同的参数组合来执行同一件事情的产物1.2.2. 解决方案使用泛型1.3. 人为复杂性1.3.1. 简单的架构复杂化1.3.2. 解决方案务必保持软件的简单易懂(KeepItSimple,Stupid,KISS)1.4. 数据泥团1.4.1. 相同的字段同时出现在不同的类和参数列表中时1.4.1.1. 说明系统中缺少类定义1.4.2. 识别并泛化缺失的类可以降低系统的复杂度1.5. 粉饰注释1.5.1. 注释中用