JAVA 编码规范

JAVA 编码规范

目录

JAVA 编码规范 1

目录 2

一、 工作空间编码要求 3

  1. 工作空间配置 4

  2. 文件编码方式配置 4

二、 命名规范 4

  1. 特殊符号命名 4

  2. 禁止拼音/中文命名 4

  3. 包(PACKAGE)命名规范 5

  4. 类命名规范 5

    1. 普通类命名规范 6

    2. 接口类命名规范 6

    3. 实现类命名规范 6

    4. 抽象类命名规范 6

    5. 异常类命名规则 6

    6. 测试类命名规则 6

  5. 方法命名规范 6

  6. 变量命名规范 6

  7. 常量命名规范 6

  8. 数组类型定义规范 7

  9. XML 文件命名规范 7

  10. 杜绝完全不规范的缩写 7

三、 命名规则 7

  1. 接口 API 命名规则 8

  2. PO 命名规则 8

  3. VO 命名规则 8

  4. 控制类 CONTROLLER 命名规则 8

  5. 服务层 SERVICE 命名规则 8

  6. 持久层命名规则 8

  7. 组件命名规则 9

四、 编码格式规范 9

  1. 缩进排版 9

  2. 单行代码长度 9

  3. 代码换行规范 9

五、 IMPORT 导包规范 10

一、 工作空间编码要求

项目中的所有文件编码方式无特殊情况均需要采用 UTF-8 编码形式,包括 JAVA、XML、JSP、properties、HTML、JavaScript、CSS 等文件。下面以idea 作为范例进行配置,eclipse等其它 IDE 请自行查找相关资料并按要求配置好。

工作空间配置

设置步骤:File->Settings->Editor->File Encodings

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N9L1lrPf-1646102755283)(media/image1.png)]{width=“5.925694444444445in” height=“4.025in”}

文件编码方式配置

设置步骤:File->Other Settings->Default Settings ->Editor->File Encodings,设置方式如下图所示,无other Settings则不用设置:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g515bU3O-1646102755284)(media/image2.png)]{width=“6.009027777777778in” height=“5.951388888888889in”}

  1. 命名规范

2.1 特殊符号命名

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

反例:_name、__name、$Object、name_、name$、Object$

2.2 禁止拼音/中文命名

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

英文拼写和语法可以让阅读者易于理解,避免歧义。当然,像 beijing、shanghai、youku、

taobao 等国际通用的名称,可视同英文。

2.3 包(package)命名规范

com.lpv.<use_type>

即:公司域名 + 使用类型

com.lpv:为公司固定域名,无特殊规定不可进行更改。

<use_type>:使用类型,例如:controller、mapper、service、util 等

常用的<use_type>如下表所示:

序号 类型名 含义

1 controller --控制层 package

2 service --服务层接口类 package

3 service.impl --服务层接口实现类 package

4 mapper --MyBatis持久层package

5 bean --所有的实体 package

6 bean.po --Persistant Object 持久化对象 package

7 bean.vo --View Object 视图对象 package(用于展示层,作用是把某个指定页面或组件的所有数据封装起来)

9 constant --常量类存放 package

10 component --所有封装组件存放 package

11 component.xxx --单个封装组件存放 package,其中 xxx 指组件的具体英文名称。

12 util --工具类 package

13 base --基础类 package

14 filter --自定义过滤器 package

15 exception --自定义异常类 package

16 interceptor --自定义拦截器 package

2.4 类命名规范

2.4.1 普通类命名规范

类名是个一名词,采用大小写混合的大骆驼峰方式,每个单词的首字母大写。尽量使你

的类名简洁而富有᧿述力。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,

HTML)。

例如:class MD5、class UserContorller、class DateUtil。

2.4.2 接口类命名规范

命名规则遵照普通类命名规则。

例如:interface UserService、interface UserMapper。

2.4.3 实现类命名规范

实现类名称与接口名称相同。但为了区分接口与实现类,必须在实现类后增加字符串JAVA 编码规范

“Impl”。

例如:class UserServiceImpl。

2.4.4 抽象类命名规范

抽象类命名使用 Abstract 或 Base 开头。

2.4.5 异常类命名规则

异常类命名使用 Exception 结尾

2.4.6 测试类命名规则

测试类命名以它要测试的类的名称开始,以 Test 结尾。

2.5 方法命名规范

方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首

字母大写。

例如:run()、runFast()、getBackground()、login()、checkExist()、updatePassword()。

2.6 变量命名规范

采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不

应以下划线或美元符号开头,尽管这在语法上是允许的。

变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避

免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为 i,j,k,m 和 n

它们一般用于整型;c,d,e,它们一般用于字符型。

例如:char c、int i、float myWidth、String userName。

2.7 常量命名规范

常量应该全部大写,单词间用下划线隔开。

例如:

public static final int MIN_WIDTH = 4;

public static final String COMPANY_NAME = “Lpv”;

2.8 数组类型定义规范

中括号是数组类型的一部分,规范的数组定义如下:String[] args。

反例:使用 String args[]的方式来定义。

2.9 XML 文件命名规范

XML 文件命名与应用模块/功能命名规则一致,但是系统功能名全部小写,遵循第一个

单词的首字母小写,以后每个单词的首字母大写的原则。如果交易名称无法准确表达页面含

义,则自行调整。

2.10杜绝完全不规范的缩写

命名尽量使用完整的英文单词命名,不建议随意的缩写。采用缩写的文件、方法命名反

