代码的坏味道

神秘命名(Mysterious Name)

说白了就是命名不规范,无意义,字段、变量、函数、类等

重复代码(Duplicated Code)

过长函数(Long Function)

作者一直在不遗余力的宣传小函数的简洁优美

过长参数列表(Long Parameter List)

过长参数令人迷惑,不利于函数的使用和可持续性维护

全局数据(Global Data)

第一版里没有这个,没太理解

全局数据的问题在于,从代码库的任何一个角落都可以修改它,没有任何机制可以探测出到底哪段代码做出了修改。

可变数据(Mutable Data)

如果要更新一个数据结构,就返回一份新的数据副本,旧的数据保持不变。

发散式变化(Divergent Change)

一旦需要修改,我们希望能够跳到系统的某一点,只在该处做修改。如果不能做到这点,你就嗅出两种紧密相关的刺鼻味道中的一种了

如果某个类经常因为不同的原因在不同的方向上发生变化,Divergent Change就出现了

说白了就是一个类承担了两种以上不同类型的指责

霰弹式修改(Shotgun Surgery)

如果每遇到某种变化,你都必须在许多不同的类内做出许多小修改,你所面临的坏味道就是Shotgun Surgery。如果需要修改的代码散布四处,你不但很难找到它们,也很容易忘记某个重要的修改。

依恋情结(Feature Envy)

一个函数跟另一个模块中的函数或者数据交流格外频繁,远胜于在自己所处模块内部的交流

数据泥团(Data Clumps)

两个类中相同的字段、许多函数签名中相同的参数。这些总是绑在一起出现的数据真应该拥有属于它们自己的对象。

基本类型偏执(Primitive Obsession)

很多程序员不愿意创建对自己问题域有用的基本类型。

如果你有一组总是同时出现的基本类型数据,就是数据泥团的征兆

重复的switch(Repeated Switch)

第二版与第一版有不同,不再那么强烈

以多态替换switch

循环语句(Loops)

这也是第一版没有的

以管道操作取代循环

冗余的元素(Lazy Element)

元素:类、函数等

夸夸其谈通用性(Speculative Generality)

一些不必要的过度设计

临时字段(Temporary Field)

某个字段为某种特殊情况而设

过长消息链(Message Chains)

一个用户向一个对象请求另一个对象,再向后者请求另一个对象...

中间人(Middle Man)

过度使用委托,比如一个类的接口有一半的函数都委托给其他类

内幕交易(Insider Trading)

模块之间的数据交换应该放在明面上来

过大的类(Large Class)

单个类想做的事情太多

异曲同工的类(Alternative Classes with Different Interfaces)

纯数据类(Data Class)

大概就类似于我们的Entity类,持保留意见

被拒绝的遗赠(Refused Bequest)

如果子类复用了超类的行为(实现),却不愿意支持超类的接口

注释(Comments)

当你感觉需要撰写注释的时候,请先尝试重构,试着让所有注释变得多余

好的代码应该自解释

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容