加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

代码规范(边学边增加)

发布时间:2020-12-15 07:53:55 所属栏目:Java 来源:网络整理
导读:以java的代码规范为例: 参考:解读阿里官方代码规范 - 上尤流苏 - 博客园? https://www.cnblogs.com/renyuanwei/p/9169452.html 命名规约: 1.代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 2.代码中的命名严禁使用拼音与英文混

以java的代码规范为例:

参考:解读阿里官方代码规范 - 上尤流苏 - 博客园? https://www.cnblogs.com/renyuanwei/p/9169452.html

命名规约:

1.代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束

2.代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式

3.类名以UpperCameCase的风格(前缀大写多字嵌合文字转换法),必须遵循驼峰的形式(某些情况诸如领域模型相关的命名除外,如:DO/BO/DTO/VO);

4.方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase(驼峰式字体),必须遵从驼峰形式

5.常量命名全部大写(很容易忘),单词间用下划线隔开

6.包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词

?命名原则:

1.力求语义表达完整清楚,不要嫌名字长

2.杜绝完全不规范的缩写,避免望文不知意

(最好不要用缩写)

类的命名:

1.抽象类命名使用Abstract或Base开头;异常类命名使用Expetion结尾;测试类命名以它要测试的类名称开始,以Test结尾

2.对于Service和DAO类,基于SOA的理念,暴露出来的服务一定是接口,内部的实现类用Impl的后缀与接口区别

3.如果形容能力的接口名称,取对应的形容词做接口名

4.枚举类名建议带上Enum后缀,枚举成名名称需要全大写,单词间用下划线隔开

5.如果使用到了设计模式,建议在类名中体现出具体模式

6.包名统一使用单数形式;类名如果有复数含义,类名可以使用复数形式

常量规约:

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

2.不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护

3.常量的复用层次有五层:跨应用共享常量,应用内共享常量,子工程内共享常量,包内共享常量,类内共享常量

4.如果变量值仅在一个范围内变化用Enum类,如果还带有名称之外的延伸属性,必须使用Enum类

5.尽量不要在接口里定义变量,如果一定要定义变量,肯定与接口方法相关,并且是整个应用的基础常量

(核心:1.别使用常量;2.让常量可控)

语法:

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

2.接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁性,并加上有效的Javadoc注释

3.所有的覆写方法,必须加@Override注释

4.可变参数必须放置在参数列表的最后

5.final课提高程序响应效率

格式约束:

1.缩进采用4个空格,禁止使用tab字符

2.单行字符数限不超过120个

3.IDE的text file encoding设置为UTF-8

IDE中文件的换行符使用Unix格式,不要使用windows格式

4.方法体内的执行语句组、变量的定义语句组,不同业务逻辑之间或者不同语义之间插入一个空行

注释规约:

1.所有枚举类型字段必须要有注释,说明每个数据项的用途

2.如果英文注释解释的不清楚,用中文注释吧问题说清楚。专有名词与关键字保持英文原文即可

3.注释掉的代码尽量要配合说明,而不是简单的注释掉(除非很短时间内可恢复不然建议直接删除)

4.好的命名,代码结构是自解释的,注释力求精简准确,表达到位

代码风格:

1.在一个switch快中,每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case为止

2.在if/else/for/while/do语句中必须使用大括号,即使只有一行代码,避免使用下面的形式:

if (condition)statements;

3.推荐尽量少用else,if-else的方式可以改写成

if(condition){

...

return obj;

}

//接着写else的业务逻辑代码

(因为else不仅会带来大段的代码缩进的困扰,同时也会降低代码的可读性)

4.如果非得使用if ()...else if() ...else...方式表达逻辑,【强制】请勿超过3层,超过请使用状态设计模式

5.除常用方法(如getXXX/isXX)等外,不要在条件判断中执行其他复杂语句,将复杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性

boolean existed = (file.open(fileName,"w")!=null)&&(...)||(...);

if (existed) {

...

}

方法命名:

Service/DAO 层方法命名规约:

1.获取单个对象的方法用get做前缀

2.获取多个对象的方法用list做前缀

3.获取统计值的方法用count做前缀

4.插入的方法用save(推荐)或insert做前缀

5.删除的方法用remove(推荐)或delete做前缀

6.修改的方法用update做前缀

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读