书籍推荐--程序员必读书籍之《重构》

我们或多或少知道一些重构的方法,比如重复逻辑封装成函数里提供各地方来调用者,但你是否有总结过呢?《重构》这本书就是总结收集了100多个重构的方法,一部分可能是你平常就有在用的,更多的是你未接触过。

身为程序员的你是否有过这样的场景:每次都觉得自己的代码写的很烂,发誓下次一定把代码写好,命名写好,但是下一次还是这样,总是希望把代码写好,但是总有些力不从心,这个时候你就应该看看这本书了--《重构》。

本书提供了近百个重构代码的方法,有小到给函数改名,大到继承、模版的使用,都是一些实用看完可以立马上手的技巧。纯纯的干货。

本书结构分为下面几个方面:

1、介绍糟糕代码的坏味道和相应的重构法则:比如重复代码,

* 比如重复代码,我们都知道对于重复代码就应该封装成函数除了这种方法是否还有其他的技巧呢,再比如过长的函数,进行分解;

2、重新组织函数

函数,可以说是构成大型代码的基础单元,如果你能把每个函数都写好,那么整体的代码逻辑和层次就会清晰,提炼函数或者废除不必要函数,进行提炼和精简函数,函数里面临时变量过多,这时候应该用以查询函数替代,分解临时变量或者移除对参数的赋值,最后看能否对算法进行改进。

3、在对象之间搬移特性

把操作封装到类里面,相信大多数程序员都会,但是你确定你的函数和字段放到合适的对象里面了吗?类往往会因为承担过多责任而变得臃肿不堪,这时候应该要考虑提炼成多个类了,隐藏类的委托关系,或者必要时刻应该移除中间人。

4、重新组织数据

简单来说就是把数据封装到类里面管理,封装字段,对字段设置取/设函数,或者把数据封装成对象。或者以对象取代数组

5、简化条件表达式

把条件表达式下面的逻辑提炼出独立函数,增强可读性,突出逻辑;合并表达式,有多个表达式返回一样的结果,那么不妨把它们合并起来;每个分支都有相同的一段代码,为什么不放到条件表达式之外呢?是否有遇到带flag标志位的循环不妨改用break或return试试吧。条件表达式中最讨厌的莫过于嵌套了,多层嵌套,这时候应该使用卫语句来拯救了。如果多个条件表达式不可避免,这时要使用高级重构方法多态来实现了。

6、简化函数调用

函数重命名,增加减少参数,将查询和修改函数分离,如果函数名里面有and的话是时候拆分成两个了,用明确函数取代参数,传递整个完整对象

7、处理概括关系

继承父类和子类,数据怎么处理,字段或者函数上移或下移,提炼子类或超类,提炼接口

重构的方法很多,也都很实用,赶紧看看吧。

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

推荐阅读更多精彩内容

  • 《重构》读书笔记 总览 第一部分 第一章从实例程序出发,展示设计的缺陷,对其重构可以了解重构的过程和方法。 第二部...
    白桦叶阅读 2,385评论 2 5
  • “整洁的代码简单直接。整洁的代码如同优美的散文。整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直截了当的控...
    活这么大就没饱过阅读 1,671评论 0 4
  • 上一次的读书分享活动上面,已经有几位同事已经分享了《重构》这本书的读后感,以及他们对重构的一些认识。从他们的分享上...
    贾尼阅读 1,362评论 3 2
  • “这与胭脂扣又有什么关系?” 我不认为她会无缘无故地讲这个故事给我听。 “从那以后,男子就开始收集花草之泪,可是他...
    邵小妮er阅读 399评论 2 3
  • 石室圣心堂,位于广州一德路
    思维的意义阅读 138评论 1 1