《重构》读书笔记8(第八章完结)

第8章 搬移特性

8.1 搬移函数

把函数搬到与之关联比较密切的地方去,这样做既能让代码比较容易理解,也有利于封装(这一点我还不明白等懂了再来补充)。
举的例子是内部函数搬到顶层和搬移函数到另一个类。内部函数搬移到顶层是可以方便其他函数调用,类之间搬移函数是因为这个函数和另一个类关系更密切。

8.2搬移字段

随着开发可能发现原先的数据结构不合理了,有的字段已经不适合待在当前的类里面,那么就应当移走它。比如总是一同出现的数据最好整合到一条记录里去而不是分开,不然维护难度很大也让人产生困惑“这么高度关联为什么不放在一起呢”,再比如修改一条记录时总要同时改动另一条记录,那说明也需要重新斟酌整合,这样修改只需进行一次。
被搬移的字段要先封装好。说起来封装字段还是挺重要,之前遇到过“可能是因为一个字段在别处被改变而导致的bug”,但是字段本身有着良好的封装,所以很快排除掉并未在别处被改变了,最后定位到是字段的上一层被改变导致的bug。

8.3搬移语句到函数&8.4搬移语句到调用者

这俩是互操作。多个调用点的上下文有重复语句就合到函数去,需求变更了不同调用处有不同情况时再从函数里拆出去。

8.5以函数取代内联代码

封装成函数的好处:提高可阅读性、消除重复代码。

8.6移动语句

把相关代码移动到一起有助于理解。移动的时候注意代码是不是执行次序敏感的。

8.7拆分循环

一个循环里不要干太多事,拆开,重构之后逻辑清晰了,影响到性能可以再合并。

8.8以管道取代循环

管道两端连接的是数据集,数据从一端进入,经过管道的处理从另一端出来,这就是管道的意思。
常见的管道有map、filter、reduce(个人觉得reduce也算个管道)。map就是映射,一组数据映射成另一组数据(这不就是函数嘛),filter就是从数据集中筛选想要的子集,reduce就是把一个集合最后变成一个结果。(第一次接触map reduce的概念还是在云计算的课上。)
用管道而不是循环写出来的代码好看又容易懂。

8.9移除死代码

开发越久,代码库里可能会有越多并没有被使用的代码,比如一个函数,而且很可能并没有被注释掉,然后花了很多时间去读懂这段代码却发现它没用了……
所以对于这种死代码,清除掉吧,让版本控制记着它的存在就好。

-FIN-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值