程序员大量的工作其实是在阅读代码,如果说出现如下代码

if (2 == education) {...
}

这样的代码是很难让人理解的,不知道这个2代表啥,代表状态还是代表类型?

一个未经定义的字面值会造成很多不可预知的错误。又因为阿里的人员流动非常频繁,一个互联网龙头企业没有那么多时间去让新人钻研老人的代码。高效是它永恒的追求,所以才有这条规范。

所以建议定义成如下内容:

如果声明一个常量,来替换该魔法值,可能就会使代码的可读性和可维护性大大增加。

//大学学历
static final Integer UNIVERSITY_EDUCATION = 2;
if (UNIVERSITY_EDUCATION  == education) {...
}

阿里规范-为什么不允许魔法值(即未经定义的常量)出现在代码中?相关推荐

  1. 魔法值是什么?(为什么在阿里巴巴开发手册中提到不允许任何魔法值直接出现在代码中)

    在阿里巴巴开发手册中,提到魔法值,是在最开始的常量定义中提到的.即如下图: 那么,魔法值究竟是什么? 在al手册中说是未经预先定义的常量. 其实这样说就已经很明了了,但毕竟是一个不常见的概念,所以我在 ...

  2. sql join on 多表连接_阿里规范不建议多表Join,可这SQL要怎么写啊?

    前言 我们先来看一下阿里开发手册的描述: 手册上写着[强制],但是我相信很多同学项目里面的代码都不满足这个要求.但是关键问题是:不用join,这SQL究竟要怎么写啊! 高性能MySQL 高性能MySQ ...

  3. 关于阿里规范禁止使用Executors创建线程池的分析

    文章目录 1.阿里规范 2.Executors主要功能 2.1 newFixedThreadPool 2.2 newSingleThreadExecutor 2.3 newCachedThreadPo ...

  4. java定义boolean命名_阿里规范:为何boolean类型变量命名禁用is开头

    java中,对于非boolean类型的参数,getter和setpXMPater方法命名的规范是以get和set开头,如下: private String Success; public String ...

  5. System.BadImageFormatException”类型的未经处理的异常在 xx.exe 中发生

    System.BadImageFormatException"类型的未经处理的异常在 xx.exe 中发生 参考文章: (1)System.BadImageFormatException&q ...

  6. “System.Data.Entity.ModelConfiguration.ModelValidationException”类型的未经处理的异常在 EntityFramework.dll 中发生

    "System.Data.Entity.ModelConfiguration.ModelValidationException"类型的未经处理的异常在 EntityFramewor ...

  7. 关于WPF 中 “System.Windows.Markup.XamlParseException”类型的未经处理的异常在 PresentationFramework.dll 中发生 异常的处理。

    关于WPF 中 "System.Windows.Markup.XamlParseException"类型的未经处理的异常在 PresentationFramework.dll 中发 ...

  8. java 不要使用魔法值_Java代码中的魔法值

    所谓魔法值,是指在代码中直接出现的数值,只有在这个数值记述的那部分代码中才能明确了解其含义. 1. 前言 重构老代码中遇到了不少类似下面这种写法: public void attend(String ...

  9. 根据 HTML 规范,以下代码中,外层容器 .outer 的宽高分别是:

    根据 HTML 规范,以下代码中,外层容器 .outer 的宽高分别是:B <style> .outer { height: 50px; } .inner { width: 120px; ...

最新文章

  1. restful可以转发么_DRF使用超链接API实现真正RESTful
  2. 斯坦福连续发了四年的 AI 报告,今年讲了什么?
  3. [There will be more story......]
  4. 2021牛客暑期多校训练营7 xay loves monotonicity 线段树区间合并
  5. manjaro 搜狗输入法_Manjaro日常使用 之一:日常办公
  6. vb6.0 listview隐藏水平方向滚动条_为Vuetify的UI组件添加滚动条
  7. java通过+拼接字符串导致的无效SQL,三目运算符与+运算符结合使用时需要注意了
  8. mysql 定时器_MySQL定时器开启、调用实现代码
  9. 田汉卿:量化投资与风险控制(会议纪要)
  10. 航信3.0开票模拟系统
  11. 密室逃脱实体店怎么吸引客户?这几招教你实现线上引流转化!
  12. Openlayers地图背景透明度设置
  13. vue报错elementUI使用datepicker报错Avoid mutating a prop directly since the value will be overwritten whene
  14. index函数python查询所有_index函数python查询所有_Python List index()方法
  15. STM32 CAN 库函数
  16. python pdf提取数据_python从PDF中提取数据的示例
  17. 老旧笔记本安装(升级)黑群晖7.1
  18. 关于在Word2013中安装MathType的问题
  19. “聪明程序员”的自嘲
  20. [分类算法] :朴素贝叶斯 NaiveBayes

热门文章

  1. 免费的午餐——编程利用Google日历API发短信、Email
  2. 【转】福昕幻影(Foxit Phantom)
  3. 斯伯克CYBELEC触摸屏维修CybTouch12折弯机特点
  4. 机器学习、人工智能、深度神经网络和神经网络,四个概念之间有什么关系?
  5. 太原理工大学系统分析与设计实验报告实验室设备_塔斯马尼亚大学和皇家墨尔本理工大学的实验室医学硕士从学术和移民角度来看,有什么区别?选择哪一个更好?...
  6. 集成电路封装类型有哪些?图文汇总如下
  7. SVN创建分支 并且把分支代码合并到主干
  8. c#获取串口列表(可用于实现实时监控串口)
  9. java实时推送goeasy_java实时推送消息goeasy实现
  10. 你的QQ号又被盗了?关于网络安全你所不知道的事情