JAVA开发手册

本文详细介绍了编程中的命名规范,包括类名、方法名、变量名的驼峰命名,以及常量的全大写命名。强调了避免使用中英文混合和特殊字符,以及接口方法不应有修饰符。此外,还提到了各层(Service、Dao、Controller)的命名约定,领域模型命名,常量定义,代码格式与注释的规范,以及OOP原则。对于SQL操作,强调了避免使用魔法值,防止SQL注入等安全问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 编程规范
  • 命名规范
  1. 【强制】不能以_或$开始,也不能以_或$结束
  2. 【强制】不能使用中英混合命名,更不能用中文命名
  3. 【强制】类名、方法名、参数名、成员变量、局部变量统一遵循驼峰形式;类名首字母大写;DO/BO/VO/DTO除外;杜绝不规范缩写,要完整语义单词
  4. 【强制】常量名大写,单词间用_隔开,不要怕名字长
  5. 【强制】抽象类使用Abstract开头,基本类以Base开头,异常类以Exception结尾,测试类以Test结尾,服务接口已Service结尾,接口实现以Impl结尾或ServiceImpl结尾,工具类以Utils结尾,枚举类以Enum结尾,控制层以Controller结尾,常量类以Constants结尾
  6. 【强制】包名统一用小写字母(单数)命名,类名可以用复数形式单词命名
  7. 【强制】常量或变量命名时,表示类型的名词放在最后,如startTime
  8. 【强制】接口、类、方法、模块使用了设计模式,在命名时体现设计模式
  9. 【强制】接口方法上不要加入任何修饰符
  10. 【推荐】各层命名规约
  1. Service/Dao/Controller层命名
  1. 获取单个对象方法get开头
  2. 获取多个对象方法以list开头,复数形式结尾,listDogs;若根据一个字段查询,list开头,By**结尾,listDogsByDogCode;若两个字段查询,list开头,By**结尾,listDogsByDogCodeAndDogName;若三个字段做为条件查询,则使用领域模型Query
  3. 获取统计值方法以count开头;参考上一条
  4. 插入方法用save或insert开头
  5. 删除方法用remove或delete开头
  6. 修改方法用update开头
  1. 领域模型命名
  1. ***Dto:数据传输对象,**为业务领域相关名称,如 表单提交犬只信息,命名DogDto
  2. **Vo:展示对象,**为网页名称或这一类型的视图展示
  3. **Query:查询对象,当查询条件超过2个时,使用此模型,可无限扩展;每一个查询对象需继承BaseQuery查询对象
  • 常量定义
  1. 【强制】不允许出现任何魔法值直接出现在代码中,需定义在各自应用常量池中定义魔法值
  2. 【强制】命名long或Long类型时,必须以L结束,不能l结束,会被误认为是数字1
  3. 【强制】不要使用一个常量类存储常量,要按常量功能分类,分开维护,如二方库有基本常量类BaseConstants,基本缓存常量BaseCacheConstants;各个系统使用二方库,各种常量需单独维护,同时要集成二方库同等作用的常量类;如养犬系统(Dog)分为业务系统(Center)和权限系统(Upms)及公共模块(Common),需在Common下命名常量类,Center和Upms下也要各自维护常量类
  • 代码格式与注释
  1. 【推荐】一个方法不要超过80行,尽量采用红花配绿叶形式,把共性方法提炼,不要满足于现有方法,而是要各个场景
  2. 【推荐】单行代码不要超过120行,超过部分换到下一行
  3. 编码Encoding设置为UTF-8
  4. 【推荐】一个方法内不同逻辑,不同业务代码之间插入一行空格,并加入注释,提升可读性
  5. 【强制】类、属性、方法必须加注释,使用/**内容*/形式,不得使用//**形式,避免在生成JavaDoc的时候出错
  6. 【强制】类、属性、方法必须加注释,说明其作用,类注释中要加入作者@author **、时间 @time **
  • OOP规约
  1. 【强制】不能使用过时的方法
  2. 【强制】equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用
  3. 【强制】为防精度丢失,禁止使用BigDecimal(double)的方式转换,应将double转换为字符串
  4. 【强制】所有POJO类属性必须使用包装类,所有RPC方法返回值或参数必须使用包装类
  5. 【强制】使用索引访问String的split方法得到数组,或数据库查询某个集合,要做容错判断;如你明知字符串拆分能得到6个长度或集合长度为6,但也要判断,以防出现不必要的错误
  • 1
  • 异常日志
  • 数据库
  • 建表规约
  1. 【强制】库名、表名或字段名必须小写字母或数字,禁止数字开头,禁止两个_中间加入数字;库名尽量与应用名保持一致;表名不能用复数名词;表名命名方式**_**,第一个*是系统或模块名词,第二个*是领域名词,如权限系统的用户表 upms_user
  2. 【强制】字段名禁用保留字
  3. 【强制】字段名必须包含id(36位varchar),gmt_created(bigint),gmt_updated(bigint),is_deleted(tinyint 0/1)
  4. 【强制】字段类型为text时,通过外表单独互通
  • SQL语句
  1. 【强制】不要使用count(列名)代替count(*),前者会忽略null的字段而后者不会
  2. 【强制】要使用ISNULL来判断是否为NULL值
  3. 【强制】分页查询是,若count为0,不要执行分页查询,直接返回
  4. 【推荐】in评估其集合数量不要超过500个
  5. 【强制】一切新增更新删除不要级联操作,一切外键概念全部在业务层解决
  • 安全规约
  1. 【强制】隶属于用户个人的页面或者功能必须做权限控制校验
  2. 【强制】敏感数据切勿直接显示,要对其进行脱敏
  3. 【强制】用户输入的参数严格使用参数绑定形式注入,避免sql注入
  4. 【强制】在使用平台资源时,必须使用防重放机制,如短信验证码、邮件、登录、修改密码等,加入验证码校验,数量限制,IP白名单形式控制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智舰网络工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值