重构-改善既有代码的设计(二):重构原则

1、何为重构

(1)对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

(2)添加新功能时不应该修改既有代码,通过测试并正常运行,可以衡量自己的工作进度

(3)重构时不能再添加功能,只管改进程序结构

2、为何重构

(1)代码量的减少并不会使系统运行的更快,但代码量的减少将使未来可能的程序修改更容易

(2)重构帮助找到bug

(3)良好的设计使维持软件开发速度的根本

3、何时重构

(1)重构应该随时随地进行,是因为你想做某事,重构可以帮助你把这些事做好

(2)添加新功能的时候重构,帮助理解需要修改的代码

(3)修补错误的时候重构,为了让代码更具可读性

(4)代码复审时做重构,有助于较有经验开发者把知识传递给比较欠缺经验的人

(5)目标:容易阅读、所有逻辑都只在唯一地点指定、新的改动不会危及现有行为、尽可能简单表达条件逻辑

4、怎么对经理描述重构

(1)把进度驱动变成质量驱动

(2)大多数重构都会为程序引入间接层,间接层的价值:允许逻辑共享、分开解释意图和实现、隔离变化、封装条件逻辑

5、重构的难题

(1)数据库结构修改不得不迁移所有数据,解决方法:在对象模型和数据库模型之间插入一个分隔层,这个分隔层隔离两个模型各自的变化

(2)修改已经发布的接口,解决方法:必须同时维护新旧两个接口,直到所有用户都有时间对这个变化作出反应,当要修改某个函数名称时,保留旧函数,让其调用新函数,千万不要复制函数实现。此外,还应该使用Java的deprecation将旧接口标记为不建议使用,这样调用者就会注意到

(3)不要过早发布接口,请修改代码的所有权政策,使得重构更顺畅

(4)通过重构手段难以完成某些核心设计决策的改动

(5)当既有代码实在太混乱,重构还不如重新写一个,另外如果项目已经接近最后期限,也应该避免重构

6、重构与设计

(1)哪怕你完全了解系统,也请实际度量它的性能,不要臆测,十有八九你是错的

7、重构与性能

(1)首先写出可调的软件,然后调整以求获得足够的速度

(2)短期来看,重构有可能使软件变慢,但在软件优化阶段,软件性能调整更容易

8、重构起源何处

(1)字符串太大,可使用字符串缓存,或者改用文件流

尾注

  • 上述的总结与思考是基于对《重构—改善既有代码的设计》这本书的精读与演绎
  • 更多及时干货,请关注微信公众号:JAVA万维猿圈

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值