`

代码的异味

 
阅读更多

代码的异味

一.duplicated  code

当相同或者相似的程序结构出现在一个以上的地方的时候,这段代码就需要合而为一,提炼出一个方法共调用。

分为3种情况,

1.同一个类的两个函数含有相同的表达式。

处理方式:使用extract method提炼出这重复代码,然后在这两个地方调用这个函数。

2.互为兄弟的两个子类含有相同的表达式

处理方式:对这两个类extract method提炼出重复代码到一个函数,然后采用pull up method推入他们的超类中。

3.两个无关的类中出现dulicated code。

处理方式:采用extract method提炼出重复代码,并将重复代码放到一个合适的类中(可以是单独的一个独立的类,也可以是这两个类中的一个。这个根据设计中职责划分的原则选择),然后在原来出现的地方调用这个方法。

 

二.long method

小型函数的有点:自解释能力,共享能力,选择能力(使用多态特性封装条件逻辑)。

 

为避免logn mehtod我们应该积极的分解函数,分解的过程中应遵循一个原则:每当感觉需要以注释来说明一段代码做什么事情的时候,就应该把这段代码封装到一个函数同,并以其用途或者功能(也就是注释的内容)来为其命名。

处理方式:使用extract method提炼函数。

 

提炼函数的过程中可能需要将大量的参数和临时变量当作新函数的参数传递过来使用,这会引起提炼出的函数参数过长。一般遇到这个问题可以使用replace temp with query来消除这些临时变量,采用instroduce parameter object 和 preserve whole object则可以将过长的参数列表变得简洁。

 

如果经过上述的处理后仍然有太多临时变量和参数,我们就可以使用repace method with method object。

 

三.large class

 

 

 

 

分享到:
评论

相关推荐

    reek, ruby的代码异味 检测器.zip

    reek, ruby的代码异味 检测器 用于 ruby的 代码异味 检测器目录概述快速入门示例支持的红宝石固定气味警告源代码代码异味配置文件命令行接口配置文件配置加载程序配置选项生成一个'待办事项'列表注意:要注意多个...

    基于排序损失的ECC多标签代码异味检测方法.docx

    味的定义可以看出,代码异味(Code Smell)是软件开发中的一种不良编程习惯或设计问题,它降低了软件的可读性、可维护性和可靠性。Fowler 提出了22种常见的代码异味,包括数据类、大类、长方法、特征依恋等。针对...

    毕业设计安卓源码-RAndroid:代码异味重构AndroidStudio插件

    用于代码异味重构的 Android Studio 插件。 它能够修复特定于 Android 的代码异味和/或建议适当的重构来解决它们。 该插件支持以下代码异味: 自动重构: 初始化 OnDraw (IOD) 重启动服务 (HSS) 刚性警报管理器 (RAM...

    Python代码异味检测:实现SonarQube规则.pdf

    文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿...

    code-smell-refactoring:几种语言中各种代码异味的小例子

    **代码味道与重构** 在软件开发中,"代码味道"(Code Smell)是指那些表明代码可能存在潜在问题的特征或模式。这些不一定是错误,但它们可能会降低代码的可读性、可维护性和效率,因此需要进行重构。"code-smell-...

    QT代码统计器QT代码统计器

    通过定期进行代码统计和分析,可以发现潜在的代码异味(code smell),并及时进行重构,以保持代码的可读性和可维护性。 总之,QT代码统计器是QT开发环境中一个实用的辅助工具,它通过提供详细的代码统计信息,帮助...

    deploy-sonar代码扫描分析

    SonarQube是一款开源平台,专门用于持续代码质量管理,它能检测出代码中的潜在错误、漏洞、代码异味以及不符合编码规范的地方。 在开发过程中,代码扫描分析是至关重要的一步,它能够帮助开发者在早期阶段发现并...

    代码审计工具汇总

    通过SonarQube,开发者可以发现潜在的代码质量问题,包括潜在的bug、漏洞和代码异味。 2. **PMD**: PMD是一款Java源码分析器,它可以检查代码中的常见问题,如未使用的变量、空的catch块、冗余的代码等。PMD也...

    A Textual-based Technique for Smell Detection

    本文介绍了一种基于文本分析的技术,用于检测代码中的不良实践,即代码异味(code smells)。代码异味是指那些表面上不影响程序运行功能,但违背了良好的编程规范和设计原则,从而影响代码可维护性和可理解性的做法...

    JAVA代码优化工具

    9. **SonarQube**: SonarQube是一个开源的质量管理平台,它能够检测代码中的各种问题,包括性能问题、代码异味、潜在错误等,帮助团队维持代码质量。 10. **Java Mission Control (JMC)**: JMC是Oracle提供的一个...

    Java代码审查工具

    1. **SonarQube**:这是一个开源的静态代码分析平台,能够检测代码中的bug、漏洞、代码异味以及复杂度。SonarQube支持多种编程语言,包括Java,它通过集成持续集成/持续部署(CI/CD)工具,可以在代码提交时实时进行...

    重构改善现有代码的设计

    5. **代码异味(Code Smells)**:书中列举了许多常见的代码异味,如重复代码(Duplicate Code)、过长的方法(Excessive Method Length)和过大的类(Class with Too Many Responsibilities)等,这些都是代码质量下降的...

    静态代码检查工具

    静态代码检查工具是软件开发过程中用于在代码编写阶段发现潜在错误、代码异味(code smells)以及违反编码规范的工具。这类工具通常不需要运行代码,而是对代码文件进行分析,对可能存在的问题给出警告或建议,以...

    SonarLint代码质量检查工具

    SonarQube是一个开源的平台,主要目标是进行源代码分析,检测潜在的代码缺陷、漏洞和代码异味,从而帮助开发者在编码阶段就能发现并修复问题,而不是等到后期测试或生产环境中才暴露出来。 SonarLint作为一个集成...

    Source Counter【代码统计工具】

    这有助于识别可能的代码异味,从而提前预防潜在的bug和性能问题。 总的来说,"Source Counter"是一款强大的代码统计工具,它通过量化代码库的各个维度,为软件开发团队提供了一种有效管理和优化项目的方法。无论是...

    D2Smells_Source_d2d2smellssmells_forgetwnn_源码.zip

    【标题】:“D2Smells”是一个开源项目,专注于代码异味检测工具——"d2d2smellssmells_forgetwnn"的源码分析。这个压缩包包含的是该工具的源代码,用于帮助开发者识别和修复代码中的不良编程实践。 【描述】:“D2...

    重构改善既有代码的结构

    重构通常包括提取函数、拆分类、移除重复代码、简化条件表达式等步骤,这些操作有助于消除代码异味,提高代码的结构清晰度。 在"重构:改善既有代码的设计(中英文)"这个文件中,我们可以期待找到关于重构的详细...

Global site tag (gtag.js) - Google Analytics