一、Duplicated Code(重复代码)
1、同一个类中的两个函数含有相同表达式。采用Extract Method提炼出重复的代码。
2、两个互为兄弟的子类内含有重复表达式。对每个类都使用Extract Method提炼出重复的代码,然后在对被提炼出的代码使用Pull Up Method,将它推入父类中。如果两个兄弟类中的代码只是类似而非相同时,使用Extract Method将类似部分的相同部分和不同部分分别提炼为两个函数,使用Form Template Method(模板设计模式)。如果有些函数以不同的算法做相同的事,可以选择其中较清晰的一个,并使用Substitute Algorithm将其他函数的算法替换掉。
3、如果两个毫不相关的类出现Duplicated Code,考虑将其中一个使用Extract Class,将重复代码提炼到一个独立的类中,然后分别使用新类。但是可能这个共同使用的函数可能放到其中的一个类中更合适,或者也可能这个函数适合存在于第三个已经存在的类中。
分享到:
相关推荐
《重构-第3章 代码的坏味道》是软件开发领域的一本经典著作,由Martin Fowler所著。这本书深入探讨了如何识别并消除代码中的不良设计模式,以提高代码质量、可读性和可维护性。在第三章中,作者详细列举了多种"代码...
以上列出的是《重构 改善既有代码的设计》书中提到的一些常见的代码“坏味道”。通过识别并解决这些问题,开发者可以显著提升代码的质量。值得注意的是,重构并非一蹴而就的过程,而是一个持续改进的过程。随着项目...
1. 识别代码坏味道及其影响。 2. 使用重构技术改进代码结构。 3. Git的使用,包括提交、查看历史和版本回退。 4. 单元测试在重构中的角色及编写测试用例的方法。 5. 如何利用IDE和插件进行有效的重构。 6. 实践重构...
1. **识别坏味道**:首先,我们需要识别出代码中的“坏味道”,这可能是冗余代码、复杂的条件逻辑、过长的方法等。在本章的例子中,作者可能会展示如何发现这些代码问题。 2. **应用重构模式**:Fowler在他的书中...
第 3 章:代码的坏味道(Bad Smells in Code, by Kent Beck and Martin Fowler) 第 4 章:建立测试体系(Building Tests) 第 5 章:重构名录(Toward a Catalog of Refactoring) 第 6 章:重新组织你的...
#### 第3章:代码重构的工具 **3.1 代码质量检测工具** - **SonarQube**:全面的代码质量管理平台,支持多种编程语言。 - **PMD**:用于静态分析的工具,帮助识别可能的代码问题。 - **Checkstyle**:检查Java源...
第3章“代码的坏味道”列举了22种常见的代码异味,这些是代码质量下降的信号,如神秘命名、重复代码、过长函数等。作者指出,当代码出现这些问题时,可能需要进行重构。通过对这些坏味道的识别,开发者可以更好地...
第三章 预支付中的技术问题分析和代码落地 第四章 支付成功后的履约场景问题分析和代码落地 第五章 阿里云生产环境部署演示 第六章 超时自动取消订单场景中的问题分析和代码落地 第七章 取消订单全链路技术问题分析...
第1章:重构的第一个案例 第2章:重构原则 第3章:代码的坏味道 第4章:构筑测试体系 第5章:重构名录 。。。
"2-3.pdf"和"2-3.txt"可能是书中第二章至第三章的内容,这部分可能详细讨论了代码重构,这是提高代码质量的重要手段。重构可以使得代码结构更清晰,逻辑更简洁,同时不改变外部行为。作者可能会分享如何识别代码坏...
第3章讨论现代程序员最基本的工具之一——测试替身。第二部分(第4~6章)的目标是帮助我们更好地识别并修复测试代码中的坏味道。第4章展示破坏测试可读性的坏味道。第5章继续对破坏可维护性的测试提供建议。第6章...
第3章Kent Beck介绍如何嗅出代码中的【坏昧道】,以及如何运用重构清除这些坏味道。「测试」在重构中扮演非常重要的角色,第4章介绍如何运用一个简单的(源码开放的)Java测试框架,在代码中构筑测试环境。 本书的...
第3章 代码的坏味道75 3.1 DuplicatedCode(重复代码)76 3.2 LongMethod(过长函数)76 3.3 LargeClass(过大的类)78 3.4 LongParameterList(过长参数列)78 3.5 DivergentChange(发散式变化)79 3.6 ...
第3章 代码的坏味道 3.1 Duplicated Code(重复代码) 3.2 Long Method(过长函数) 3.3 Large Class(过大的类) 3.4 Long Parameter List(过长参数列) 3.5 Divergent Change(发散式变化) 3.6 Shotgun Surgery(霰弹...
第3章 代码的坏味道 75 3.1 Duplicated Code(重复代码) 76 3.2 Long Method(过长函数) 76 3.3 Large Class(过大的类) 78 3.4 Long Parameter List(过长参数列) 78 3.5 Divergent Change(发散式...
- **识别坏味道**:找到代码中的问题区域。 - **制定计划**:规划重构的具体步骤。 - **执行重构**:按照计划实施代码修改。 - **验证结果**:测试重构后的代码,确保功能正确且质量提升。 - **重构实战**: -...
这个压缩包文件包含了书中的第一章部分的源码示例,可能是为了帮助读者更好地理解重构实践。 在重构过程中,我们首先需要理解几个核心概念: 1. **识别坏味道**:当代码出现“坏味道”(code smell)时,如冗余...
第3章 代码的坏味道75 3.1 DuplicatedCode(重复代码)76 3.2 LongMethod(过长函数)76 3.3 LargeClass(过大的类)78 3.4 LongParameterList(过长参数列)78 3.5 DivergentChange(发散式变化)79 3.6 ...
第3章 代码的坏味道75 3.1 DuplicatedCode(重复代码)76 3.2 LongMethod(过长函数)76 3.3 LargeClass(过大的类)78 3.4 LongParameterList(过长参数列)78 3.5 DivergentChange(发散式变化)79 3.6 ...