转载自 阿里巴巴对Java编程【常量定义】的规约

常量定义


1. 【强制】不允许任何魔法值 ( 即未经定义的常量 ) 直接出现在代码中。

反例: String key  = " Id # taobao _" +  tradeId;

cache . put(key ,  value);

2. 【强制】 long 或者 Long 初始赋值时,使用大写的 L ,不能是小写的 l ,小写容易跟数字 1 混淆,造成误解。

说明: Long a = 2 l; 写的是数字的 21,还是 Long 型的 2?

3. 【推荐】不要使用一个常量类维护所有常量,按常量功能进行归类,分开维护。

说明:大而全的常量类,非得使用查找功能才能定位到修改的常量,不利于理解和维护。

正例:缓存相关常量放在类 CacheConsts 下 ; 系统配置相关常量放在类 ConfigConsts 下。

4. 【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。

1 ) 跨应用共享常量:放置在二方库中,通常是 client . jar 中的 constant 目录下。

2 ) 应用内共享常量:放置在一方库中,通常是 modules 中的 constant 目录下。

反例:易懂变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了表示“是”的变量:

类 A 中: public static final String YES = " yes " ;

类 B 中: public static final String YES = " y " ;

A . YES . equals(B . YES) ,预期是 true ,但实际返回为 false ,导致线上问题。

3 ) 子工程内部共享常量:即在当前子工程的 constant 目录下。

4 ) 包内共享常量:即在当前包下单独的 constant 目录下。

5 ) 类内共享常量:直接在类内部 private static final 定义。

5. 【推荐】如果变量值仅在一个范围内变化,且带有名称之外的延伸属性,定义为枚举类。下面正例中的数字就是延伸信息,表示星期几。

正例: public Enum { MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6),SUNDAY(7);}

阿里巴巴对Java编程【常量定义】的规约相关推荐

  1. 阿里巴巴对Java编程【OOP规约】的规约

    转载自 阿里巴巴对Java编程[OOP规约]的规约 OOP规约 1. [强制]避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可. 2. [强制]所有的 ...

  2. 阿里巴巴对Java编程【命名风格】的规约

    转载自 阿里巴巴对Java编程[命名风格]的规约 命名风格 1. [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name / __name / $Obje ...

  3. 阿里巴巴对Java编程【应用结构】的规约

    转载自 阿里巴巴对Java编程[应用结构]的规约 应用分层 1. [推荐]图中默认上层依赖于下层,箭头关系表示可直接依赖,如:开放接口层可以依赖于Web 层,也可以直接依赖于 Service 层,依此 ...

  4. 阿里巴巴对Java编程【Mysql】的规约

    转载自 阿里巴巴对Java编程[Mysql]的规约 建表规约 1. [强制]表达是与否概念的字段,必须使用 is _ xxx 的方式命名,数据类型是 unsigned tinyint( 1 表示是,0 ...

  5. 阿里巴巴对Java编程【控制语句】的规约

    转载自 阿里巴巴对Java编程[控制语句]的规约 控制语句 1. [强制]在一个 switch 块内,每个 case 要么通过 break / return 等来终止,要么注释说明程序将继续执行到哪一 ...

  6. 阿里巴巴对Java编程【并发处理】的规约

    转载自 阿里巴巴对Java编程[并发处理]的规约 并发处理 1. [强制]获取单例对象需要保证线程安全,其中的方法也要保证线程安全. 说明:资源驱动类.工具类.单例工厂类都需要注意. 2. [强制]创 ...

  7. 阿里巴巴对Java编程【集合处理】的规约

    转载自 阿里巴巴对Java编程[集合处理]的规约 集合处理 1. [强制]关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要重写 equals ,就必须重写 hashCode ...

  8. 阿里巴巴对Java编程【代码格式】的规约

    转载自 阿里巴巴对Java编程[代码格式]的规约 代码格式 1. [强制]大括号的使用约定.如果是大括号内为空,则简洁地写成{}即可,不需要换行 : 如果是非空代码块则: 1 ) 左大括号前不换行. ...

  9. 阿里巴巴对Java编程【异常处理】的规约

    转载自 阿里巴巴对Java编程[异常处理]的规约 异常处理 1. [强制] Java 类库中定义的一类 RuntimeException 可以通过预先检查进行规避,而不应该通过 catch 来处理,比 ...

最新文章

  1. 如何让Git适应敏捷开发流程?
  2. 快速生成apk 自动发布到网站 便于测试
  3. .NET 开发环境中使用VSN版本控制
  4. Git使用教程之本地仓库的基本操作
  5. 关于kali相关的参考文章
  6. 设计模式=相似模式区别
  7. 《系统集成项目管理工程师》必背100个知识点-40缩短活动工期的措施
  8. Python(5)-注释
  9. JPA基本注解的使用
  10. JS中如何判断null
  11. Xcode多Build Configurations环境下使用Reveal
  12. Sutherland-Hodgeman多边形裁剪
  13. Atitit ide之道 开发工具之道 attilax著 v2 s22.docx Atitit ide开发工具之道 attilax总结 1. 代码编辑器功能 3 1.1. 关键词颜色 3 1.2.
  14. c 计算机操作步进器,雷赛_数字步进电机与驱动器_DM2C-RS556型号
  15. excel怎么设置打印区域_淘宝卖家想要打印快递单怎么设置
  16. 输入输入是否为回文(如“abcba”和”123321”都是回文)。(c语言)
  17. 刘德华--5难忘长发飘飘
  18. 143_iOS干货50_认识几个概念:跨域问题和内网穿透
  19. [二分]Kayaking Trip
  20. native数据类型 react_react-native中使用realm数据库

热门文章

  1. [PAT乙级]1046 划拳
  2. [Java基础]并发修改异常
  3. Excel使用技巧,补充中。。。
  4. autohotkey php,Autohotkey+php实现免浏览器听录音
  5. undefined reference to Mat_VarCreate'
  6. HDU 6833 A Very Easy Math Problem
  7. 牛客挑战赛30 C 小G砍树 换根dp+组合
  8. Alice and Bob
  9. G - Caesar Cipher Gym - 102798G
  10. Three Bags CodeForces - 1467C