《重构:改善既有代码的设计》阅读笔记三
为啥要重构。
何为重构:“重构就是对软件内部结构的一种调整,目的是不改变软件可观察行为的前提下,提高其可理解性,降低其可修改成本。”太专业的解释了。我下个通俗的定义吧:“重构是优化代码结构,使其阅读性更好,扩展性更强的一种高级技术”。
软件开发中,随着功能的加入,程序将慢慢失去原来的结构。有些人贸然加入功能的实现代码,但却没有理解原来程序的结构和考虑代码的扩展性,程序的可读性也非常低,随着代码数量越来越多,如果不进行重构的话,程序就会越来越难以维护,导致最后放弃这个程序。我们需要重构让程序避免这样的结果。
我觉得本书中有句话特别好”程序是首先写给人看的,其次才是写给机器看“,我们写程序不可能刚开始就会有这样很好的结构,在写的过程中我们需要对代码进行重构让其走上这样的道路,代码越来越能看的懂,将来接手维护这个程序的人也会上手更快。
书中列举了大量的不好的代码情况,这些不好的情况在我编程中都应该去避免。一个函数也不应该太长,如果太长首先影响理解,其次包含的步骤太多会影响函数复用。做法是将里面的步骤提取为很多小函数,并且函数命名要体现出函数做了什么,清晰明了。每一个方法应该放在她最适合的位置,不能随便乱放,所以很多时候你需要考虑,一个方法在这里是不是最适合的。
将不属于这个类中的字段和方法提取到一个新的类中。所以说在你写代码的时候一定要考虑这句话放这里是不是合适,有没有其他更合适的地方?有时候每一个子类都有声明一个字段或方法,但是父类里面却没有这个字段或方法,这时候就考虑把这个字段或方法移动到父类里面,去除子类的这个字段和方法。相反情况,如果父类有一个字段或方法,但只是某个子类需要使用,就需要考虑吧这个字段或方法移动到这个特定的子类里面了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~