没有合适的资源?快使用搜索试试~ 我知道了~
java编程规范(含心得笔记及其解释)
需积分: 11 12 下载量 185 浏览量
2018-04-09
14:06:22
上传
评论
收藏 220KB DOCX 举报
温馨提示
试读
29页
java编程规范(含心得笔记及其解释)java编程规范(含心得笔记及其解释)java编程规范(含心得笔记及其解释)java编程规范(含心得笔记及其解释)
资源推荐
资源详情
资源评论
Java 开发规范
一、编程规约
一命名规约
【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结
束。 反例: _name/__name/$name/name_/name$/name__
原因:标识符的规范 组成元素 a.英文字符: a-zA-Z b.数字: 0-9 c.符号: _与$
标识符规则 a.数字不能开 b.不可以使用关键字 c.严格区分大小写,不限制长度起名时,尽量达到见名知意
【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名
方式也要避免采用。
正例: 等国际通用的名称以及公司特别规定的,可视为英文。
反例: 打折评分变量 !
【强制】类名使用 "##$$% 风格,必须遵从驼峰形式,但以下情形例外:(领域
模型的相关命名)&'&(&)& 等。
正例:*+"%&/,-.+'+#"/#'
反例:+"%,*0-.+'$"')
领域模型:由行业内的各个企业的业务模型再向上抽象出整个行业的业务模型
&(&+):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。
(&((1&+):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
'&('%&+):数据传输对象,泛指用于展示层与服务层之间的数据传输对象。
)&2数据访问对象是第一个面向对象的数据库接口,是一个数据访问接口)++%%&+。
"##$$%:第一个词的首字母,以及后面每个词的首字母都大写,叫做“大骆驼拼写法”
3【强制】方法名、参数名、成员变量、局部变量都统一使用 1$$% 风格,必须
遵从驼峰形式。
正例: +(456#*%%#4"%7/
1$$% 第一个词的首字母小写,后面每个词的首字母大写,叫做“小骆驼拼写法”
非常重要,可以在 *% 中配置实体类 # 属性与数据库中对应如:4% 与 4%8
9【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名
字长。
正例: *),8-'&$:8$&"'
反例: *),8$&"'
;【强制】抽象类命名使用 )%+ 或 % 开头;异常类命名使用 <=+# 结尾;测试类
命名以它要测试的类的名称开始,以 '% 结尾。
>【强制】中括号是数组类型的一部分,数组定义如下:-%!
反例:请勿使用 -%的方式来定义
单独执行效果上没有不同?但在语法意义不同
%%?声明一个 - 数组,名字叫 %!%%?声明一个叫 % 的数组,类型是 -
@【强制】&A& 类中的任何布尔类型的变量,都不要加 %,否则部分框架解析会引起序列
化错误。
反例:定义为基本数据类型 %-4++%%;的属性,它的方法也是 %-4++%%,B$ 框
架在反向解析的时候,“以为”对应的属性名称是 %4++%%,导致属性获取不到,进而抛出异
常。
C【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统
一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
正例: 应用工具类包名为 +.##4、类名为 *%%"%(此规则参考 %# 的
框架结构)
D【强制】杜绝完全不规范的缩写,避免望文不知义。
反例:)%+$%%E缩写”命名成 )%$%%;+/E缩写”命名成 +/,此类随意缩写严
重降低了代码的可阅读性。
【推荐】为了达到代码自解释的目标,任何自定义编程元素在命名时,使用尽量
完整的单词组合来表达其意。
正例:从远程仓库拉取代码的类命名为 PullCodeFromRemoteRepository。反例:
变量 int a; 的随意命名
【推荐】如果使用到了设计模式,建议在类名中体现出具体模式。 说明:将设计模式
体现在名字中,有利于阅读者快速理解架构设计思想。
正例:#4++%%&/F+!#4++%%0=!#4++%%B%4+&%.!
【推荐】接口类中的方法和属性不要加任何修饰符号(#4+也不要加),保持代码的
简洁性,并加上有效的 ./+ 注释。尽量不要在接口里定义变量,如果一定要定义变量,
肯定是与接口方法相关,并且是整个应用的基础常量。
正例:
接口方法签名:./!
接口基础常量表示:-$&*)GEH!
反例:
接口方法定义:#4+%+./!
说明:A:@ 中接口允许有默认实现,那么这个 /4 方法,是对所有实现类都有价值的默
认实现。
在 A:@ 之前,接口不能定义任何实现,这意味着之前所有的 A)() 版本中,接口制定的方法是抽象的,不包含方法体。
从 A:@ 开始,添加了一种新功能I默认方法。默认方法允许接口方法定义默认实现,而所有子类都将拥有该方法及实现。
/4.///&&&++J
-%4#K/4//K!
L
接口和实现类的命名有两套规则:
)【强制】对于 -.+ 和 )& 类,基于 -&) 的理念,暴露出来的服务一定是接口,内部
的实现类用 7# 的后缀与接口区别。
正例:$+-.+7# 实现 $+-.+ 接口。
)【推荐】 如果是形容能力的接口名称,取对应的形容词做接口名(通常是– 的形
式)。
正例:)%+'% 实现 '%。
3【参考】枚举类名建议带上 <4 后缀,枚举成员名称需要全大写,单词间用下划线隔
开。
说明:枚举其实就是特殊的常量类,且构造方法被默认强制是私有。
正例:枚举名字:-4%<4;成员名称:-"$$<--":&M8B<)-&。
9【参考】各层命名规约:
)-.+)& 层方法命名规约
) 获取单个对象的方法用 做前缀。
) 获取多个对象的方法用 % 做前缀。
) 获取统计值的方法用 +4 做前缀。
3) 插入的方法用 %.(推荐)或 % 做前缀。
9) 删除的方法用 .(推荐)或 / 做前缀。
;) 修改的方法用 4#/ 做前缀。
领域模型命名规约
) 数据对象:===&,=== 即为数据表名。
) 数据传输对象:==='&,=== 为业务领域相关的名称。
) 展示对象:===(&,=== 一般为网页名称。
3) &A& 是 &'&&(& 的统称,禁止命名成 ===&A&。
二常量定义
【强制】不允许出现任何魔法值(即未经定义的常量)直接出现在代码中。
反例:
-NH7/O8HP/7/; 本例中的”7/O8H
++#4N?.4!
【强制】 或者 0 初始赋值时,必须使用大写的 0,不能是小写的 ,小写容易跟数
字 混淆,造成误解。
说明:0!写的是数字的 ,还是 0 型的 Q
【推荐】不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护。如:
缓存相关的常量放在类:$+$%% 下;系统配置相关的常量放在类:$R$%% 下。
说明:大而全的常量类,非得 +P 才定位到修改的常量,不利于理解,也不利于维护。
3【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常
量、包内共享常量、类内共享常量。
) 跨应用共享常量:放置在二方库中,通常是 + 中的 +% 目录下。
) 应用内共享常量:放置在一方库的 /4% 中的 +% 目录下。 反例:易懂变量也要
统一定义成应用内共享常量,两位工程师在两个类中分别定义了表示“是”的变量: 类 ) 中:
#4+%+R-G<-E%H!类 中:#4+%+R-G<-EH!
)G<-S4%G<-,预期是 4,但实际返回为 %,导致产生线上问题。
) 子工程内部共享常量:即在当前子工程的 +% 目录下。
3) 包内共享常量:即在当前包下单独的 +% 目录下。
9) 类内共享常量:直接在类内部 #.%+R 定义。
9【推荐】如果变量值仅在一个范围内变化用 <4 类。如果还带有名称之外的延伸属性,
必须使用 <4 类,下面正例中的数字就是延伸信息,表示星期几。 正例:#4+
<4J*&)G?'"<-)G?M<<-)G ?'5"B-)G3?FB7)G9?-)'"B)G;?
-")G>!L
三格式规约
【强制】大括号的使用约定。如果是大括号内为空,则简洁地写成JL即可,不需要换行;
如果是非空代码块则:
) 左大括号前不换行。
) 左大括号后换行。
) 右大括号前换行。
3) 右大括号后还有 % 等代码则不换行;表示终止右大括号后必须换行。
【强制】 左括号和后一个字符之间不出现空格;同样,右括号和前一个字符之间也不出
现空格。详见第 9 条下方正例提示。
反例:if (空格 a == b 空格)
【强制】1%1+/ 等保留字与左右括号之间都必须加空格。
3【强制】任何运算符左右必须加一个空格。
说明:运算符包括赋值运算符、逻辑运算符TT、加减乘除符号、三目运行符等。
9【强制】代码块缩进 3 个空格,如果使用 缩进,请设置成 个 为 3 个空格。 正例:
(涉及 I9 点)
#4+%+./-%J
缩进 3 个空格
-%KK!
运算符的左右必须有一个空格
UD!
关键词 与括号之间必须有一个空格,括号内 与左括号,D 与右括号不需要空格
UDJ
-%4#%!
L
左大括号前加空格且不换行;左大括号后换
UJ
-%4#K1/K!
右大括号前换行,右大括号后有 %,不用换行
L%J
-%4#KNK!
右大括号作为结束必须换行
L
L
补充 6.【强制】注释的双斜线与注释内容之间有且仅有一个空格。正例:
//这是示例注释,请注意在双斜线之后有一个空格
String ygb = new String();
;【强制】单行字符数限制不超过 D 个,超出需要换行,换行时,遵循如下原则:
) 换行时相对上一行缩进 3 个空格。
) 运算符与下文一起换行。
) 方法调用的点符号与下文一起换行。
3) 在多个参数超长,逗号后进行换行。
9) 在括号前不要换行,见反例。
正例:
-4V%1-4V!超过 D 个字符的情况下,换行缩进 3 个空格,并且方
法前的点符号一起换行
%##/KWK##/K=KX
##/K4K!
反例:
-4V%1-4V!
超过 D 个字符的情况下,不要在括号前换行
%##/KWK##/K=KX##/
K4K!
参数很多的方法调用也超过 D 个字符,逗号后才是换行处
/%?%?% ?
?%,!
>【强制】方法参数在定义和传入时,多个参数逗号后边必须加空格。 正例:下例中实参
的”H?后边必须要有一个空格。 /EH?EH?E+H!
@【推荐】没有必要增加若干空格来使某一行的字符与上一行的相应字符对齐。
正例:
!
30!
U+9F!
-4V%1-4V!
说明:增加 % 这个变量,如果需要对齐,则给 、、+ 都要增加几个空格,在变量比较多
的情况下,是一种累赘的事情。
C【强制】7< 的 =R+/ 设置为 "'FI@!7< 中文件的换行符使用 "= 格式,不要
使用 1/1% 格式。
D【推荐】方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的
语义之间插入一个空行。相同业务逻辑和语义之间不需要插入空行。
说明:没有必要插入多行空格进行隔开。
四&& 规约
【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器
解析成本,直接用类名来访问即可。
【强制】所有的覆写方法,必须加Y&./ 注解。 反例:&+与 D+的问
剩余28页未读,继续阅读
资源评论
javafanwk
- 粉丝: 173
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 已过基于Hadoop+Spark招聘推荐可视化系统 大数据项目 毕业设计(源码下载)
- python爬虫开发题答案及题目-100(1).zip
- Python 小游戏 (贪吃蛇、五子棋、扫雷、俄罗斯方块)-3 (2).zip
- c语言实现的数独小游戏.zip
- 高德地图中国行政区划省、市、县经纬度
- March 2024 Expiration Of The OAM Out Of The Box Certificates
- 二叉搜索树迭代器(java代码).docx
- 解决keil MDK 5.38版本 在Debug配置使用STlink调试时软件闪退的问题
- py小项目:用户登录和注册系统开发欢迎图片
- TCCEE-x64-v6.2.3(9.51)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功