java-开发规约
public class TenTen {
/**
* 代码中的命名不能用下划线或美元符号开始和结束:例如 _name name_ $name name$
*/
/**
* 类名必须使用UpperCamelCase风格(大驼峰),后面的例外:DO BO DTO VO AO PO UID
* (第一个词的首字母,以及后面每个词的首字母都大写)
* 正确类名例子:ForceCode UserDO HtmlDTO XmlService
*/
/**
* 方法名,参数名,成员变量名,局部变量名统一使用LowerCamelCase风格(小驼峰),
* (第一个词的首字母小写,后面每个词的首字母大写)
* 正确例子:localValue getName
*/
/**
* 常量命名全部大写,且单词之间用下划线隔开,力求表达语义完整,不嫌名字长
* 正确例子CITY_NAME
*/
/**
*抽象类名使用 Abstract 或者 Base 开头
* 异常类名使用 Exception 结尾
* 测试类名使用 以要测试的类的名称开始,并和 Test 结尾
*/
/**
* 类型与中括号紧挨相连--》表示数组;
* int[] arrayDemo
*/
/**
* 包名统一使用小写,包名统一使用单数形式,如果类名需要负数形式可以使用复数
* com.quan.entity 类名:UserUtils
*/
/**
* 避免在子父类的成员变量之间或者不同代码块的局部变量之间采用完全形同的命名。
*/
/**
* 杜绝完全不规范的缩写,避免望文不知义的情况:
* 错误例子 Condition 写成condi
*/
/**
* 常量和变量的命名,推荐将他们的类型放在尾部,提高辨识度
* 例子:startTime nameList mysqlConnection
*/
/**
* 如果模块,接口,类,方法使用了设计模式,命名时需要体现出具体的模式
* 例子:LoginProxy BeanFactory
*/
/**
* 接口类中的方法和属性》不要加任何的修饰符号《保存整洁,不要在接口里面地定义变量
*/
/**
* 接口和实现类的规约:
* 1-对于Service DAO 类,内部实现类用Impl的后缀与接口区别
* 例子:EventServiceImpl 实现 EventService接口
* 2-如果是形容能力的接口名称,去对应的形容其为接口名
* 例子:AbstractTranslator 实现 Translatable接口
*/
/**
* 枚举类名带上Enum后缀,枚举成员名称需要全部大写,单词间用下划线隔开
* 实际枚举就是特殊的常量类,他的构造函数被默认是强制私有的
* 例子:StatusEnum 成员名称:SUCCESS UNKNOW_ERROR
*/
/**
* 分层命名:
* 1-Service/DAO层
* 获取单个对象方法-用get前缀
* 获取多个对象方法-用list前缀
* 获取统计值-用count做前缀
* 插入的方法-用save/insert做前缀
* 删除的方法-用remove/delete做前缀
* 修改的方法-用update做前缀
* 2-领域模型:
* 数据对象-xxxDO,xxx为数据表名
* 数据传输对象-xxxDTO xxx为业务领域相关的名称
* 展示对象-xxxVO xxx一般为网页名称
* POJO是DO/DTO/BO/VO的统称,禁止命名为xxxPOJO
*/
}
/**
* 常量定义
*/
public class Constant {
/**
* 不允许任何魔法值(未经定义的常量)-直接使用
* 错误例子:String key = "quan" + userId
*/ /**
* 使用long或者Long赋值的时候,数值需要使用大写L,不能写小写字符l,避免和1混淆
* 例子:Long id = 2L
*/ /**
* 禁止使用一个常量类维护所有常量,常量按功能归类,分开维护
* CacheConsts SystemConfigConsts
*/ /**
* 如果变量值仅在一个固定范围内变化用Enuml类型来定义
* 包括季节,星期等
*/
}
/**
* 代码格式
*/
public class CodeFormat {
/**
* 如果大括号为空,可以写为{} 中间无需空格
* 如果不为空:
* 1-左大括号前不换行
* 2-左大括号后换行
* 3-右大括号前换行
* 4-右大括号后还有其他代码则不换行,表示终止的右大括号后必须换行
*/ /**
* 左小括号和右边相邻字符之间不出现空格,右边小括号和左边相邻字符也不需要空格
* 但是,左边大括号前需要空格
*/ /**
* if/for/while/switch/do等保留关键字与括号之间必须加一个空格
*/
public static void main(String[] args) {
// 缩进四个空格
String name = "quan";
// 运算符的左右必须有一个空格
int flag = 0;
// 关键词if和括号之间必须有空格,括号内的flag与左小括号,0和右小括号都不需要空格
if (flag == 0) {
System.out.println("done");
}
// 左大括号前加空格且不换行,左大括号后换行
if (flag == 1) {
System.out.println("");
// 右大括号前换行,右大括号后有else不需要换行
} else { }
}
}
java-开发规约的更多相关文章
- 阿里巴巴 Java 开发规约插件初体验
阿里巴巴 Java 开发手册 又一次来谈<阿里巴巴 Java 开发手册>,经过这大半年的版本迭代,这本阿里工程师们总结出来避免写出那么多 Bug 的规范,对于 Java 开发者简直就是必备 ...
- 《阿里巴巴Java开发规约》插件使用介绍
一.简介 阿里巴巴于10月14日在杭州云栖大会上,正式发布了<阿里巴巴Java开发规约>扫描插件!该插件基于<阿里巴巴Java开发规约>手册内容,在扫描代码后,将不符合规约的代 ...
- 阿里巴巴Java开发规约及插件安装
[上海尚学堂编辑整理]10.14日,阿里巴巴在杭州云栖大会上,正式发布了由阿里巴巴 P3C 项目组,经过 近一年的持续研发,正式发布众所期待的 <阿里巴巴 Java 开发规约>的扫描插件. ...
- 阿里巴巴Java开发规约插件安装使用指南
编码规范插件安装使用指南 阿里技术公众号于今年的2月9日首次公布<阿里巴巴Java开发规约>,瞬间引起全民代码规范的热潮,后又发布了PDF的终极版,大家踊跃留言,期待配套的静态扫描工具开放 ...
- AS 阿里巴巴Java开发规约 CheckStyle-IDEA
Alibaba Java Coding Guidelines 简介 github地址:https://github.com/alibaba/p3c 官方文档 阿里巴巴Java开发手册(纪念版) ...
- 阿里巴巴Java开发规约插件-体验
插件有哪些功能? 阿里技术公众号于今年的2月9日首次公布<阿里巴巴Java开发规约>,瞬间引起全民代码规范的热潮,上月底又发布了PDF的终极版,大家踊跃留言,期待配套的静态扫描工具开放出来 ...
- 阿里巴巴Java开发规约扫描插件-Alibaba Java Coding Guidelines 在idea上安装使用教程
经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的<阿里巴巴Java开发规约>扫描插件!该插件由阿里巴巴P3C项目组研发.P3C是世界知名的反潜机,专门对付 ...
- 【Z】扩展阿里巴巴Java开发规约插件
https://blog.csdn.net/u014513883/article/details/79186893 1.前言 工作中难免会遇到维护别人代码的情况,那么首先就得看懂别人写的代码.如果对方 ...
- 阿里Java开发规约插件使用
刚刚的云栖大会上,阿里巴巴公布了这款酝酿已久的Java开发规约插件,对于国内开发者来说是一次轻松提高自己代码规范的机会. 安装方法 IDEA安装方法: settings >> plugin ...
- Java 开发规约插件
阿里巴巴 Java 开发规约插件初体验 阿里巴巴 Java 开发手册 又一次来谈<阿里巴巴 Java 开发手册>,经过这大半年的版本迭代,这本阿里工程师们总结出来避免写出那么多 Bug 的 ...
随机推荐
- Windows server 2016 2019远程端口修改操作
windows server 2016 2019修改远程端口操作 一.修改3389远程端口 1,按"win+r"快捷键,在对话框中输入regedit 2, 找到路径 \HKEY ...
- 【windwos 操作系统】关键的Windows内核数据结构一览(下)
I/O管理器 nt!_IRP IRP表示一个I/O请求包结构体,它用来封装执行一个特定I/O操作所需要的所有参数以及I/O操作的状态.IRP的表现也类似于一个线程独立调用栈因此它可以从一个线程传递到另 ...
- Java开发名词解释
API 问题:API 解释:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组 ...
- Qt:QMap
0.说明 QMap < Key , T > 一个QMap就是一个K-V对,也可以说是字典对象. 1)构造 构造一个Key是QString,Value是int的QMap: QMap<Q ...
- linux多进/线程编程(1)—— 基础概念(PCB、MMU、进程状态)
学习大概就是不断迭代.重构的过程,不复习的学习是不负责任的,亦是无用的. 本系列博客主要作为个人记录,主要是贴图和代码,不做详细解释,以后有时间可能会重写:从下一篇开始上代码,代码可以运行是对自己的最 ...
- python浅拷贝与深拷贝浅析
首先我们要明确,python中大多数都是浅拷贝,我们先说原因: 1.时间花费更少 2.内存更小 3.效率更高,浅拷贝只拷贝顶层数据,一般情况下比深拷贝效率高. 容器(如列表)切片是浅拷贝
- jq获取不包含某些属性的元素
最近写项目,有个功能实现checkbox全选,但是被禁用的checkbox不能选中 点击全选后发现禁用checkbox的也被选中了,不符合需求. 但是想了半天,属性选择器都是判断某个属性值的,没有判断 ...
- MySQL — DCL语言
全称 Data Control Language.数据控制语言,用来创建数据库用户.控制数据库的访问权限. 1.用户管理 1.1.查询用户 select * from user; 1.2.创建用户 - ...
- appium1-macOS10.12下如何丝滑的使用appium?
1.下载或者更新Homebrew:homebrew官网 macOS 不可或缺的套件管理器 $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githu ...
- 微服务入门二:SpringCloud(版本Hoxton SR6)
一.什么是SpringCloud 1.官方定义 1)官方定义:springcloud为开发人员提供了在分布式系统中快速构建一些通用模式的工具(例如配置管理.服务发现.断路器.智能路由.微代理.控制总线 ...