《重构-改善既有代码的设计》读书笔记

《重构》5W+2H的行文内容,结构很清楚。这是程序猿行文的风格。上周六写了Milp教程的小结,提及重构。楠哥周一京东上买了《重构》,趁着还有印象就抓紧看完了。信息量比较大,加深对重构的理解。

重构的第一步,为即将修改的代码建立一组可靠的测试环境,避免引入大量的bug.
* 重构技术就是以微小的步伐修改程序,如果你犯下了错误,很容易便于发现它。
* 更改变量名是值得行为,绝对值得。好的代码应该清楚表达出自己的功能,变量名称是代码清晰的关键。
* 唯有写出人类容易理解的代码才是优秀的程序员。

What-何谓重构

  • 重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
  • 重构(动词): 使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。
  • 重构提供了一种更高效且受控的代码整理技术。
  • 重构的目的是软件更容易被理解和修改。

Why-为何重构

  • 重构改进软件设计,代码结构的流失是累积性的。
  • 重构使软件更容易理解,方便其他程序员理解,代码更易读,过去的代码不用记住。利用重构来理解不熟悉的代码。
  • 重构帮助找到bug
  • 重构提高编程速度,良好的设计是维持软件开发速度的根本。

When-何时重构

  • 三次法则。事不过三,三则重构。
  • 添加新功能时重构
  • 审查代码时重构
  • 修补错误时重构;

How-重构是一种摆脱困境的道路

希望程序有以下的特征

  • 容易阅读
  • 所有逻辑都只在唯一地点指定
  • 新的改动不会危机现有行为
  • 尽可能简单表达条件逻辑

Who-怎么对经理说

  • 懂技术的,直接介绍重构
  • 只对质量感兴趣。提高质量。技术复审。
  • 进度驱动,不要告诉经理

重构与间接层

  • 重构都为程序引入更多的间接层。
  • 间接层的价值
    • 允许逻辑共享
    • 分开解释意图和实现
    • 隔离变化
    • 封装条件逻辑

重构的难题

  • 数据库
  • 修改接口
  • 难以通过重构手法完成的设计改动
  • 何时不该重构
    • 现有代码根本不能正常运作(重写)
    • 项目接近最后期限。

重构与设计

  • 彼此互补,只要一个足够合理的解决方案来实现,对问题的理解加深后,日后修改成本不再高昂

重构与性能

  • 时间预算法,性能要求极高的实时系统
  • 持续关注法
  • 90%统计法,进入性能优化阶段

构筑测试体系

  • 单元测试,目的是为了提高程序员的工作效率
  • 功能测试,保证软件能正常运作,从客户角度保障质量,整个系统当作一个黑箱。

关于代码的坏味道有21种情况

重构的思路

  • 重新组织函数
  • 在对象之间搬移特性
  • 重新组织数据
  • 简化条件表达式
  • 简化函数调用
  • 处理概括关系
  • 大型重构

这边书在最后还有这些方法的索引,是一个重构方法的API,以及21中代码的坏味道目录。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值