`

魔鬼数字

 
阅读更多

代码中的魔鬼数字

 

魔鬼数字的定义:在代码中没有具体含义的数字、字符串。

 

魔鬼数字主要影响了代码可读性,读者看到的数字无法理解其含义,从而难以理解程序的意图。当程序中出现的魔鬼数字过多时,代码的可维护性将会急剧下降,代码变得难以修改,并容易引入错误。

 

例如:

 

修改后:

 

例如:

int itemCount=10;                  // 这可以认为不是魔鬼数字 ,但应该有注释

       int itemSize=5;                    //   这可以认为不是魔鬼数字 ,但应该有注释

       // 一系列处理逻辑后

       if ((storageManager.getCapacity() - itemCount*itemSize) < 1024){   //1024 是魔鬼数字

           storageManager.expandCapacityBy(512);     //512 是魔鬼数字

     }

 

解决方案:

1、   将魔鬼数字定义为常量

例如,将:

storageManager.expandCapacityBy(512);

改成:

public static final int CAPACITY_INCREASE_STEP=512;

storageManager.expandCapacityBy(CAPACITY_INCREASE_STEP);

 

2、   将使用魔鬼数字的逻辑封装为方法,增加注释

例如,将:

if ((storageManager.getCapacity() - itemCount*itemSize) < 1024){

改成:

if ( storageManager.needIncreaseCapacity(itemCount,itemSize)){

 

boolean storageManager.needIncreaseCapacity(int itemCount,int itemSize){

    return (storageManager.getCapacity() - itemCount*itemSize) < 1024;// 当剩余容量小于 1024 字节时,需要扩充空间。

}

 

分享到:
评论

相关推荐

    任意位魔鬼数字判断

    本程序简语句20条,而且少量修改就可以 显示任意大小2数或3数相乘魔鬼数字 ,如果你学到了Thinking in java 4 第四章练习题第10 无法解决就来下我的程序把,如果有小问题请联系我 qq 27221828 15 93 1395...

    数字的发展史一PPT学习教案.pptx

    在西方,0的出现曾引发争议,一度被认为是“魔鬼数字”,因为它挑战了当时的数学逻辑,如除以0的问题。尽管0在公元5世纪就已经传入罗马,但因教皇的反对,它在一段时间内并未广泛使用。直到后来,人们逐渐认识到0的...

    数字的发展史一学习教案.pptx

    0的引入曾引发西方世界的争议,因为当时的人们认为0可能导致算术和逻辑上的困扰,如除以0的问题,甚至被误解为“魔鬼数字”。直到公元5世纪,0才逐渐被接受,尽管过程中遭遇了阻力。\n\n0的引入极大地丰富了数字符号...

    趣味数学数字的发展史初中PPT学习教案.pptx

    而在古罗马,其数字系统相当进步,虽然罗马数字中没有零,但在公元5世纪,零的概念已经传入,但因教皇的反对,零曾被视为“魔鬼数字”而被禁用。 零的引入最终打破了这一局面,它不仅代表了“无”,也象征着“有”...

    c#入门经典(第五版)中文版.PDF 分卷3(共3分卷)

    第Ⅰ部分 C#语言 第1章 C#简介 1.1 .NET Framework的含义 1.1.1 .NET Framework的内容 1.1.2 使用.NET Framework编写应用程序 1.2 C#的含义 ...1.2.1 用C#能编写什么样的应用程序 ...(此卷为分卷3,共3个分卷)

    Java开发军规.docx

    使用魔鬼数字会使代码变得难以阅读和维护,将数字定义为有意义的常量能够提高代码的可读性和可维护性。例如,在某些专业领域,0和1可能具有特殊的物理量枚举数值意义,这时必须定义常量,而不应该使用魔鬼数字。 二...

    c语言数据基本类型

    C语言数据基本类型、字节大小、取值范围等,根据台湾视频教程整理的简体表格

    低级错误,你犯过这种错误吗?

    4. **魔鬼数字**:直接使用硬编码的数值(魔鬼数字)会使代码难以理解和维护。示例中的`3`和`NUM_THREE`都属于魔鬼数字。应为这些值定义常量,并在需要的地方引用它们,比如`ProductStatusEnum.NEW`或`...

    C语言常见错误及问题分析.ppt

    所谓“魔鬼数字”,指的是那些未经解释的数字常量,比如`0xFF`、`0x0A`等。这些数字通常代表特定的含义,但如果没有相应的注释或定义,其他开发者很难理解其用途。为了避免这种情况,推荐的做法是使用预定义的宏或...

    华为java编程军规

    这是因为魔鬼数字会使代码难以阅读和维护,使用有意义的常量可以提高代码的可读性和可维护性。 军规二:明确方法的功能,一个方法仅完成一个功能。这是因为方法功能太多,会增加方法的复杂度和依赖关系,不利于程序...

    java编码规范考试题答案.doc

    * 程序中的魔鬼数字并不可怕,需要所有开发人员努力理解这些数字的含义。 5. 异常处理 * 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用...

    C_C++编程规范1

    9. **避免魔鬼数字**:不要在代码中直接使用含义不明的数字,应将其定义为有意义的常量。 对于【自定义类型】,特别是【C++类/结构体】的命名,有以下准则: 1. **类命名**:一般以大写字母"C"开头,后面跟着一个...

    Java 编程军规.docx

    #### 军规一:避免使用魔鬼数字,用有意义的常量替代 - **解释**:所谓“魔鬼数字”,通常指的是没有明确意义的硬编码数字。例如,直接在代码中使用数字`1`表示成功状态,而不加以注释或定义为常量。这样不仅降低...

    .net编码规范.doc

    - **魔鬼数字**:尽量避免使用无意义的硬编码数字,可使用常量代替。 - **属性**:合理使用属性,以提供封装和访问控制。 - **其他注意事项**:如避免不必要的服务器交互,优化Web开发中的ViewState使用,合理...

    服务礼仪的基本理论教材.pptx

    二、人际交往的魔鬼数字“73855” 这个数字强调了非语言沟通在人际交往中的重要性,即7%的语言、38%的语调和55%的肢体语言。在服务中,良好的肢体语言和适当的语调可以传达出我们对客户的尊重和关注。 案例分析: ...

    26.1、代码优化1

    - **避免魔鬼数字**:使用常量定义代替硬编码的数值,增加代码可读性。 3. **局部变量优先**: - **栈变量的使用**:局部变量存储在栈中,生命周期短,速度快。尽量使用局部变量,减少堆内存的使用。 4. **集合...

    谷米嵌入式编码规范1

    14. **避免魔鬼数字**:使用常量或枚举代替魔法数字。 15. **结构化编程**:`if...else if` 结构以`else`结束,`switch`语句有`default`分支。 16. **代码风格**:使用缩进风格,每级缩进4个空格,适当添加空行,...

    编程代码规范

    - 避免使用"魔鬼数字",即硬编码的无明显意义的数值,应使用常量或枚举代替。 - 使用`const`修饰参数,表明在函数执行过程中不会修改该参数的值,增加代码可读性。 - 对于频繁调用的小函数,可以考虑使用`inline`...

Global site tag (gtag.js) - Google Analytics