而会大大降低代码的可阅读性。

反例:

AbstractClass"缩写"命名成 AbsClass

condition"缩写"命名成 condi

此类随意缩写严重降低了代码的可阅读性。

  1. 命名规则

3.1 接口 API 命名规则

API 命名规范统一遵照标准的 RESTful 风格(全小写字母),格式如下:

/api+/+系统名称+/+一级(模块)+/+二级(功能或二级模块)+/+三级(功能或三级模块)+…

其中"/api+/+系统名称"无需在代码中体现,会在系统部署配置时统一加上此部分的前缀。

常用的功能命名如下表:

范例(toms 为系统名称):

操作员登录:/api/toms/operator/login

根据操作员 ID 获取详情(通过 PathVariable 送参数):/api/toms/operator/detail/{operatorId}

校验操作员是否已存在:/api/toms/operator/exist/check

创建操作员:/api/toms/operator/create

操作员列表(含分页和多个关键字查询):/api/toms/operator/list

删除操作员:/api/toms/operator/delete

3.2 PO 命名规则

所有 Persistant Object 的命名需要与数据库表格名称保持对应。如果数据库表格名称包

含下划线,则使用大骆驼峰的风格来对应 PO 的命名。如果数据库表格增加了通用的前缀/后

缀,则 PO 的命名不应该包含表格通用的前缀/后缀。

例如:

表格名称 user → PO 名称 User

表格名称 llbt_user → PO 名称 User(不包含红色标记的通用前缀:llbt)

表格名称 user_tb → PO 名称 User(不包含红色标记的通用后缀:tb)

表格名称 printer_project → PO 名称 PrinterProject

3.3 VO 命名规则

View Object 视图对象一般包含接口请求的 Request VO 对象和接口响应 Response VO 对

象,命名规则需要与接口名称保持关联性(不含 API 部分)。

请求Request VO对象命名规则为:接口名转化为大骆驼峰格式+ReqVo(或者RequestVo)。

响应 Response VO 对象命名规则为:接口名转化为大骆驼峰格式+ResVo(或者

ResponseVo)。

具体使用缩写的 Req/Res 还是全单词 Request/Response,一个项目中应保持一致性,禁

止出现两种格式的命名方式。

例如:

用户登录接口名:/api/user/login

请求 Request VO 对象为:UserLoginReqVo/UserLoginRequestVo

响应 Response VO 对象为:UserLoginResVo/UserLoginResponseVo

3.4 控制类 Controller 命名规则

模块名+ Controller

例如:UserController、AccountController、CustomerController

3.5 服务层 Service 命名规则

接口类:模块名+Service

实现类:模块名+ServiceImpl

例如:

接口类:UserService、PrinterBrandService

实现类:UserServiceImpl、PrinterBrandServiceImpl

3.6 持久层命名规则

接口类:模块名+MapperImpl/DaoImpl

实现类:模块名+MapperImpl/DaoImpl

其中,Mapper 一般时是持久层使用 MyBatis 框架时的命名方式。

3.7 组件命名规则

组件名称+Component

例如:WebClientComponent、RedisComponent

  1. 编码格式规范

4.1 缩进排版

缩进统一使用采用 Tab 缩进即可,不使用空格来缩进,eclipse 等部分 IDE 默认的缩进方

式采用的就是 Tab 缩进,如果并非 Tab 缩进,则务必调整一下此格式。

4.2 单行代码长度

为了便于阅读,一行长度最好不要超过 120 个字符,超过部分需要换行,若方法过长,

应提炼出私有方法。

4.3 代码换行规范

当一个语句在一行显示不下时,按照如下规则来进行换行:

Ø 在一个逗号之后断开。

Ø 在一个操作符之后断开。

Ø 当有高低优先级区别的时候,选择保留高优先级的在一起。

Ø 新的一行与上一行同一级别的表达式对其。

Ø 如果以上规则导致你的代码混乱,就直接缩进 2 格或 1 个制表符。

以下是代码换行的一些例子:

public void doSomething(Object someParam1, Object someParam2,

Object someParam3, Object someParam4) {

if (“ad12fweadfadf” == “adfaaaf” || “adfag” == “adghg” ||

“ADQER” == “WERTW” || “adff” == “agag” || “adfaf” == “yujgkk”) {

}

int x = 123 + 234 + 2345 + 4562 + 1324 + 5341 + 1324 + 13413 - 134 - 14 -

134 - 512 - 13;

long l1 = 2134132454 + (321234132445l + 213414345 - 24413455) + 44134 *

24654736552l;

long l2 = 2134132454 + (321234132445l + 213414345 - 24413455) +

44134 * 24654736552l;

}

  1. import 导包规范

按需进行导包,禁止使用通配符星号(*)做一次性导包,这种情况很容易会引发导包

错误的问题。

正例:

import com.lpv.framework.base.BaseController;

import com.lpv.framework.util.DateUtil

反例:

import java.util.*;

import org.springframework.web.bind.annotation.*;
34132445l + 213414345 - 24413455) + 44134 *

24654736552l;

long l2 = 2134132454 + (321234132445l + 213414345 - 24413455) +

44134 * 24654736552l;

}

  1. import 导包规范

按需进行导包,禁止使用通配符星号(*)做一次性导包,这种情况很容易会引发导包

错误的问题。

正例:

import com.lpv.framework.base.BaseController;

import com.lpv.framework.util.DateUtil

反例:

import java.util.*;

import org.springframework.web.bind.annotation.*;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值