随笔分类 -  重构

摘要:提炼函数案例 一次循环中完成多个任务 参考 修改代码的艺术 6.1 新生方法 原始代码 需求:只对没有发布过的entry进行发布日期并且添加到列表中。 方式一 方式二 阅读全文
posted @ 2020-02-01 12:26 没有理由不会呀 阅读(202) 评论(0) 推荐(0)
摘要:https://github.com/phodal/migration 阅读全文
posted @ 2020-02-01 10:55 没有理由不会呀 阅读(112) 评论(0) 推荐(0)
摘要:类型转换的方法应该放到源类型还是目标类型中 如Integer和String对象的转换方法应该放到哪里? 需要将Integer对象转换为String对象,转换的方法应该放到String还是Integer? 答:转换的方法应该放到原对象中而不是目标对象。如果放到目标对象中,那么每次新增一个类型,目标类型 阅读全文
posted @ 2020-01-31 22:21 没有理由不会呀 阅读(151) 评论(0) 推荐(0)
摘要:简单的使用一下字段改名 为什么使用字段改名: ​ 你在一个软件上做的工作越多,对这个软件的数据的理解就越深刻,你需要把这些理解融入到代码中。利用名字的解释作用,让代码更容易被理解。 如何找到该变量的所有引用点 1. 类的私有字段: ​ 直接修改该字段名称,那么所有引用这个变量的地方将会报红,我们就找 阅读全文
posted @ 2019-06-27 13:48 没有理由不会呀 阅读(247) 评论(0) 推荐(0)
摘要:mozq 名词: 实体 引用 逻辑实体 可引用逻辑实体 不可引用逻辑实体 散弹式修改 逻辑存在形式:不可引用逻辑实体或者可引用逻辑实体 核心: 某个逻辑应该以什么形式存在呢?可引用逻辑实体(函数)还是不可引用逻辑实体(函数代码中)? 方案: 1.为多次使用的逻辑提供可引用的逻辑实体。 2.不是必须这 阅读全文
posted @ 2019-06-17 21:57 没有理由不会呀 阅读(412) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-06-10 19:10 没有理由不会呀 阅读(674) 评论(0) 推荐(0)
摘要:1 重构之重复代码: 2 3 1.(重复代码是)语义一致的逻辑 4 反例:语义一致的逻辑产生了多个实体 5 缺点:如果你为语义一致的逻辑产生了多个实体,那么当需要修改这个逻辑时,你必须保证同时修改所有的实体,并确保它们是一致的。否则,程序就会产生bug。无疑,这么做会额外增加很多的不必要的工作量。 阅读全文
posted @ 2019-05-21 17:07 没有理由不会呀 阅读(247) 评论(0) 推荐(0)
摘要:5.Divergent Change发散式变化 描述:一个类被锚定了多个变化,当这些变化中的任意一个发生时,就必须对类进行修改。 解释:一个类最好只因一种变化而被修改 操作:你应该找出某特定原因而造成的所有变化,然后运用Extract Class将它们提炼到另一个类中。 6.Shotgun Surg 阅读全文
posted @ 2019-05-21 16:54 没有理由不会呀 阅读(3205) 评论(0) 推荐(0)
摘要:重构之重复代码: 1.(重复代码是)语义一致的逻辑 反例:语义一致的逻辑产生了多个实体 缺点:如果你为语义一致的逻辑产生了多个实体,那么当需要修改这个逻辑时,你必须保证同时修改所有的实体,并确保它们是一致的。否则,程序就会产生bug。无疑,这么做会额外增加很多的不必要的工作量。 原则:语义一致的逻辑 阅读全文
posted @ 2019-05-08 17:00 没有理由不会呀 阅读(306) 评论(0) 推荐(0)
摘要:1 package refactor; 2 3 public class Movie { 4 public static final int NEW_RELEASE = 0; 5 public static final int REGULAR = 1; 6 public static final i 阅读全文
posted @ 2019-05-03 22:46 没有理由不会呀 阅读(385) 评论(0) 推荐(0)
摘要:1 package shop; 2 3 public class Movie { 4 public static final int NEW_RELEASE = 0; 5 public static final int REGULAR = 1; 6 public static final int C 阅读全文
posted @ 2019-05-03 13:17 没有理由不会呀 阅读(335) 评论(0) 推荐(0)