技术架构开发规范

211111# 前言
基于阿里Java代码开发规范,代码规范检测采用”阿里代码规范插件p3c”
p3c安装使用文档:https://www.cnblogs.com/lsysy/p/9954785.html



一、Java命名规范

  在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的。比如,大小写的区分,使用不同字母开头等等。但究其本,追其源,在为一个资源其名称的时候,应该本着描述性以及唯一性这两大特征来命名,才能保证资源之间不冲突,并且每一个都便于记忆。在本系统中,命名时,不要使用拼音或者拼音缩写,而应用使用名称所对应的常用的英文单词。

  • 包的命名
      Java包的名字都是由小写单词组成。采用com.jy称作为本系统程序包的前缀;其后加上应用名称;然后是服务名+业务子模块等,以及各一级模块名称;各模块下还可以有子模块。
  • 类的命名
      类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample。另外由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。
  • 方法的命名
      方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。
    例如: sendMessge
    方法的命名
      常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。本系统中所有的常量都在. com.xx.xx.xx.constant类中管理。
      例如: MAX_VALUE
  • 变量的命名
      方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。对于同一位置含有同一对象的不同类型的变量,可以在其后加上类型以示区分。
  • Javadoc注释
      Java除了可以采用我们常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,它是用来记录我们代码中的API的。Javadoc注释是一种多行注释,以/*开头,而以/结束,注释可以包含一些HTML标记符和专门的关键词。使用Javadoc注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。

二、数据库命名规范

  表名应用名_服务名_模块_功能,例如:dns_uauth_sys_user
  ① 表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint,( 1 表示是,0 表示否)。
  说明:任何字段如果为非负数,必须是 unsigned。
  正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。
  ② 表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。
  正例:aliyun_admin,rdc_config,level3_name
  反例:AliyunAdmin,rdcConfig,level_3_name
  ③ 表名不使用复数名词。
说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于 DO 类名也是单数形式,符合表达习惯。
  ④ 禁用保留字,如 desc、range、match、delayed 等,请参考 Oracle 官方保留字。
  ⑤ 主键索引名为 pk_字段名;唯一索引名为 uk_字段名;普通索引名则为 idx_字段名。
说明:pk_ 即 primary key;uk_ 即 unique key;idx_ 即 index 的简称。
  ⑥ 小数类型为 decimal,禁止使用 float 和 double。
说明:float 和 double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不正确的结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数分开存储。
  ⑦ 如果存储的字符串长度几乎相等,使用 char 定长字符串类型。
  ⑧ varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索引效率。
  ⑨ 表必备三字段:id, gmt_create, gmt_modified。
说明:其中 id 必为主键,类型为 unsigned bigint、单表时自增、步长为 1。gmt_create, gmt_modified 的类型均为 date_time 类型,前者现在时表示主动创建,后者过去分词表示被动更新。
  ⑩ 表的命名:“产品简写_服务简写_业务名称_表的作用”。
正例:ah_ocr_claim_task / ah_ocr_claim_config
  ⑪ 库名与应用名称尽量一致。
  ⑫ 如果修改字段含义或对字段表示的状态追加时,需要及时更新字段注释。
  ⑬ 字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循:
1)不是频繁修改的字段。
2)不是 varchar 超长字段,更不能是 text 字段。
正例:商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表中冗余存储类目名称,避免关联查询。
  ⑭ 合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。

三、接口规范

1、接口地址名称规则:

http//ip:port/应用版本/服务名/类型/服务版本/模块/功能
  -"http//ip:port/" : 负载均衡设置
  -"/应用版本/服务名" : 路由设置
  -"/类型/服务版本/模块/功能" : 服务设置
(1)VO:和前端HTML交互的接口:
  地址规则:http//ip:port/应用版本/服务名/rest/服务版本/模块/功能
  例如:https://ip:port/1.0/uauth/rest/v1/user/queryUserInfo
(2)Inner:内部服务交互的接口,使用feign方式交互:
  地址规则:http//ip:port/应用版本/服务名/inner/服务版本/模块/功能
  例如:https://ip:port/1.0/uauth/inner/v1/user/queryUserInfo
(3)API:与外部第三方系统交互的接口:
  地址规则:http//ip:port/应用版本/服务名/api/服务版本/模块/功能
  例如:https://ip:port/1.0/uauth/api/v1/user/queryUserInfo

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值