22种代码的坏味道,一句话概括
- Code smells
- Duplicated Code --------(重复代码)难维护。
[解决方法]:提取公共函数。
- Long Method ------------(函数长)难理解。
[解决方法]:拆分成若干函数。
- Large Class ------------(类大)难理解。
[解决方法]:拆分成若干类。
- Long Parameter List ----(参数多)难用,难理解。
- [解决方法]:将参数封装成结构或者类。
- Divergent Change -------(万能类)发散试修改,改好多需求,都会动他。
[解决方法]:拆,将总是一起变化的东西放在一块儿。
- Shotgun Surgery --------(天女散花的逻辑)散弹试修改,改某个需求的时候,要改很多类。
[解决方法]:将各个修改点,集中起来,抽象成一个新类。
- Feature Envy -----------(红杏出墙的函数)使用了大量其他类的成员
[解决方法]:将这个函数挪到那个类里面。
- Data Clumps ------------(数据团)常一起出现的一坨数据。
[解决方法]:他们那么有基情,就在一起吧,给他们一个新的类。
- Primitive Obsession ----(偏爱基本类型)热衷于使用int,long,String等基本类型。
[解决方法]:反复出现的一组参数,有关联的多个数组换成类吧。
- Switch Statements ------(switch语句)
[解决方法]:state/strategy 或者只是简单的多态。
- Parallel Inheritance Hierarchies ---------------(平行继承)增加A类的子类ax,B类也需要相应的增加一个bx。
[解决方法]:应该有一个类是可以去掉继承关系的。
- Lazy Class -------------------------------------(冗赘类)如果他不干活了,炒掉他吧。
[解决方法]:把这些不再重要的类里面的逻辑,合并到相关类,删掉旧的。
- Speculative Generality -------------------------(夸夸其谈未来性)
[解决方法]:删掉
- Temporary Field --------------------------------(临时字段)仅在特定环境下使用的变量
[解决方法]:将这些临时变量集中到一个新类中管理。
- Message Chains ---------------------------------(消息链)过度耦合的才是坏的。
[解决方法]:拆函数或者移动函数。
- Middle Man -------------------------------------(中介)大部分都交给中介来处理了。
[解决方法]:用继承替代委托。
- Inappropriate Intimacy -------------------------(太亲密)两个类彼此使用对方的私有的东西。
[解决方法]:划清界限拆散,或合并,或改成单项联系。
- Alternative Classes with Different Interfaces --(相似的类,有不同接口)
[解决方法]:重命名,移动函数,或抽象子类。
- Incomplete Library Class -----------------------(不完善的类库)
[解决方法]:包一层函数或包成新的类。
- Data Class -------------(纯数据类)类很简单,仅有公共成员变量,或简单操作函数。
[解决方法]:将相关操作封装进去,减少public成员变量。
- Refused Bequest --------(继承过多)父类里面方法很多,子类只用有限几个。
[解决方法]:用代理替代继承关系。
- Comments ---------------(太多注释)这里指代码太难懂了,不得不用注释解释。
[解决方法]:避免用注释解释代码,而是说明代码的目的,背景等。好代码会说话。
22种代码的坏味道,一句话概括相关推荐
- 21 种代码的坏味道
1.Duplicated Code(重复的代码) 臭味行列中首当其冲的就是Duplicated Code.如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好. ...
- 21种代码的“坏味道”
1.Duplicated Code(代码重复) 代码重复几乎是最常见的异味了.他也是Refactoring 的主要目标之一.代码重复往往来自于copy-and-paste 的编程风格.与他相对应OAO ...
- Bad Smell (代码的坏味道)
Bad Smell (代码的坏味道) 如果一段代码是不稳定或者有一些潜在问题的,那么代码往往会包含一些明显的痕迹. 正如食物要腐坏之前,经常会发出一些异味一样, 我们管这些痕迹叫做 "代码异 ...
- Refactoring之——代码的坏味道(一)过长方法
1 代码的坏味道 重构一书中提到了22种代码的坏味道,大致可以分为几类. 识别代码的坏味道,有助于发现代码的潜在问题,从而可以有的放矢的修改现有代码,使之不断完善. 1.1 Bloaters(臭鲱,暂 ...
- 22种代码坏味道及重构手段
为什么80%的码农都做不了架构师?>>> 思维导图 引用 22种代码味道(Martin Fowler与Kent Beck) 代码味道及重构手段 参考 <重构 改善既有代码 ...
- 22种代码味道(Martin Fowler与Kent Beck)
Martin Fowler在Refactoring: Improving the Design of Existing Code(中译名:<重构--改善既有代码的设计>)一书中与Kent ...
- 【重构之法】代码的坏味道
代码的坏味道 坏味道意指代码中出现的可以被改进的地方.当你嗅到坏味道的时候,也就意味着重构的时机到了. 重构就是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修 ...
- 代码的坏味道与重构技术
一.前言 本文大部分内容.图片来自Martin Flower的<Refactoring>一书以及refactoringguru网站(一个很棒的网站),之前在博客发表过,这次属于整理后重新发 ...
- 重构笔记——代码的坏味道(上)
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42041757 在重构入门篇中,简单地介绍了重构的定义.为何 ...
最新文章
- 详解Redis分布式锁
- 让页面只能在微信浏览器里访问
- Android短信拦截
- IIS问题:Server Application Error 的解决
- 改变dom样式的方法
- 一次解决Linux内核内存泄漏实战全过程
- [Python3] 010 字符串:给你们看看我的内置方法 第二弹
- NEON码农指导 Chapter 3 : NEON Instruction Set Architecture
- 联想微型计算机ai0,联想baby AI
- CoDeSys开发经验总结
- Vue 的属性、方法和生命周期
- 深入认识敏捷开发和面向对象
- 计算机网络应用大专,计算机网络应用专业
- Android VideoView播放网络视频简介
- 绘画系统-MATLAB版
- TPS74512PQWDRVRQ1
- 如何用乌班图(Ubuntu)制作 linux 系统 U盘启动盘
- macbook移动文件
- 计算机PD是什么职业,什么是pd控制器
- EM@函数变换(几何变换)@函数图像伸缩偏移@奇偶性@周期性
热门文章
- windows下pycocotools的安装及避坑
- c#使用msiexec静默安装IIS
- 电脑图标设置。(此电脑,控制面板我的图标呢?)
- Spark-----Spark 与 Hadoop 对比,Spark 集群搭建与示例运行,RDD算子简单入门
- 每个程序员都该有个自己的博客,分享我的四种博客搭建教程!
- canvas实现分散对齐
- oracle sequence sql server,在SQLServer中实现ORACLE的Sequence
- yealink 电话 multicast 配置
- “管理业务全在线”,YonSuite实力演绎成长型企业“云上狂欢”
- 打印一只Nyan Cat(彩虹猫)(C++)3.1[多色版]+[修改版]