作者小头像 Lv.6
更多个人资料
4256 成长值
31 关注
33 粉丝
+ 关注 私信

个人介绍

个人小站:www.xiaowangyun.com

感兴趣或擅长的领域

人工智能、大数据、微服务架构、DevOps、IOT
个人勋章
  • 考证狂人
成长雷达
2010
1092
450
645
59

个人资料

个人介绍

个人小站:www.xiaowangyun.com

感兴趣或擅长的领域

人工智能、大数据、微服务架构、DevOps、IOT

达成规则

以上满足项可达成此勋章

  • 博客
  • 关注
  • 粉丝
  • 论坛
代码重构:纯稚的数据类(Data Class)
什么是“纯稚的数据类”?定义: DataClass是指:它们拥有一些字段,以及用于访问(读写)这些字段的函数,除此之外一无长物。这样的类只是一种不会说话的数据容器。影响: DataClass将数据与行为间关系割裂,破坏了面向对象的精髓。特定数据的操作分散在代码各处,可能造成代码霰弹式修改改进目标: 将特定数据的操作集中在一个地方,提高代码的可读性、可维护性、可扩展性等方法: 封装变量、封装...
作者小头像 孙小北
643
0
0
2022-04-30 00:12:16
643
0
0
代码重构:异曲同工的类(alternative classes with different interfaces)
什么是异曲同工的类(alternative classes with different interfaces)定义: 异曲同工的类——两个类功能一致,却有不同的定义(方法/接口)影响: 相关的业务逻辑可能会重复实现,或分布到不同类中,代码难维护改进目标: 统一接口、相同的功能只实现一份方法: 函数改名、搬移函数、添加参数、函数参数化、提炼超类、移除子类注:狭义的异曲同工:两个类功能完全相...
作者小头像 孙小北
969
0
0
2022-04-30 00:03:03
969
0
0
代码重构:过大的类(Large Class)
什么是过大的类定义:由于属性未分组和职责不单一而包含过多属性、方法和代码行的类影响:随着属性、方法和代码行数的不断增加,重复代码接踵而至,最终走向混乱改进目标:拆分过大的类,确保类职责单一方法:提取类提取子类提取接口/超类 案例1public class Workman { private final String name; private final Gender g...
作者小头像 孙小北
374
0
0
2022-04-29 23:57:58
374
0
0
代码重构:内幕交易(Insider Trading)
什么是内幕交易(Insider Trading)定义:模块之间互相引用,私下直接进行大量的数据访问和交换影响:增大模块间的耦合,容易导致循环依赖,加快架构腐化,甚至会朝着大泥球式的架构发展,严重影响可维护性改进目标:消除模块间不合理的依赖关系(特别是循环依赖),将私下的数据访问和交换放到明面上,使模块间解耦,提高可维护性方法:搬移函数、搬移字段、隐藏委托关系、以委托取代子类/超类 案例——...
作者小头像 孙小北
378
0
0
2022-04-29 23:51:15
378
0
0
代码重构:中间人(Middle Man)
什么是中间人(Middle Man)定义:一种过度使用委托(某类中一半以上方法都委托给其他类)的代码[1]影响:当需求发生某些变化的时候,作为中间人的代码总会被牵连一并修改,代码越发臃肿改进目标:减少委托方法:移除中间人、内联、以继承取代委托(旧版)、以委托取代超类/子类(新版)注[1]:其中的“一半以上”并非一个绝对的衡量值,在日常开发中,我们可基于代码实际业务含义、以及自身对代码的容忍...
作者小头像 孙小北
383
0
0
2022-04-29 23:47:10
383
0
0
代码重构:过长的消息链(Message Chains)
什么是过长的消息链(Message Chains)定义:如果你看到用户向一个对象请求另一个对象,然后再向后者请求另一个对象,然后再请求另一个对象……这就是消息链。在实际代码中你看到的可能是一长串取值函数或一长串临时变量。影响:客户端代码将与查找过程中的调用结构紧密耦合。一旦对象间的关系发生任何变化,客户端就不得不做出相应修改。改进目标:针对过长消息链,可以用这时候应该使用隐藏委托关系,把调...
作者小头像 孙小北
555
0
0
2022-04-29 23:43:35
555
0
0
代码重构:临时字段(Temporary Field)
什么是临时字段(Temporary Field)定义:某个实例变量仅为代码中一小部分功能临时所用而创建影响:通常一个对象会需要它的全部的变量。当一个变量看上去没什么用,却要试图了解他为什么在哪里时,会使类的作用变得更难理解,影响了代码的可读性和可维护性改进目标:消除临时字段,提升代码可读性、可维护性方法:提取类;引入特例 案例1代码背景Account为用户账户类,包含用户名、卡号、余额等信...
作者小头像 孙小北
473
0
0
2022-04-29 23:40:11
473
0
0
代码重构:夸夸其谈的通用性(Speculative Generality)
什么是夸夸其谈的通用性定义:过度的考虑程序的通用性影响:过度的设计导致代码不易理解和维护改进目标:删除过度设计的代码方法折叠继承体系内联类内联函数改变函数声明移除死代码 案例代码背景这是一个计算人的体脂比以及判断是否肥胖的需求的实现Person类用来记录人的各种数据HealthService类根据人的数据计算体脂比以及判断是否肥胖考虑到未来可能不止计算健康信息,专门抽取了一个人的...
作者小头像 孙小北
439
0
0
2022-04-29 23:36:56
439
0
0
代码重构:冗赘的元素(Lazy Element)
什么是冗赘的元素(Lazy Element)定义:冗赘的元素主要包括由于过度设计或在代码演进过程中,产生的冗余、废弃[1]或不足以独立承担其职责的类、方法、变量等影响:代码不简洁,存在多余的元素,造成在维护时无用修改,难以维护,影响代码的可读性。改进目标:消除冗赘的程序元素,提高代码的可读性、可维护性。方法•内联函数或内联类•如果这个类处于一个继承体系中,可以使用折叠继承体系•安全删除冗余...
作者小头像 孙小北
487
0
0
2022-04-29 23:33:48
487
0
0
代码重构:循环语句(Loops)
什么是循环语句(Loops)定义:针对集合或数组进行简单过滤、分组、映射、遍历操作,采用传统for循环语句进行遍历影响:影响代码复杂度,代码不够简洁、直观,不容易理解代码意图。改进目标:针对可以使用stream替代的for循环,使用stream替代,简化代码方法:针对集合或数组过滤、映射、去重、查找、统计使用stream替代注:并非所有for循环都是坏味道。for循环作为极其常见的语法,本...
作者小头像 孙小北
287
0
0
2022-04-29 23:29:08
287
0
0
总条数:195
  • 1
  • ...
  • 5
  • 6
  • 7
  • ...
  • 20
到第 页

上滑加载中

https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=0&rsv_idx=1&tn=baidu&wd=sed%20%E6%9B%BF%E6%8D%A2%E5%AD%97%E7%AC%A6%E4%B8%B2&rsv_pq=c7db61a600035dc5&rsv_t=5e19yEsbV9N5fIvdlGRU
作者小头像
作者小头像
快速交付
+ 关注 私信