1. 关于重构 1.1 什么是重构? =》不改变外部可观察行为的前提下改善内部结构 1.2 什么时候重构? 1.添加功能时 2.修复Bug时 3.代码Review时 1.3 重构的好处 1.改善设计 2.增强可维护性 3.发现Bug 1.4 与性能的冲突 重构可能会有性能损耗,但它改善了设计使得软件的调整根据容易。 对性能上的问题可以用如下策略 1.时间预算法。对类似实时系统有极高要求的系统。对各个组件做出时间特性做出预算及控制 2.持续关注系统。统计相关数据 3.利用度量工具监控,运用统计数据找出瓶颈 2. 代码里的坏味道 2.1 重复代码,过长的函数,臃肿的类,有分布式影响的代码 =》剥离,抽取,独立 2.2 过长的参数表,对未来作出太多假设 =》不要试图写万能的函数或类 2.3 过分委托,过度耦合,过长消息链 =》砍掉Middle Man 2.4 临时变量,纯数据容器 =》Data和Operation一起 2.5 Switch,平行继承体系,类之间过于亲密 =》多态的优化 3. 重新组织函数 3.1 Extract Method(提炼函数) =》改造代码段成小粒度函数,关键在于正确处理局部变量 3.2 Inline Method(内联函数) =》找到有用的委托,清掉无用的委托,以实现代码来替换调用 3.3 Inline Temp =》将变量替换为赋值的表达式 3.4 Replace Temp with Query(以查询代替临时变量) 3.5 Introduce Explaining Variable(引入解释性变量) =》将复杂表达式的部分结果放到临时变量,并以清晰地命名来解释 3.6 Split Temporay Variable(分解临时变量) =》非循环变量的临时变量建议不要被循环使用 3.7 Remove Assignments to Parameters(移除对参数的赋值) =》这点我并不是很认同 3.8 Replace Method with Method Object(以函数对象取代函数) =》如果是一个很Big的函数,这会是个好方法 3.9 Substitute Algorithm(替换算法) =》修改你的代码,换成更为清晰地实现算法 4. 对象之间的迁移 5. 数据组织 6. 简化条件表达式,函数调用 7. 处理概括关系 8. 大型重构 相关文章: 2022-12-23 2022-12-23 2022-12-23 2022-12-23 2022-12-23 2022-12-23