《重构2》第九章-重组数据

简介: 《重构2》第九章-重组数据

代码运行中,一个值用于不同字段,或者一个字段对象不同的值,将会造成数据的紊乱,即使有注释,也无济于事!!!

1. 拆分变量

有一些变量承担了一段代码运算的结果,以便后续使用,但是如果被赋值超过一次,则意味着这个歌变量有了更多的责任,此时,就应该将这个字段拆分为多个,分别承担一个责任.
一个变量承担的责任太多,会让代码阅读的成本倍数增加!

2. 字段改名

承认吧,在开发时期,字段/函数起名时一个大难题,但是基于当前代码环境,语义话的命名是我们执行的规则,那么为什么还要字段改名呢?随着时间的流逝,我们给变量赋予了更多的功能,或者,我们想到了更合适的名称.当然,在重构之时,记得更改调用方法名称.

3. 以查询取代派生变量

用对象或者函数减少代码的耦合,尽量缩小可变数据的作用率!

4.将引用对象改为值对象/将值对象改为引用对象

将引用对象改为值对象:其实就是将对象引用,改为类的获取引用
将值对象改为引用对象:就是将new的对象值,改为使用数据结构引用

目录
相关文章
|
7月前
|
存储 传感器 算法
【软件设计师备考 专题 】设计物理数据:数据特性分析和逻辑数据组织
【软件设计师备考 专题 】设计物理数据:数据特性分析和逻辑数据组织
162 1
|
3月前
|
监控 安全 项目管理
『软件工程3』你应该知道的三种原型实现模型:抛弃式、演化式、增量式
该文章详细解释了三种原型实现模型——抛弃式、演化式、增量式模型的特点、流程、优缺点及适用场景。
『软件工程3』你应该知道的三种原型实现模型:抛弃式、演化式、增量式
|
5月前
软件复用问题之减少软件系统中的“熵增”,如何解决
软件复用问题之减少软件系统中的“熵增”,如何解决
《重构2》第八章-搬移
《重构2》第八章-搬移
132 0
|
设计模式 JSON 缓存
如何“好好利用多态”写出又臭又长又难以维护的代码?| Feeds 流重构方案
如何“好好利用多态”写出又臭又长又难以维护的代码?| Feeds 流重构方案
87 0
|
机器学习/深度学习 存储 算法
为什么LSTM看起来那么复杂,以及如何避免时序数据的处理差异和混乱(二)
为什么LSTM看起来那么复杂,以及如何避免时序数据的处理差异和混乱(二)
126 0
为什么LSTM看起来那么复杂,以及如何避免时序数据的处理差异和混乱(二)
|
机器学习/深度学习 存储 程序员
为什么LSTM看起来那么复杂,以及如何避免时序数据的处理差异和混乱(一)
为什么LSTM看起来那么复杂,以及如何避免时序数据的处理差异和混乱(一)
197 1
为什么LSTM看起来那么复杂,以及如何避免时序数据的处理差异和混乱(一)
|
自然语言处理 算法 JavaScript
重构的秘诀:消除重复,清晰意图
  11年前有幸阅读了《重构——改善既有代码的设计》第一版,当时是一口气读完的,书中的内容直接惊艳到我了。   今年读了该书的第二版,再次震撼到我了,并且这次的示例代码用的JavaScript,让我更有亲切感。   全书共有12章,前面5章是在讲解重构的原则、测试、代码的坏味道等内容,后面7章是各种经验和实践,全书的精髓所在。
|
XML 数据格式
改善代码设计 —— 处理概括关系(Dealing with Generalization)
  系列博客       1. 改善代码设计 —— 优化函数的构成(Composing Methods)       2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects)       3.
981 0