生命不息,重构不止

重构

在这里插入图片描述
所谓重构(refactoring)是这样一个过程:
在不改变代码外在行为的前提下,对代码做出修改,已改进程序的内部结构。使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

在工作之中,和其他同行聊起几年前以前共同开发的项目,聊到了现在发现的原有框架上的一些问题,并探讨更好的解决方案。
在他的推荐下,我入了《重构 改善既有代码的设计 第2版》一书。
好记性不如烂笔头。
我在此记录一下阅读此书的笔记。

他们的看法

以下是行业内的人阅读此书的一些看法摘抄:

  • 对于软件工程师来说,重构,并不是额外的工作,它就是编码本身。——乔梁,腾讯高级管理顾问

  • 应该去追求编写人能读懂的而不是仅机器能读懂的代码。——阎华,京东7FRESH架构师

  • 软件不死,重构不歇。——余晟,《代码简洁之道:程序员的职业素养》译者

  • 持续优化已有代码是维护系统生命力的最好方法。——杨卫华,微博研发副总经理

  • 深入地理解架构、理解业务、理解需求,减少因设计失误而导致徒劳无益的反复重构。——庄表伟,开源社区理事

重构心法

王建(译者同事)的十六字重构心法:
旧的不变,
新的创建,
一步切换,
旧的再见。

重构第一示例

将一个业务复杂的单方法拆分成多个方法。
已达到主方法功能可读易理解的效果。
有一点向为一篇很长的文章整理段落,提炼标题;使比人能够很容易的了解文章大体内容。

第一示例用到了以下重构方法:

  • 提炼函数(把一块代码单独提取成一个函数)
  • 查询取代临时变量(函数参数:把能从现有参数中得到的变量取消掉)
  • 内联变量(函数内部:取消临时变量)
  • 改变函数声明(修改函数名称,使之能清晰的描述其作用)
  • 移动语句(函数内部:将变量声明移动到紧邻循环的位置)
  • 拆分循环(将同一函数下的多个逻辑单独创建循环)

关于程序性能

先做重构,再做性能优化。
在此过程中牺牲了部分程序性能,但是对引用的影响微乎其微的。
对性能有较大影响时也不要慌,先重构是为了后面的更好的调优。

重构的好习惯

  • 重构前,先准备一套可靠的测试集,这些测试必须有自我检验能力。
  • 小步伐修改程序,以便出错时发现问题,不能急于求成。这一点对于已上线应用的系统尤为重要。
  • 把代码推送(push)到远端仓库前,把零碎的修改压缩成一个更有意义的提交(commit).

编码风格

变量改名

  • 永远将函数的返回值命名为“result”。

金额计算

  • 将货币以分为单位存储,可以避免使用浮点数又不影响数学操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值