阿里巴巴Java开发文档2020版学习-常量定义
2.常量定义
(1)【强制
】不允许任何魔法值 ( 即未经预先定义的常量 ) 直接出现在代码中。
反例:
//本例中同学 A 定义了缓存的 key,然后缓存提取的同学 B 使用了 Id#taobao 来提取,少了下划线,导致故障。
String key = "Id#taobao_" + tradeId;
cache.put(key, value);
(2) 【强制
】在 long 或者 Long 赋值时,数值后使用大写的 L,不能是小写的 l,小写容易跟数字混淆,造成误解。
说明: Long a = 2l; 写的是数字的 21,还是 Long 型的 2。
(3)【推荐】不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。
说明: 大而全的常量类,杂乱无章,使用查找功能才能定位到修改的常量,不利于理解,也不利于维护。
正例: 缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 ConfigConsts 下。
(4) 【推荐】常量的复用层次有五层:跨应用共享常量
、应用内共享常量
、子工程内共享常量
、包内共享常量
、类内共享常量
。
- 跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。
- 应用内共享常量:放置在一方库中,通常是子模块中的 constant 目录下。
反例: 易懂变量也要统一定义成应用内共享常量,两位工程师在两个类中分别定义了“YES”的变量:类 A 中:public static final String YES = "yes"
;类 B 中:public static final String YES = "y";A.YES.equals(B.YES)
,预期是 true,但实际返回为 false,导致线上问题。 - 子工程内部共享常量:即在当前子工程的 constant 目录下。
- 包内共享常量:即在当前包下单独的 constant 目录下。
- 类内共享常量:直接在类内部 private static final 定义。
(5)【推荐】如果变量值仅在一个固定范围内变化用 enum 类型来定义。
说明: 如果存在名称之外的延伸属性应使用 enum 类型,下面正例中的数字就是延伸信息,表示一年中的
第几个季节。
正例:
public enum SeasonEnum {SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4);private int seq;SeasonEnum(int seq) {this.seq = seq;}public int getSeq() {return seq;}
}
阿里巴巴Java开发文档2020版学习-常量定义相关推荐
- python飞机大战概要设计_飞机大战游戏开发文档(Android版)
飞机大战游戏 开发文档 (Android版) 课程名称:飞机大战游戏 课程类型:Android游戏编程精彩内容,尽在百度攻略:https://gl.baidu.com 姓名:苏均灿 学号:131342 ...
- 【校招VIP】线上实习 推推 书籍详情模块 Java开发文档周最佳
[推推]主要是为校招设计的小说一更新就通知的项目,每个模块都具有亮点和难点,项目表现为手机网站应用,可嵌入小程序或APP中. 恭喜来自 四川师范大学 的 o0hana 同学获得本周线上实习[推推]第一 ...
- 【校招VIP】“推电影”第一期电影详情模块Java开发文档作业评审1
前言:关于[推电影]免费在线实习项目 一.本项目是基于年轻人的喜好,更个性的电影推荐网站.筛选各分类的知名电影,并给出推荐理由和下载链接.另外,通过标签功能匹配个人喜好,实现个性化推送. 二.项目表现 ...
- anychat java开发文档_AnyChat视频云平台开发指南
本帖最后由 佰锐科技-刘冬明 于 2017-9-13 11:59 编辑 简介: AnyChat视频云平台提供线上的音视频通信.多应用接入.即时通讯.全景录像.智能排队,直播.点播等服务.为您定制个性化 ...
- java 自动生成文档_[原]java开发文档的自动生成方式
对于Java注释我们主要了解三种: // 注释一行 /* ...... */ 注释若干行 第三种,文档注释: /** ...... */ 注释若干行,并写入 javadoc 文档 通常这种注释的多行写 ...
- 阿里巴巴java开发手册(2020版)
2020版 链接: https://pan.baidu.com/s/1Zls_FUBKfGksU1GR3BGGGA 密码:titz 2019版 链接:https://pan.baidu.com/s/1 ...
- java开发文档怎么写_程序员该不该写技术文档,怎么写文档,易懂又能提升自己...
最近公司项目的调用量突然涨了一大波,很多系统都纷纷扛不住了,于是需要对系统进行优化,系统优化的第一步,便是梳理业务! 在这个过程中,经常出现了这样一些情况,发现数据库的某些字段,没有注释,也没有一定的 ...
- netty java开发文档_Netty简明教学文档
写个简单点,比较小白的文档,言语比较接地气 Netty是什么? NIO的高层封装,NIO很难写,所以有了Netty,方便异步的操作 service的主要代码片段 public void run() t ...
- netty java开发文档_《Netty官方文档》设置开发环境
原文链接 译者:dan QQ:903585177 请注意:这个指南并不是用户指南,它是开发 Netty 本身的指南,而不是使用Netty 开发其他程序的指南. 使用64位操作系统 必须使用64位操 ...
- java 开发文档协作_Java 网络编程---分布式文件协同编辑器设计与实现
目录: 第一部分:Java网络编程知识 (一)简单的Http请求 一般浏览网页时,使用的时Ip地址,而IP(Internet Protocol,互联网协议)目前主要是IPv4和IPv6. IP地址是一 ...
最新文章
- 周志华:“数据、算法、算力”,人工智能三要素在未来还要加上“知识”
- php引用地址,关于php的引用
- 病毒周报(100719至100725)
- C++ Primer 5th笔记(chap 19 特殊工具与技术)链接指示: extern “C“
- DataList用法
- [VSCode插件推荐] REST Client: 也许是比Postman更好的选择
- Mysql 中Sql控制流语句_DCL语句/控制流语句
- mysql容器重启数据是否丢失_docker容器重启 数据会丢吗
- 上传单.多个文件的函数封装
- 安装zabbix服务器端
- 数据库原理mysql_数据库原理:MySql的安装
- 背景图片,颜色变化脚本
- [转载] python模块的分类有哪些_整理了一份清单,常见Python问题的快速解答包
- java中vector和list_java中vector和list的区别
- 【C/C++】sizeof(结构体)的计算
- python爬百度贴吧_python爬虫-爬取百度贴吧帖子加图片
- Python中pass的使用
- OpenStreetMap初探(一)——了解OpenStreetMap
- 微软同步工具 for linux,使用SyncToy 同步Windows数据到linux
- ios 图片加载内存尺寸_iOS内存分析上-图片加载内存分析
热门文章
- ECS 云助手,实现云上运维自动化
- linux高级编程进程,linux高级编程(五、进程)
- 【PID优化】基于matlab粒子群和遗传算法PID控制器优化设计【含Matlab源码 1311期】
- 【路径规划】基于matlab改进的人工势场算法机器人避障路径规划【含Matlab源码 1151期】
- 【杆号识别】基于matlab铁路接触网系统杆号识别【含Matlab源码 1056期】
- 【电路仿真】基于matlab Simulink红绿灯车辆数量识别【含Matlab源码 378期】
- pytorch BCELoss()、KLDivLoss()的参数 及 “对于size_average、reduce、reduction参数的研究”
- html获取视频时长,js获取本地视频时间长度
- arm中用c语言编写的程序 出现数组的最后一行调用不到,C语言函数指针数组在ARM中断中的应用...
- iis7网站可用php吗,在IIS7下面添加对PHP网页的支持