坏味道--数据泥团(Data Clumps) 特征 有时,代码的不同部分包含相同的变量组(例如用于连接到数据库的参数).这些绑在一起出现的数据应该拥有自己的对象. 问题原因 通常,数据泥团的出现时因为糟糕的编程结构或"复制-粘贴式编程". 有一个判断是否是数据泥团的好办法:删掉众多数据中的一项.这么做,其他数据有没有因而失去意义?如果它们不再有意义,这就是个明确的信号:你应该为它们产生一个新的对象. 解决方法 首先找出这些数据以字段形式出现的地方,运用 提炼类(Extract Clas…
所谓Data Class是指:它们拥有一些值域(fields),以及用于访问(读写]这些值域的函数,除此之外一无长物.这样的classes只是一种「不会说话的数据容器」,它们几乎一定被其他classes过份细琐地操控着.这些classes早期可能拥有public值域,果真如此你应该在别人注意到它们之前,立刻运用Encapsulate Field (封装值域,(就是将public 域变成private然后设置set和get).将它们封装起来.如果这些classes内含容器类的值域(collecti…
1.Duplicated Code(重复的代码) 臭味行列中首当其冲的就是Duplicated Code.如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好. 最单纯的Duplicated Code就是[同一个class内的两个方法含有相同表达式(expression)].这时候你需要做的就是采用Extract Method提炼出重复的代码,然后让这两个地点都调用被提炼出来的那一段代码. 另一种常见情况就是[两个互为兄弟(sibling)的subclass…
"如果尿布臭了,就换掉它." --Beck奶奶,论保持小孩清洁的哲学 代码的坏味道这一章集中论述该何时重构.具体的重构方法在后面的章节. "没有任何度量规矩比得上见识广博者的直觉.你必须培养自己的判断力,学会判断一个类中有多少实例变量才算太大,一个函数内有多少代码才不算太长." ​ --Martin Flower 3.1 改名 深思熟虑给函数,模块,变量和类命名,使其清晰的表明自己的功能和用法. 重构手法之一:改名(改变函数声明,变量改名,字段改名) 3.2 消除重…
sourcemaking 如果一段代码是不稳定或者有一些潜在问题的,那么代码往往会包含一些明显的痕迹.正如食物要腐坏之前,经常会发出一些异味一样, 我们管这些痕迹叫做 "代码异味".今天让我们一起来熟悉开发中经常出现的22种坏味道情形和解决方法. Duplicated Code 重复代码 不良影响 解决方法 重复代码,难维护 提取公共函数 Long Method 函数长 不良影响 解决方法 函数长, 难理解 拆分成若干函数 Large Class 类大 不良影响 解决方法 类大, 难理…
膜拜下 Martin Fowler 大神 , 开始学习 圣经 重构-改善既有代码设计 . 代码的坏味道就意味着需要重构, 对代码的坏味道了然于心是重构的比要前提; . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/20009689 . 1. 重复代码 (Duplicated Code) 用到的重构方法简介 : Extract Method(提炼函数), Pull Up Method(函数上移), From…
膜拜下 Martin Fowler 大神 , 开始学习 圣经 重构-改善既有代码设计 . 代码的坏味道就意味着需要重构, 对代码的坏味道了然于心是重构的比要前提; . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/20009689 . 1. 重复代码 (Duplicated Code) 用到的重构方法简介 : Extract Method(提炼函数), Pull Up Method(函数上移), From…
消灭 Java 代码的“坏味道” 原创: 王超 阿里巴巴中间件 昨天 导读 明代王阳明先生在<传习录>谈为学之道时说: 私欲日生,如地上尘,一日不扫,便又有一层.着实用功,便见道无终穷,愈探愈深,必使精白无一毫不彻方可. 代码中的"坏味道",如"私欲"如"灰尘",每天都在增加,一日不去清除,便会越累越多.如果用功去清除这些"坏味道",不仅能提高自己的编码水平,也能使代码变得"精白无一毫不彻".这…
1 代码的坏味道 重构一书中提到了22种代码的坏味道,大致可以分为几类. 识别代码的坏味道,有助于发现代码的潜在问题,从而可以有的放矢的修改现有代码,使之不断完善. 1.1 Bloaters(臭鲱,暂译臭代码) 这种类型的味道意味着:代码.函数和类的问题没有立马凸显,但是随着代码不断改变,问题就会越来越明显. 包含五种: 1.1.1 Long Method(过长方法) 特征: 一个方法含有太多行代码.一般来说,任何方法超过10行时,你就可以考虑是不是过长了.函数中的代码行数原则上不要你超过100…
坏味道--纯稚的数据类(Data Class) 特征 纯稚的数据类(Data Class) 指的是只包含字段和访问它们的getter和setter函数的类.这些仅仅是供其他类使用的数据容器.这些类不包含任何附加功能,并且不能对自己拥有的数据进行独立操作. 问题原因 当一个新创建的类只包含几个公共字段(甚至可能几个getters / setters)是很正常的.但是对象的真正力量在于它们可以包含作用于数据的行为类型或操作. 解决方法 如果一个类有公共字段,你应该运用 封装字段(Encapsulat…