关于阅读《重构的时机和方法》这本书所带来的启发

2023-07-25 21:32:14

前言

近期,我阅读了由克里斯蒂安·克劳森(Christian Clausen)写的、由郭涛翻译的《重构的时机和方法》这本书,读完这本书的内容你会发现《重构的时机和方法》是一本经典的软件开发书籍,它能够帮助软件开发人员提高代码质量和工作效率,作为程序员的我觉得这本书对我很有帮助,有了很多收获和感悟,接下来本文就来简单分享一下。

具体的读书收获

通过读完《重构的时机和方法》这本书, 我认为它最重要的贡献在于它非常清楚地阐述了重构的概念和原则。书中提到,重构是指在不改变软件系统外部行为的情况下,改善其内部结构的过程。这个定义非常精确,也非常实用。在实际的软件开发中,我们经常会遇到代码冗余、复杂度过高、不良设计等问题,这些问题会严重影响代码的可读性、可维护性和可扩展性。通过重构,我们可以有效地解决这些问题,使得代码更易于理解、修改和扩展。此外,书中还介绍了一些重要的设计原则,例如单一职责原则、开闭原则、里氏替换原则等,这些原则可以帮助我们设计出更加优秀的软件系统。

而且,《重构的时机和方法》这本书非常详细地介绍了重构的时机和方法。作者提出了一些情况,例如:代码难以理解、修改困难、添加新特性需要大量修改等,这些情况表明代码需要进行重构。此外,作者还提到了重构的两种模式:预防性重构和修补性重构。预防性重构是在代码还没有出现问题之前进行的重构,目的是为了避免未来的问题。而修补性重构是在代码已经出现问题之后进行的重构,目的是为了解决已经存在的问题。通过这些介绍,读者可以了解到何时需要进行重构,并且学会了如何在适当的时间和方法下进行重构。

还有,这本书详细介绍了重构的基本技术。这些技术包括:提取方法、内联方法、提取变量、内联变量、移动方法、添置方法、移动字段、封装字段、以及替换算法等。这些技术都是非常实用的,可以帮助我们快速地改善代码质量。例如,提取方法可以帮助我们将重复的代码封装到一个方法中,提高代码的可读性和可维护性;移动方法可以帮助我们将方法移动到更合适的位置,使得代码更加清晰和易于理解。

以及,这本书介绍了如何使用测试来支持重构。测试是支持重构的重要手段,因为它可以帮助我们验证重构后的代码是否仍然符合原来的需求。作者提出了一些测试技术,例如:单元测试、集成测试、回归测试等。同时,作者还介绍了如何使用代码覆盖率工具来检查测试覆盖率。通过本书的介绍,读者可以学会如何使用测试来支持重构,并且如何使用代码覆盖率工具来检查测试覆盖率。

另外,这本书介绍了如何进行大规模重构。大规模重构是指对整个软件系统进行的重构,这是一项具有挑战性的任务。作者提出了一些策略,例如:先进行小规模重构、使用模式来指导重构、使用自动化工具等。这些策略可以帮助我们有效地进行大规模重构。

最后,我认为本书的优点之一是非常实用。作者提供了大量的示例和练习,让读者能够通过实际操作来学习重构技术。此外,本书还介绍了一些常见的反模式(anti-patterns),这些反模式会导致代码的低质量和低效率,读者可以通过了解这些反模式来避免在开发过程中犯同样的错误。

附:《重构的时机和方法》的详情及目录

这里顺便分享一下《重构的时机和方法》这本书的详细信息以及目录,有需要的开发者赶快行动吧。

《重构的时机和方法》详情:

京东网上商城https://union-click.jd.com/jdc?e=&p=JF8BAPoJK1olXwQGUFlUCksfCl8IHloRXAcAU24ZVxNJXF9RXh5UHw0cSgYYXBcIWDoXSQVJQwYHVVpcCUkQHDZNRwYlC1ZwU1oqT1V3C2hzbSd8D3NdLloPXkcbM2oIGlsUVQ4KUF1tC0oVAWgPG1kWVDYyVF9tWiXPtdnQvuoJiayNgdbKOEonA2gBE1MXXgcFUFlaDXsXC2s4Rh9JBVkBUm5tOEgnM18IK1glA2gDB1hfCRhDUQFVQQlAFAQEVDBYCUgUAW4LHGsXXAcAVm5tOD1sSi0PexttIHZ5MDk9azAWXCkOQSVVXGgAJjkmdi91eBd1RARjJgRCDght

《重构的时机和方法》的核心目录:

第Ⅰ部分 通过重构电脑游戏来学习

第1章 重构

第2章 重构的内部原理

第3章 拆分长函数

第4章 让类型代码发挥作用

第5章 将类似的代码融合在一起

第6章 保护数据

第Ⅱ部分 学以致用

第7章 与编译器协作

第8章 远离注释

第9章 喜欢删除代码

第10章 永远不要害怕添加代码

第11章 遵循代码中的结构

第12章 避免优化和通用性

0

结束语

