《重构--改善既有代码的设计》读后感

        2017年3月左右,爆出了华为裁掉35岁程序员的新闻,我不禁思考起如果我35岁了会怎么样,也促使了我去思考我想成为什么样的人?成为一个管理人员,还是一个深耕在一线战场的技术人员?我最后选择了后者。但是我也越发觉得我技术的薄弱,与社会技术潮流的脱节,于是我幡然醒悟,《重构》是我大学毕业后买的第一本书。

        好景不长,在我看了一半之后,我放弃了这本书,而2018年春节的时候,我又捡起了这本书。一部分是项目原因,一部分是因为CTO推荐我重新开始看。因此,《重构》这本书我算是看了1.5遍吧。

        先说下我第一次看的时候的想法吧。第一次听说“重构”这个词是时候已经不记得了,一直觉得重构是一个高大上的事情,能把整个项目“一下子”变成更好,更合理。看了前面几章之后,一下子就发现重构并不是一件离程序员很远的事情了。重构其实应该是发生在日常开发中的点点滴滴,一旦闻到代码的“坏味道”,就是程序在给出的警告,这里需要重构一下了。而根据我后来的工作实际情况。大部分情况下这些重构都不会花很多时间,小到改个变量名、方法名,大到提取个抽象基类等。这是我第一次看的时候最大收获,而中间章节介绍的方法,我当时觉得挺简单的,也就没什么兴致看下去了。

        而这次看的时候,我收获了挺多东西。

        1、我忘了第一次看到“单一职责原则”是在哪看到的了,但会这么去思考的时候很少很少。在读《重构》的过程中,我发现有一些手法,如果不看动机的话,就会觉得自我矛盾,或者两两矛盾,比如move method,extract class和inline class等。move method:将A方法从α类搬到β类,那么也可以再从β类搬到α类去啊,那么不是可以无限循环,什么时候是个头?extract class和inline class也是一个道理。因此其核心思想是“职责归属”。不管哪一段代码,放在哪个类里或者方法里,其实从不同角度去思考或者解释,都是可以说的通的。而从职责角度去思考可以过滤掉一些不合理的说法。但是职责角度也不是万能的,也可能有两个或者多个职责角度都可以解释的通。这个就像历史、政治和语文的开放题一样,自圆其说,并没有标准答案,但可以有一个参考答案。此外,如果整个程序设计上如果已经有了一个核心的思路,那么就应该按照这个思路去思考职责问题,这样也就是参考答案了。而对于职责的认知,纯粹是个人的认知,意识水平的体现,实际处理较为麻烦。虽然问题多多,可能得出不理想的想法(自圆其说),但如果平时不去这么思考的话,水平永远也无法提高,对面向对象的理解也无法提高。个人认为职责思想是对象意识的最重要的一种体现。

        2、对单元测试的重视,重构应该是测试驱动,从测试开始,小步走。

        3、重构解决的问题:拥抱变化,适应变化;改善既有代码的设计,提高其艺术价值。而敏捷开发的提出,我觉得很重要的一点出发点就是拥抱变化,适应变化,因此我觉得重构是对敏捷开发的一个很好的补充。

        4、个人对重构的理解或者定义:当觉得程序扩展起来麻烦了,或者不适合现在的设计,或者阅读起来觉得不舒服了,于是采取的一系列措施,就叫重构(重构给了我改变主意的自由)。

        5、如果以武侠的视角来看重构,我觉得《重构》就是一本武功秘籍,而里面蕴含的面向对象思想就是对应的心法秘籍。重构应该也有武功的三重境界:重形不重意、重形重意、重意不重形。如果重构能够信手拈来的话,我觉得就应该是从面向对象出发,不拘泥于书各手法几起步骤,最终达到的效果是一样的。

        6、重构中蕴含的面向对象思想:职责思想是封装的体现,代码复用主要依靠的是继承,复杂的逻辑判断则是多态的使用场景之一。

        以上6点是我本次对《重构》的读后感。《重构》是一个可以读多次的书。在经历过更多的项目后,对重构也会有不同的理解,期待下次看的时候会有什么不同的理解。

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

推荐阅读更多精彩内容