重构读书笔记

本文探讨了软件开发过程中因系统框架变更及人员流动导致的技术债务问题,并提出了阶段性重构的重要性。文中还介绍了几种具体的重构方法,包括功能逻辑拆解、临时变量管理、函数方法移动、多态与设计模式应用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一个基础系统上进行增量开发是比较常见的。增量开发的过程中,一方面会因为系统的初始框架有部分不适应新需求而变更,另一方面是维护开发人员更换,编程习惯及能力的差异,对系统的框架理解不一致,在进度的压力下破坏了系统的框架。 无论是哪一种,都有必要阶段性的进行重构,以偿还技术债务。技术债务不断累加的后果,是修改越来越复杂,当适当的修改点越来越难找,犯错的机会越来越大。

 读《大话设计模式》时,就一直有几个问题:
1.  ”系统框架修改点在哪?“ ,一个好的框架,在修改点的扩散会做的比较好。
2. ”逻辑放在哪里?“,这是一个非常重要的问题,书上提到的”功能帽子“,是一个不错的说法。
3. ”系统的体积(代码量)一直在膨胀, 什么情况下,能将一些过时的功能去除?“。前段时间,看小米的一个介绍,说通过与客户的互动,对功能受欢迎度排序,可以达到去除不实用的功能。 只有对用户需求,深度分析,才能从源头上重构需求。

重构,必须要有一个对应的功能测试系统来保障,对于一个复杂的大系统而言,功能流程的覆盖面有点困难。
书中第一章展示了一个重构的例子。例子中,用到了如下几种重构方法
1.  拆解功能逻辑, 如将switch逻辑,拆成一个单独函数。
2. 对临时变量,根据只读与修改进行分类,决定拆分的函数是传参还是返回值。书中的观点认为临时变量会增大函数的规模。通过函数的封装可以减少临时变量的使用。
3.  由于函数中会对数据交叉使用, 这里提到一个很有用的方法:函数方法移动。 也就是说,将这些函数,移动到对应的数据类中,作为数据类的方法。这实际上是在修复被破坏的类。
4. 使用多态,继承,抽象接口
5. 使用设计模式--策略,重新优化结构。实现上这就是类的设计重构。
一直很喜欢重构这本书,但是由于自己记性不太好,书看过之后其中的方法总是记不住,于是想如果有电子版的重构书就好了,工作中遇到重构的问题可以随时打开查阅。在网上搜索了许久,发现重构这本书有英文chm版本的,而中文版的电子书只有扫描的PDF版本,用起来非常不方便。于是萌生想做一本重构工具书的想法,本来打算自己重新将重构书的内容再整理归类一下,后来发现原书的目录编排就很适合做工具书,包括坏味道分类,重构手法归类等,都有了一个比较系统的整理。因此,我利用空余时间制作了这样的一本中文的chm版重构,希望对大家有所帮助,也算对中国软件业做出一点小小的贡献。 本书基本上是取自”重构”中文版一书的内容,但格式上参照的是chm英文版的格式,还有一些格式小修改,比如第一章的重构前后代码对比。因为时间匆促,个人能力有限,本书难免存在一些缺漏,如果大家发现有问题,随时可以给我发邮件,我会尽快更新错误的内容。 最后再次感谢几位大师 Martin Fowler、Kent Beck等,还有翻译的侯捷和熊节先生,为我们带来这么精彩的一本书。谢谢。 免责声明:本书仅供个人学习研究之用,不得用于任何商业目的,不得以任何方式修改本作品,基于此产生的法律责任本人不承担任何连带责任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值