总体来看,我个人认为《重构的时机和方法》是一本非常好的软件开发书籍,它详细介绍了重构的概念、原则、时机、方法和技术,让读者能够全面地了解重构的过程和实践。在实际的软件开发中,我们应该根据具体情况选择适当的时机和方法进行重构。重构不仅可以帮助我们提高代码质量,还可以帮助我们改进设计,使得软件系统更加稳定、可靠、易于维护和扩展。此外,本书还提供了大量的实例和练习,让读者能够通过实践来学习重构技术。如果您是一名软件开发人员,或者对软件开发感兴趣,我强烈推荐您阅读这本书。

更多推荐

kafka配置

生产者配置NAMEDESCRIPTIONTYPEDEFAULTVALIDVALUESIMPORTANCEbootstrap.servershost/port列表,用于初始化建立和Kafka集群的连接。列表格式为host1:port1,host2:port2,…,无需添加所有的集群地址,kafka会根据提供的地址发现其他

前后端分离--Vue的入门基础版

目录一.前后端分离二.Vue的简介三.Vue的入门案例四.Vue的生命周期一.前后端分离前后端分离是一种软件架构模式,将应用程序的前端(用户界面)和后端(数据处理和业务逻辑)独立开发、独立部署。在前后端分离的架构下,前端通过API(应用程序接口)与后端进行通信,实现数据交换和业务处理。前后端分离的优势包括:独立开发:前

【新版】系统架构设计师 - 软件架构设计<SOA与微服务>

个人总结,仅供参考,欢迎加好友一起讨论架构-软件架构设计<SOA与微服务>考点摘要面向服务SOA(★★★★)微服务(★★★★)基于/面向服务的(SOA)在SOA模型中,所有的功能都定义成了独立的服务。服务之间通过交互和协调完成业务的整体逻辑。所有的服务通过服务总线或流程管理器来连接。这种松散耦合的架构使得各服务在交互过

华为分布式新核心全面升级金融级PaaS能力:数字化时代“分工”再深化

文|螳螂观察作者|李永华金融领域一向是数字化转型升级最难啃的硬骨头,无数厂商在此深耕,但由于行业数字化需求复杂而艰深,实现深入突破的并不多,尤其是在关系到账户数据的核心系统方面,有所建树的少之又少。去年11月HC大会期间华为联合业界发布了《现代化金融核心系统白皮书》,今年HC期间,华为数字金融军团CEO曹冲在演讲中指出

刷刷刷——滑动窗口

文章目录209.长度最小的子数组(中等)题目链接算法原理代码实现3.无重复字符的最长子串(中等)题目链接算法原理代码实现1004.最大连续1的个数III(中等)题目链接算法原理代码实现1658.将x减到0的最小操作数(中等)题目链接算法原理代码实现904.水果成篮(中等)题目链接算法原理代码实现438.找到字符串中所有

Docker

1.初识Docker1.1.什么是Docker微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题1.1.1.应用部署的环境问题大型项目组件较多,运行环境也较为复杂,部署时会

Learn Prompt-人工智能基础

什么是人工智能?很多人能举出很多例子说这就是人工智能,但是让我们给它定义一个概念大家又觉得很难描述的清楚。实际上,人工智能并不是计算机科学领域专属的概念,在其他学科包括神经科学、心理学、哲学等也有人工智能的概念以及相关的研究。在笔者的观点里,人工智能就是机器具备同时获得、建立、发展、和运用知识的能力。在计算机科学中,我

网络安全(黑客)自学

前言作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。计算机各领域的知识水平决定你渗透水平的上限。【1】比如:你编程水平高,那你在代码审计的时候就会比别人强,写出的漏洞利用工具就会比别人的好用;【2】比如:你数据库知识水平高,那你在进行SQL注入攻击的时候,你就可以写出更多更好的SQL注入语句

【业务功能110】微服务-springcloud-springboot-Kubernetes集群部署-kubeadm极速部署-Docker安装

kubeadm极速部署Kubernetes1.24版本集群一、Kubernetes1.24版本集群部署1.1Kubernetes1.24版本集群部署环境准备1.1.1主机操作系统说明序号操作系统及版本备注1CentOS7u91.1.2主机硬件配置说明三台主机可以利用虚拟化VMware来部署1.准备Centos7iso镜

常用数据库的 API - 开篇

APIAPI这个词在大多数人看来可能和CNS差不多,前者天天听说就是用不上,后者天天读就是发不了。不过,通过今天的一个简短介绍,今后API这个东西你就用上了,因为在文章最后我将会展示一个最最基础且高频的API使用示例。所谓API(ApplicationProgrammingInterface)就是应用程序接口。这个应用

联合国教科文发布,ChatGPT等生成式AI教育应用指南

联合国教科文组织(UNESCO)在官网发布了,全球首个《生成式AI与教育未来》的应用指南。呼吁各国实施适当的政策,以确保在教育中应用以人为本的方法来使用生成式AI。(指南下载地址:https://unesdoc.unesco.org/ark:/48223/pf0000386693)联合国教科文鼓励各国在教育中应用Cha

热文推荐