《重构-改善既有代码的设计》重构手法(搬移特性)

文章内容和思路来自《重构-改善既有代码的设计》

1> 搬移函数:搬移函数最直接的一个动因就是频繁引用其他上下文的元素,而对自身上下文中的元素却关心甚少。此时,让它去与那些更亲密的元素相会,通常会取得更好的封装效果,因为系统别处就可以减少对当前模块的依赖

     

2> 搬移字段:如果更新一个字段需要同时在多个结构中做出修改,那也是一个征兆,表明该字段需要被搬移到一个集中的地方,这样每次只需修改一个地方

      

3> 搬移语句到函数:要维护代码库的健康发展,需要遵守几条黄金守则,其中最重要的一条当属“消除重复”。如果我发现调用某个函数的时候,总有一些相同的代码也要依次执行,那么我会考虑将此段代码合并到函数里头

      

4> 搬移语句到调用者:随着系统能力的不断演进,原先设定好的抽象边界总会悄无声息的发生偏移,对于函数来说,这样的边界偏移意味着曾经视为一个整体、一个单元的行为,如今可能已经分化出两个甚至是多个不同的关注点。函数边界发生偏移的一个征兆是,以往在多个地方共用的行为,如今需要在某些调用点面前表现不同的行为。于是,我们得把表现不同的行为从函数里挪出,并搬移到其调用处

      

5> 以函数调用取代内联代码:善用函数可以帮助我将相关的行为打包起来,这对于提升代码的表达力大有裨益(一个命名良好的函数,本身具有极好的解释代码的用途,使读者不用过多的了解函数实现)。函数同样有助于消除重复,因为同一段代码我不需要编写两次

      

6> 移动语句:让存在关联的东西一起出现,可以使代码更容易理解。如果有几行代码取用了同一个数据结构,那么最好是让他们一起出现,而不是夹杂在取用其他数据结构的代码中间

      

7> 拆分循环:你常常能够看到一些身兼多职的循环,他们一次做了两三件事情,不为别的,就因为这样可以只循环一次

      

8> 以管道取代循环:越来越多的变成语言提供了更好的语言结构来处理迭代过程,这种结构就叫做集合管道

      

9> 移除死代码:一旦代码不再使用,立即删除它

      

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
一直很喜欢重构这本书,但是由于自己记性不太好,书看过之后其中的方法总是记不住,于是想如果有电子版的重构书就好了,工作中遇到重构的问题可以随时打开查阅。在网上搜索了许久,发现重构这本书有英文chm版本的,而中文版的电子书只有扫描的PDF版本,用起来非常不方便。于是萌生想做一本重构工具书的想法,本来打算自己重新将重构书的内容再整理归类一下,后来发现原书的目录编排就很适合做工具书,包括坏味道分类,重构手法归类等,都有了一个比较系统的整理。因此,我利用空余时间制作了这样的一本中文的chm版重构,希望对大家有所帮助,也算对中国软件业做出一点小小的贡献。 本书基本上是取自”重构”中文版一书的内容,但格式上参照的是chm英文版的格式,还有一些格式小修改,比如第一章的重构前后代码对比。因为时间匆促,个人能力有限,本书难免存在一些缺漏,如果大家发现有问题,随时可以给我发邮件,我会尽快更新错误的内容。 最后再次感谢几位大师 Martin Fowler、Kent Beck等,还有翻译的侯捷和熊节先生,为我们带来这么精彩的一本书。谢谢。 免责声明:本书仅供个人学习研究之用,不得用于任何商业目的,不得以任何方式修改本作品,基于此产生的法律责任本人不承担任何连带责任。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperYang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值