代码的味道

原创 2002年02月06日 14:53:00
代码的味道(转贴之UMLCHINA,讲述在什么情况下进行refactoring)
  (说明,这是erptao.org,refactoring论坛中关于Code Smell的一个贴子,以后我会把相关内容继续转贴到这里)
什么时候需要Refactoring?
代码的味道是高水平程序员对“好程序“的一种感觉,他们具备一种能力,即使不涉及程序代码的具体实现就能看出你的设计是否合理。
如果代码有“异味“,那么你需要进行Refactorying.

1.重复代码(Duplicate Code)
即使是一两句代码的重复也需要refactoring,有时候重复不是那么明显,你需要首先进行其他的refactoring才能看到代码重复。排除代码重复是OO软件工程最重要的研究课题之一
2.长方法(Long Method)
来自于面向过程的思路,即使能够在一页内能够显示的方法也可能太长。
3.大类(Large Class)
一个类含有太多的责任和行为
4.参数太多(Long Parameter List)
对象含有状态,不再需要太多的参数。
5.不一致的变化(Divergent Change)
不要把变化速度不同的东西放在一起。不要把一个方法对每个子类的变化的部分和不变化的部分放在一起。不要把对象中每秒都在变化的实例变量和一个月才变化一次的势力变量放在一起...等等。
6.Shotgun Surgery
改变影响到太多的类和方法
7.特性羡慕(Feature Envy)
对其他对象中的数据太感兴趣了
8.数据从(Data Clumps )
一块数据到处一起使用,他们应该有自己的类
9.原始类型困扰(Primitive Obsession)
用类代替原始数据类型
10.开关语句(Switch Statement)
面向对象由其他办法来处理这些依赖于类型的方法。
11.并行继承层次(Parallel Inheritance Hierarchies )
有时候有用但有时候不必要
12.惰类(Lazy Class)
不足以自己成为一个类,应该排除
13.投机通则(Speculative Generality )
不要太多考虑为将来而建立的灵活性
14.消息链(Message Chain )
硬性把客户和导航结构相耦合
15.中间人(Middle Man )
如果他所有的事情就是在做分派,那么应当删除。
16.不合适的亲密(Inappropriate Intimacy)
限制对其他类内部结构的知识和了解。
17.不完整的库类(Incomplete Library Class )
某些时候必须扩展一增加所需的功能
18.数据类(Data Class )
应当添加任务和行为来处理它的数据
19.被拒绝的遗产(Refused Bequest )
子类很少利用父类给予它们的东西
20.注释(Comments )
注释是说明why而不是what的好地方。

22种代码的坏味道,一句话概括

如果一段代码是不稳定或者有一些潜在问题的,那么代码往往会包含一些明显的痕迹。 正如食物要腐坏之前,经常会发出一些异味一样。 我们管这些痕迹叫做“代码异味”。...
  • windcao
  • windcao
  • 2014年05月14日 09:52
  • 9794

重构笔记——代码的坏味道(上)

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42041757 在重构入门篇中,简单地介绍了...
  • pistolove
  • pistolove
  • 2014年12月20日 11:51
  • 7431

21 种代码的坏味道

21 种代码的坏味道 代码   提问: 2 年 前 最后更新: 2 年 前 浏览数: 3792 1 1.Duplicated Code(重复的...
  • WALLEZhe
  • WALLEZhe
  • 2017年03月15日 11:10
  • 451

实例说明什么是代码的坏味道,如何重构

所谓优雅的代码,或者恶心的代码,很多时候是见仁见智的。也同时是看个人喜好或者习惯的。当经验不足,看的和写的代码还不够多的时候,我们可能会追捧某个大神或者奉某本经典为圭臬。然后跟学校的学弟们说,有空多看...
  • langresser
  • langresser
  • 2014年12月24日 15:28
  • 1628

22种代码坏味道-改善代码注意事项

改善代码,增强可读、可理解、可维护性。
  • rexct392358928
  • rexct392358928
  • 2016年06月17日 08:59
  • 742

21种代码的“坏味道”

1.Duplicated Code(代码重复) 代码重复几乎是最常见的异味了。他也是Refactoring 的主要目标之一。代码重复往往来自于copy-and-paste 的编程风格。与他相对应OAO...
  • zhoufoxcn
  • zhoufoxcn
  • 2006年12月25日 22:12
  • 3970

代码坏味道清单

主要对日常编码过程中的一些陋习予以纠正,算是一篇编程规范吧。可以作为项目代码Review时的checklist:1.Duplicated Code(重复的代码)臭味行列中首当其冲的就是Duplicat...
  • oSanYeCao1234567
  • oSanYeCao1234567
  • 2016年07月29日 21:35
  • 565

重构之22种代码的坏味道

概述: 在编写代码时,随着代码量的增加,会时不时的需要重构来提高代码的质量。以下是22中代码的坏味道,如果你的代码中也有这些,那快快来按照这些方法重构你的代码吧! 1.Duplicated Cod...
  • Andy_93
  • Andy_93
  • 2016年11月22日 17:01
  • 672

吐槽一下项目中的代码坏味道:滥用java常量

为什么要把0和""定义成一个常量呢?这是没有正确理解到底什么是魔鬼数字和硬编码。使用常量,出于如下几个原因: 1、为了可读性,一个好的名字显然比一串写死的数字更容易理解。 2、避免冗余,让代码更容易修...
  • aitangyong
  • aitangyong
  • 2014年08月28日 21:58
  • 1801

七款代码味道识别工具【简介】

代码味道识别工具 (Code Smell Detection Tools, CSDT)既可以应用于软件开发阶段,也可以应用于软件维护阶段。目前大部分IDE都集成了自动或者半自动重构工具,但是根据国外研...
  • LoveLion
  • LoveLion
  • 2014年01月18日 23:50
  • 22743
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:代码的味道
举报原因:
原因补充:

(最多只允许输入30个字)