代码中的魔鬼数字
魔鬼数字的定义:在代码中没有具体含义的数字、字符串。
魔鬼数字主要影响了代码可读性,读者看到的数字无法理解其含义,从而难以理解程序的意图。当程序中出现的魔鬼数字过多时,代码的可维护性将会急剧下降,代码变得难以修改,并容易引入错误。
例如:
修改后:
例如:
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...
在西方,0的出现曾引发争议,一度被认为是“魔鬼数字”,因为它挑战了当时的数学逻辑,如除以0的问题。尽管0在公元5世纪就已经传入罗马,但因教皇的反对,它在一段时间内并未广泛使用。直到后来,人们逐渐认识到0的...
0的引入曾引发西方世界的争议,因为当时的人们认为0可能导致算术和逻辑上的困扰,如除以0的问题,甚至被误解为“魔鬼数字”。直到公元5世纪,0才逐渐被接受,尽管过程中遭遇了阻力。\n\n0的引入极大地丰富了数字符号...
而在古罗马,其数字系统相当进步,虽然罗马数字中没有零,但在公元5世纪,零的概念已经传入,但因教皇的反对,零曾被视为“魔鬼数字”而被禁用。 零的引入最终打破了这一局面,它不仅代表了“无”,也象征着“有”...
第Ⅰ部分 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个分卷)
使用魔鬼数字会使代码变得难以阅读和维护,将数字定义为有意义的常量能够提高代码的可读性和可维护性。例如,在某些专业领域,0和1可能具有特殊的物理量枚举数值意义,这时必须定义常量,而不应该使用魔鬼数字。 二...
C语言数据基本类型、字节大小、取值范围等,根据台湾视频教程整理的简体表格
4. **魔鬼数字**:直接使用硬编码的数值(魔鬼数字)会使代码难以理解和维护。示例中的`3`和`NUM_THREE`都属于魔鬼数字。应为这些值定义常量,并在需要的地方引用它们,比如`ProductStatusEnum.NEW`或`...
所谓“魔鬼数字”,指的是那些未经解释的数字常量,比如`0xFF`、`0x0A`等。这些数字通常代表特定的含义,但如果没有相应的注释或定义,其他开发者很难理解其用途。为了避免这种情况,推荐的做法是使用预定义的宏或...
这是因为魔鬼数字会使代码难以阅读和维护,使用有意义的常量可以提高代码的可读性和可维护性。 军规二:明确方法的功能,一个方法仅完成一个功能。这是因为方法功能太多,会增加方法的复杂度和依赖关系,不利于程序...
* 程序中的魔鬼数字并不可怕,需要所有开发人员努力理解这些数字的含义。 5. 异常处理 * 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用...
9. **避免魔鬼数字**:不要在代码中直接使用含义不明的数字,应将其定义为有意义的常量。 对于【自定义类型】,特别是【C++类/结构体】的命名,有以下准则: 1. **类命名**:一般以大写字母"C"开头,后面跟着一个...
#### 军规一:避免使用魔鬼数字,用有意义的常量替代 - **解释**:所谓“魔鬼数字”,通常指的是没有明确意义的硬编码数字。例如,直接在代码中使用数字`1`表示成功状态,而不加以注释或定义为常量。这样不仅降低...
- **魔鬼数字**:尽量避免使用无意义的硬编码数字,可使用常量代替。 - **属性**:合理使用属性,以提供封装和访问控制。 - **其他注意事项**:如避免不必要的服务器交互,优化Web开发中的ViewState使用,合理...
二、人际交往的魔鬼数字“73855” 这个数字强调了非语言沟通在人际交往中的重要性,即7%的语言、38%的语调和55%的肢体语言。在服务中,良好的肢体语言和适当的语调可以传达出我们对客户的尊重和关注。 案例分析: ...
- **避免魔鬼数字**:使用常量定义代替硬编码的数值,增加代码可读性。 3. **局部变量优先**: - **栈变量的使用**:局部变量存储在栈中,生命周期短,速度快。尽量使用局部变量,减少堆内存的使用。 4. **集合...
14. **避免魔鬼数字**:使用常量或枚举代替魔法数字。 15. **结构化编程**:`if...else if` 结构以`else`结束,`switch`语句有`default`分支。 16. **代码风格**:使用缩进风格,每级缩进4个空格,适当添加空行,...
- 避免使用"魔鬼数字",即硬编码的无明显意义的数值,应使用常量或枚举代替。 - 使用`const`修饰参数,表明在函数执行过程中不会修改该参数的值,增加代码可读性。 - 对于频繁调用的小函数,可以考虑使用`inline`...