`

代码的味道

阅读更多

转载自:http://javatar.iteye.com/blog/95508

什么时候需要Refactoring? 
代码的味道是高水平程序员对“好程序“的一种感觉,他们具备一种能力,即使不涉及程序代码的具体实现就能看出你的设计是否合理。 
如果代码有“异味“,那么你需要进行Refactorying. 

 

需要慢慢多次的体会。
1、重复代码(Duplicate Code) 
即使是一两句代码的重复也需要refactoring,有时候重复不是那么明显,你需要首先进行其他的refactoring才能看到代码重复。排除代码重复是OO软件工程最重要的研究课题之一 
2、长方法(Long Method) 
来自于面向过程的思路,即使能够在一页内能够显示的方法也可能太长。 
3、大类(Large Class) 
一个类含有太多的责任和行为 
4、参数太多(Long Parameter List) 
对象含有状态,不再需要太多的参数。 
5、不一致的变化(Divergent Change) 
不要把变化速度不同的东西放在一起。不要把一个方法对每个子类的变化的部分和不变化的部分放在一起。不要把对象中每秒都在变化的实例变量和一个月才变化一次的实例变量放在一起...等等。 
6、Shotgun Surgery 
改变影响到太多的类和方法 
7、特性羡慕(Feature Envy) 
对其他对象中的数据太感兴趣了 
8、数据从(Data Clumps ) 
一块数据到处一起使用,他们应该有自己的类 
9、原始类型困扰(Primitive Obsession) 
用类代替原始数据类型 
10、开关语句(Switch Statement) 
面向对象由其他办法来处理这些依赖于类型的方法。 
11、并行继承层次(Parallel Inheritance Hierarchies ) 
有时候有用但有时候不必要 
12、惰类(Lazy Class) 
不足以自己成为一个类,应该排除 
13、投机通则(Speculative Generality ) 
不要太多考虑为将来而建立的灵活性 
14消息链(Message Chain ) 

硬性把客户和导航结构相耦合 
15中间人(Middle Man ) 

如果他所有的事情就是在做分派,那么应当删除。 
16不合适的亲密(Inappropriate Intimacy) 

限制对其他类内部结构的知识和了解。 
17不完整的库类(Incomplete Library Class ) 

某些时候必须扩展一增加所需的功能 
18数据类(Data Class ) 

应当添加任务和行为来处理它的数据 
19被拒绝的遗产(Refused Bequest ) 

子类很少利用父类给予它们的东西 
20、注释(Comments ) 
注释是说明why而不是what的好地方。  

分享到:
评论

相关推荐

    代码缺陷与代码味道的自动探测与优化研究 (2014年)

    ### 代码缺陷与代码味道的自动探测与优化研究 #### 概述 本文介绍了一项旨在提高软件质量的研究成果——一种名为SCORT的源代码优化与重构工具的设计与开发。该工具通过自动化的方式识别和修复代码中的缺陷及不良...

    Ruby-ReekRuby代码味道探测器

    Ruby Reek 是一款强大的静态代码分析工具,专注于检测 Ruby 代码中的“坏味道”或不良编程习惯。这个工具可以帮助开发者提升代码质量,遵循更好的编程实践,从而使得代码更易于理解和维护。Reek 的核心理念是通过...

    代码坏味道整理

    标题“代码坏味道整理”指的是在编程过程中,代码可能会出现的一些不良习惯或低效的编程实践,这些被称为“代码坏味道”。这些坏味道通常会使代码难以理解、维护和扩展,降低了软件的质量。为了提高代码可读性和可...

    编码中的21种代码坏味道

    "编码中的21种代码坏味道" 在设计和编码中,存在着21种代码坏味道,这些坏味道可能会给后续维护带来极大影响。如果我们能够识别和消除这些坏味道,那么我们的代码将变得更加简洁、可维护和可扩展。 Duplicated ...

    《重构 改善既有代码的设计》之代码的坏味道

    ### 《重构 改善既有代码的设计》之代码的坏味道 #### 代码的坏味道简介 重构是一种改进代码质量的重要手段,它不仅能够提升代码的可读性和可维护性,还能帮助开发者更好地理解现有系统架构。《重构 改善既有代码...

    sonar-Kotlin检查规则指南.docx

    Sonar-Kotlin 中的坏味道类型规则是指检查代码中的代码味道问题。这些规则检查代码中是否存在代码味道问题,如重复代码、长方法等。例如, Sonar-Kotlin 中有一条规则,检查代码中是否存在长方法,因为长方法可能会...

    敏捷软件开发:原则、模式与实践

    5. **结对编程**:两个开发者共同编写代码,提高代码质量,增强知识共享。 6. **测试驱动开发(TDD)**:先写测试,再编写满足测试的代码,确保软件的健壮性。 7. **重构**:不断改进代码结构,提高可读性和可维护性...

    重构-改善既有代码的设计

    1. **代码味道识别**:这是重构的第一步,需要识别出代码中可能存在的问题,如重复代码、复杂方法、长参数列表、多态滥用等,这些都是代码重构的潜在目标。 2. **重构模式应用**:针对不同的代码问题,有相应的重构...

    让开发自动化持续重构--使用静态分析工具识别代码味道

    在过去的几年里,我曾看过很多项目的大量源代码,从精美的设计到像是用胶带绑定到一起的代码。我写过新的代码也维护过其他开发人员的源代码。我喜欢编写新的代码,但也喜欢采用一些现有的代码,以某种方法将其简化或...

    代码TOP10的坏味道

    ### 代码TOP10的坏味道 #### 1. 返回值处理 在Java开发中,一个常见的问题是**返回值处理不当**。这个问题通常出现在函数调用后,如果调用方忽略了处理被调用函数的返回值,特别是当这些返回值对于后续业务逻辑有...

    代码的坏味道 重构方式对应表

    **代码的坏味道与重构方式对应表** 代码的坏味道是指在编程过程中可能出现的不良编程习惯,这些习惯可能导致代码难以理解和维护。以下是一些常见的代码坏味道及其对应的重构方法: 1. **重复代码 (DRY - Don't ...

    重构-第3章 代码的坏味道-读书笔记

    《重构-第3章 代码的坏味道》是软件开发领域的一本经典著作,由Martin Fowler所著。这本书深入探讨了如何识别并消除代码中的不良设计模式,以提高代码质量、可读性和可维护性。在第三章中,作者详细列举了多种"代码...

Global site tag (gtag.js) - Google Analytics