阅读《重构_改善既有代码的设计》

1.重构
对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提供起可理解性,降低其修改成本。重构是“整理代码吗”,其实整理代码是重构的第一步,首先你要把字面尚的一些不规范调整过来。
2.属性控制内置
对于一个对象自身的属性,控制权需要交给这个自身对象控制。尽量不要交给外部对象控制。
比如有一个book对象,书的发布状态的判断,尽量交给这个book的method来处理,而尽量不要在外部函数调用时,进行书的发布状态判断。
2.条件判断转为state模式
3.通过子类隔离变化
4.修改接口
修改接口时,对于那些完全在你自己函数中调用的,你可以随便改。但是对于那些,已经发布的或者别其他不能修改的模块代码调用的接口,就不能随便修改接口了。正确的姿势应该是老接口调用旧接口,同样应该使用java中的deprecated,这么,其他调用者就会注意到它。同样,不能接口的函数实现,那么将出现重复代码。
5.无法进行重构的系统
无法重构的时候,就需要进行重写了,重写的讯号,现有代码根本不能正常运作了。重写的一个方法:将“大块头软件”重构为封装良好的小型组件。然后再逐一对组件作出“重构或者重写”的决定。
6.代码的坏味道
duplicated code(重复代码),long method(过长函数),large class(过大的类),long parameter list(过长参数列),shotgun surgery(霰弹式修改) lazy class ,speculative generality(夸夸其谈未来性,这是最近做项目想犯的错误,如果所有的装置都会被用到,那就值得做,如果用不到,那就不值得),
7.重构方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一个项目运行久了,经过业务需求的迭代,开发人员的变更,总会产生一些质量不高的代码,要么来源于对某些业务理解的不太深...
    高广超阅读 1,406评论 0 23
  • 上一次的读书分享活动上面,已经有几位同事已经分享了《重构》这本书的读后感,以及他们对重构的一些认识。从他们的分享上...
    贾尼阅读 1,451评论 3 2
  • 第1章 重构,第一个案例 代码块俞小,代码的功能就俞容易管理,代码的处理和移动也就俞轻松。(功能也就越单一) 任何...
    Sheh伟伟阅读 955评论 0 2
  • 最近读完了《拆掉思维里的墙》这本书,书中所描述的一些思维方式和生活总结与自己有挺多相似的地方。趁热写一下自己对这本...
    夙月阅读 658评论 0 1
  • 我已忘了家乡的雨寒 却还记得母亲的温暖 煤油灯下的针线 不知编织了多少 古老的寓言 跳动的灯影 忽大忽小 隐约闪现...
    月陵无声阅读 144评论 3 5