《重构》笔记摘录
文章平均质量分 86
《重构》笔记摘录
使二颗心免于哀伤
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《重构》笔记摘录 - 9.处理继承关系
即便在子类继承是合理的建模方式的情况下,如果子类与超类之间的耦合过强,超类的变化很容易破坏子类的功能,我还是会使用以委托取代超类。除了“子类用得上超类的所有函数”之外,合理的继承关系还有一个重要特征:子类的所有实例都应该是超类的实例,通过超类的接口来使用子类的实例应该完全不出问题。直实世界的分类结构可以作为设计继承关系的提示,但还有很多时候,合理的继承关系是在程序演化的过程中才浮现出来的:我发现了一些共同元素,希望把它们抽取到一处,于是就有了继承关系。对于不同的变化原因,我可以委托给不同的类。原创 2025-04-26 10:32:18 · 963 阅读 · 0 评论 -
《重构》笔记摘录 - 8.重构API
不使用以查询取代参数最常见的原因是,移除参数可能会给函数体增加不必要的依赖关系——迫使函数访问某个程序元素,而我原本不想让函数了解这个元素的存在,这种“不必要的依赖关系”除了新增的以外,也可能是我想要稍后去除的,例如为了去除一个参数,我可能会在函数体内调用一个有问题的函数,或是从一个对象中获取某些原本想要剥离出去的数据。不过,将函数封装成自己的对象,有时也是一种有用的办法。在浏览函数实现时,我有时会发现一些令人不快的引用关系,例如,引用一个全局变量,或者引用另一个我想要移除的元素。这种函数的测试也更容易。原创 2025-04-20 16:26:02 · 795 阅读 · 0 评论 -
《重构》笔记摘录 - 7.简化条件逻辑
一个常见的场景是:我可以构造一组类型,每个类型处理各自的一种条件逻辑。在带有复杂条件逻辑的函数中,代码(包括检查条件分支的代码和真正实现功能的代码)会告诉我发生的事,但常常让我弄不清楚为什么会发生这样的事,这就说明代码的可读性的确大大降低了。和任何大块头代码一样,我可以将它分解为多个独立的函数,根据每个小块代码的用途,为分解而得的新函数命名,并将原函数中对应的代码改为调用新函数,从而更清楚地表达自己的意图。我必须编写代码来检查不同的条件分支,根据不同的条件做不同的事,然后,我很快就会得到一个相当长的函数。原创 2025-04-13 17:13:52 · 667 阅读 · 0 评论 -
《重构》笔记摘录 - 6.重新组织数据
如果我想在几个对象之间共享一个对象,以便几个对象都能看见对共享对象的修改,那么这个共享的对象就应该是引用。两者最明显的差异在于如何更新内部对象的属性:如果将内部对象视为引用对象,在更新其属性时,我会保留原对象不动,更新内部对象的属性;有一种合理的例外情况:如果计算的源数据是不可变的,并且我们可以强制要求计算的结果也是不可变的,那么就不必重构消除计算得到的派生变量。一如既往地,我在一个软件上做的工作越多,对数据的理解就越深,所以很有必要把我加深的理解融入程序中。记录结构中的字段可能需要改名,类的字段也一样。原创 2025-04-12 22:45:21 · 722 阅读 · 0 评论 -
《重构》笔记摘录 - 4.封装
一个好的模块化的设计,“封装”即使不是其最关键特征,也是最关键特征之一。本文介绍《重构》中与封装相关重构手法的基本概念。原创 2025-03-26 21:07:03 · 804 阅读 · 0 评论 -
《重构》笔记摘录 - 3.最常用的一组重构
只在一行的lambda表达式中使用的变量,跟踪起来很容易,像这样的变量,我经常只用一个字母命名,因为变量的用途在这个上下文中很清晰。到底应该封装什么,以及如何封装,取决于数据被使用的方式,以及我想要修改数据的方式。从道理上来说,只用提炼函数也能避免重复,但孤立存在的函数常常很难找到,只有把函数和它们操作的数据放在一起,用起来才方便。每当看见一段代码在同时处理两件不同的事,我就想把它拆分成各自独立的模块,因为这样到了需要修改的时候,我就可以单独处理每个主题,而不必同时在脑子里考虑两个不同的主题。原创 2025-03-22 21:53:06 · 955 阅读 · 0 评论 -
《重构》笔记摘录 - 2.代码坏味道
写下的代码应该直观明了。整洁代码最重要的一环就是好的名字,所以我们会深思熟虑如何给函数、模块、变量和类命名,使它们能清晰地表明自己的功能和用法。改名不仅仅是修改名字而已。如果你想不出一个好名字,说明背后很可能潜藏着更深的设计问题。为一个恼人的名字所付出的纠结,常常能推动我们对代码进行精简。原创 2025-03-09 15:51:15 · 806 阅读 · 0 评论 -
《重构》笔记摘录 - 1.重构的原则
重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的提下,提高其可理解性,降低其修改成本。重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。重构的关键在于运用的步骤,一步步达成大规模的修改。每个单独的重构要么很小,要么由若干小步骤组合而成。原创 2025-03-02 21:56:33 · 1027 阅读 · 0 评论
分享