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

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

例如:

修改后:

解决方法:用常量定义魔鬼数字。

个人理解——>魔鬼数字:即难以被理解的且没有注释的常量(0、1这种)表示某个有意义的参数来使用。

在代码中使用魔鬼数字(没有具体含义的数字、字符串等)将会导致代码难以理解,应该将数字定义为名称有意义的常量。

将数字定义为常量的最终目的是为了使代码更容易理解,所以并不是只要将数字定义为常量就不是魔鬼数字了。如果常量的名称没有意义,无法帮助理解代码,同样是一种魔鬼数字。

在个别情况下,将数字定义为常量反而会导致代码更难以理解,此时就不应该强求将数字定义为常量。

案例

// 魔鬼数字,无法理解3具体代表产品的什么状态

if (product.getProduct().getProductStatus() != 3)

{

throw new PMSException(PMSErrorCode.Product.ADD_ERROR);

}

// 仍然是魔鬼数字,无法理解NUM_THREE具体代表产品的什么状态

if (product.getProduct().getProductStatus() != NUM_THREE)

{

throw new PMSException(PMSErrorCode.Product.ADD_ERROR);

}

//例子中虽然将数字定义为了常量,但代码却并不容易理解

Point drawCenter = new Point();

drawCenter.x = parentWindow.x + (parentWindow.width - clientWindow.width) / HALF_SIZE_DIV;

drawCenter.y = parentWindow.y + (parentWindow.height - clientWindow.height) / HALF_SIZE_DIV;

return drawCenter;

//直接使用数字,代码反而更容易理解

Point drawCenter = new Point();

drawCenter.x = parentWindow.x + (parentWindow.width - clientWindow.width) / 2;

drawCenter.y = parentWindow.y + (parentWindow.height - clientWindow.height) / 2;

return drawCenter;

java 魔鬼数字_什么是代码中的魔鬼数字,如何解决?相关推荐

  1. php全角数字转半角,php代码中全角数字如何转半角

    php代码中全角数字转半角的方法:使用replace转换,代码为[for($i=0;$i php代码中全角数字转半角的方法: 把全角数字转为半角数字function GetAlabNum($fnum) ...

  2. java注释里加_如何在代码中添加注释

    什么是代码注释,如何在代码中添加注释,相信每一位了解编程的人并不陌生.注释里往往有很多有趣的脑洞和「真心话」.今天我们一起去看看那些6到飞起,被玩坏了的幽默注释吧. 信息量太大的注释系列-- 1.你造 ...

  3. 什么是代码中的魔鬼数字,如何解决?

    2019独角兽企业重金招聘Python工程师标准>>> 魔鬼数字的定义:在代码中没有具体含义的数字.字符串. 魔鬼数字主要影响了代码可读性,读者看到的数字无法理解其含义,从而难以理解 ...

  4. 2020-11-13 什么是代码中的魔鬼数字,如何解决?【转载】

    解决方法:用常量定义魔鬼数字. 个人理解-->魔鬼数字:即难以被理解的且没有注释的常量(0.1这种)表示某个有意义的参数来使用. 在代码中使用魔鬼数字(没有具体含义的数字.字符串等)将会导致代码 ...

  5. 如何处理代码中的魔术数字(Magic Number)

    我真的很不喜欢"魔术数字(Magic Number)"这个说法.我看到很多人都搞错了.我见过不少次 code review,有人一看到代码中的任何数字,就会评论说,"这是 ...

  6. java面试题25 在程序代码中写的注释太多,会使编译后的程序尺寸变大。

    java面试题25 在程序代码中写的注释太多,会使编译后的程序尺寸变大. A:正确 B:错误 蒙蔽树上蒙蔽果,蒙蔽树下你和我 拿到这道题,我觉得说的贼有道理,注释太多,尺寸变大.无疑与就和驾考 一样, ...

  7. 全角数字变半角php,php代码中全角数字转半角的方法

    php代码中全角数字转半角的方法 发布时间:2020-10-13 14:33:52 来源:亿速云 阅读:66 作者:小新 小编给大家分享一下php代码中全角数字转半角的方法,相信大部分人都还不怎么了解 ...

  8. php全角半角转换,php代码中全角数字如何转半角

    php代码中全角数字转半角的方法:使用replace转换,代码为[for($i=0;$i php代码中全角数字转半角的方法: 把全角数字转为半角数字function GetAlabNum($fnum) ...

  9. [剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet]

    [问题描述][数组中的重复数字][简单] 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道 ...

最新文章

  1. 利用反射自己写的一个ModelHelper类
  2. ArduinoYun教程之ArduinoYun硬件介绍
  3. XML —— DTD介绍
  4. Java Process中waitFor()的问题
  5. 2016年安全身份识别主流趋势
  6. Android官方开发文档Training系列课程中文版:动画视图之转场框架介绍
  7. java借口案例实现_java实现接口的典型案例
  8. 活动合作 | 2018GAITC大会:AI领袖、应用指南、窥见风口,还能从中获得更多
  9. 【python笔记】选择结构:if语句详解
  10. 2021-10-14 矩阵求导相关
  11. 20180810 突然发现自己不小心跑到了数据分析呈现岗位
  12. ap计算机科学ab,AP微积分AB_AP科目介绍|AP考试网
  13. 猿创征文 | 国产数据库之人大金仓数据库详解安装和使用
  14. Isilon旧机器重新初始化
  15. ctf.show 萌xin区杂项
  16. 用Mathematica和SciPy阐明Jacobi椭圆函数的定义方法
  17. 关于GitHub Education(GitHub教育认证)认证
  18. 全面、详细、通俗易懂的C语言语法和标准库
  19. 再见c罗再见梅西_再见眼镜你好smartglasses
  20. mac上snip截屏问题

热门文章

  1. 基于Java+Swing实现愤怒的小鸟游戏
  2. arctime 等软件 界面没有按比例放大
  3. 【uniapp+node.js】用户式加班计算器项目
  4. 使用scanf从键盘读取一个整数,并输出到屏幕
  5. linux 命令行 发行版,最受欢迎的Linux发行版, Manjaro折腾全记录(超长超详细)
  6. 深入浅出JavaScript(中文版)__莫里森 初读笔记
  7. 质量流量计均速管流量计的工作原理
  8. 中国煤焦油市场销售前景与供需规模预测报告2022版
  9. R语言导入数据文件(数据导入、加载、读取)、使用haven包的read_sav函数导入SPSS中的sav格式文件
  10. .net里Properties 文件夹中的东东