读书笔记-《重构:改善既有代码的设计》

第一章

1.13

如果你要给程序添加一个特性,但发现代码因缺乏良好的结构而不易于进行更改,那就先重构那个程序,使其比较容易添加该特性,然后再添加该特性。

准备好测试case,用于验证重构前后是否结果一致。(bug检测器)

1.14

每次成功的重构后我都会提交代码,如果待会不小心搞砸了,我便能轻松回滚到上一个可工作的状态。把代码推送(push)到远端仓库前,我会把零碎的修改压缩成一个更有意义的提交(commit)。

变量接近调用地方;减少临时变量,改为作为参数传入方法;主方法简单;重构时先不用管性能问题。

1.15

用一个对象作为参数传递的中转,代替多个参数;中转对象的数据构造可放到独立类中,和其他逻辑分离。

1.29

提炼函数、内联变量、搬移函数和以多态取代条件表达式

有3个较为重要的节点,分别是:将原函数分解成一组嵌套的函数、应用拆分阶段分离计算逻辑与输出格式化逻辑,以及为计算器引入多态性来处理计算逻辑。

好代码的检验标准就是人们是否能轻而易举地修改它。

开展高效有序的重构,关键的心得是:小的步子可以更快前进,请保持代码永远处于可工作状态,小步修改累积起来也能大大改善系统的设计。

第二章 重构的原则

重构的关键在于运用大量微小且保持软件行为的步骤,一步步达成大规模的修改。每个单独的重构要么很小,要么由若干小步骤组合而成。因此,在重构的过程中,我的代码很少进入不可工作的状态,即便重构没有完成,我也可以在任何时刻停下来。

Kent Beck提出了"两顶帽子"的比喻:加新功能时,我不应该修改既有代码;重构时我就不能再添加功能,只管调整代码的结构。

何时重构:事不过三,三则重构。

  1. 预备性重构:在动手添加新功能之前,让添加新功能更容易
  2. 帮助理解的重构:使代码更易懂,先理解代码在做什么,然后才能着手修改
  3. 有计划的重构和见机行事的重构
相关推荐
今夕资源网16 小时前
Pogget 轻量化文件效率工具,重构文件交互逻辑,实现音速启动与快捷方式统一管理
重构·快速启动·音速启动·桌面快捷方式管理
EasyGBS20 小时前
从“看得见”到“看得安全”:国密GB35114国标GB28181平台EasyGBS双标协同重构安防视频安全体系
网络·安全·重构
互联网散修21 小时前
零基础鸿蒙应用开发第二十九节:策略模式重构电商促销系统
重构·策略模式·鸿蒙零基础入门
leijiwen1 天前
BDCM(比干数商模型):打造 Web4.0 会员数商模型,帮企业进入数字商业文明,重构实体经济
大数据·人工智能·重构
Fang_YuanAI1 天前
AI正在重构电商行业
大数据·人工智能·ai·重构·aigc·教育电商·电商
机器学习之心1 天前
信号分解和小波阈值联合降噪 | NRBO-FMD基于牛顿拉夫逊算法优化特征模态分解+皮尔逊系数+小波阈值降噪+信号重构,MATLAB代码
算法·matlab·重构·nrbo-fmd·特征模态分解
C'ᴇsᴛ.小琳 ℡2 天前
架构重构的技术
重构·架构
无忧智库2 天前
智慧算力枢纽中心建设方案:从“烟囱林立”到“云网融合”的数字化重构(PPT)
重构
计算机安禾2 天前
【数据结构与算法】第31篇:排序概述与插入排序
c语言·开发语言·数据结构·学习·算法·重构·排序算法
南风知我意9572 天前
【重构思维】用位运算做权限管理
前端·面试·职场和发展·性能优化·重构