Java 编码规范

 

1 命名

1.1         变量命名

1.1.1变量的命名应该遵循JAVA BEAN的编码要求,同时,变量前连个字母严禁使用两个大写的形式。

1.1.2变量的命名应该使用业务名称与技术名称相结合的方式。

1.1.3变量的名称如果太长,需要去掉元音字母或者通用的缩写形式进行缩写。

1.1.4变量名应该遵循业务和架构需要,并一以贯之。

1.1.5变量名应该描述业务场景,不应该使用单字母,对于for循环等下标通用的情况可以除外。

1.1.6对于静态变量,使用全部使用大写形式,且单词之间使用“_”分割;对于实力属性,使用驼峰写法且首字符小写。

1.1.7 变量名应该读的出来

1.2 类命名

1.2.1类命名应该使用名词和名词组的形式,不应该是动词或者动词词组

1.2.2 类命名应该能够阐述类的职责

1.2.3             类名应该可以读的出来

1.3 方法的命名

1.3.1方法名称应该使用驼峰写法且首字母小写

1.3.2方法名称应该使用动词或者动词词组

1.3.3对于非属性获取器、设置器方法,方法名称不建议使用get、set、is 开头。

1.3.4 方法名称应该使用描述性名称

1.3.5 方法名称应该能够读的出来

2 类

2.1 类应该尽可能的短小

2.2 类应该遵循单一权责原则

2.3 类应该保持内聚性

2.4 类的组织形式:

  1、公共静态变量

 2、私有静态变量

  3、私有属性

  4、构造器

  5、共有静态方法

6、私有静态方法

7、实例方法

特殊说明:日志的私有静态变量应该放置于类的前端;如果调用方法在前,被调用方法在后

2.5 类的构造器推荐使用private修饰,通过静态方法实例化对象。

2.6 在类文件内部引用时,对象属性和对象方法一律使用this引用;对于累属性和类方法,一律使用类名引用。

3方法

3.1 方法应该尽可能的短小

3.2 方法应该只做一件事。

3.3 方法的逻辑处理应该位于同一个抽象层级

3.4 方法的尽可能使用无参形式

3.5 如果方法入参多余5个,建议使用对象进行封装传递

3.6 如果方法内部修改了传入的对象,应该使用返回值的形式返回此对象。

3.7 避免函数的传入参数为布尔值的形式

3.8 分隔指令与询问

3.9 使用异常代替返回错误码

3.10 方法不应该返回NULL,抛出异常或者返回特定对象

3.11 抽离try catch 代码块,不应该把错误处理与正常流程混为一谈

3.12 方法入参不应该出入null值

3.13方法调用深度应该小于等于5

3.14不能使用try catch作为流程控制

3.15方法尽可能不要使用void 作为返回类型

3.16单个方法的代码长度不建议太长,合理的范围应该是在50行代码以内

3.17理论上方法抛出的异常不能对于5个。如果可能,异常类型不能是exception,建议是自定义类型

4 注释

4.1 不要给糟糕的代码添加注释,应该直接重写代码

4.2 在类的前部应该添加法律信息

4.3 注释应该提供代码意图、解释代码意图,而不应该是描述代码逻辑。

4.4 解释业务而不是代码

5 格式

5.1 代码文件应该尽可能短小

5.2 相同概念的代码逻辑应该刚到一起,不同概念的代码应该使用空格隔开

5.3 代码行的长度应该尽可能的短小,一行不应该超过120个字符,超过的,需要进行断行处理

5.4对于级联调用,每个“.”后的语句应该独占一行,“.”应该对齐

5.5 禁止使用魔鬼数字

5.6 If 、for、while语句与后面的括弧之间最好使用空格间隔

5.7 对于 = 、+= 、/= 、&= 、/ 、:等操作,前后都要添加空格

5.8 { 和} 应该单独占用一行

6 其他

61. 单线程、局部变量使用StringBuilder,多线程、共享变量使用StringBuffer

6.2代码必须使用静态检查工具,findBugs和sourcemonitor进行检查

6.3 对于import 应该去掉无用的import 语句以及禁用在import语句使用“*”

6.4对于for循环,如果不是必须,推荐使用foreach循环

6.5 不能在循环中执行数据结构的添加删除操作,如果必须修改,推荐使用Iteration

6.6 switch 语句的case 后面必须跟break 或者return 语句

6.7 if 语句后,若非特殊情况,都必须跟else;switch语句,若非特殊情况,都要有default

6.8对于可能出现的空指针,都要尽可能判空,不能抛出空指针异常

6.9 输出异常中获取异常信息或者打印异常描述信息时,禁止使用e.getMessage()方法,而应该使用e.toString()方法。

          e.toString()获取的信息包括异常类型和异常详细消息,而e.getMessage()只是获取了异常的详细消息字符串,且e.getMessage()可能为null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值