开发命名规范

1项目命名规范

1、工程项目名,尽量想一些有意义、有传播价值的名称;比如星球、游戏、名人、名地名等;取名就跟给孩子取名一样,独特、有价值、有意义、好传播
2、所有的类都必须添加创建者和创建日期
3、所有代码:包括项目代码、测试代码、临时性代码、脚本统统加入Git仓库进行版本管理,避免误删除、误操作丢失
4、项目需要有单元测试,测试覆盖度50%,测试代码放到单独的src/test/java工程目录下,单测也要入Git仓库管理

2项目目录结构规范

项目名称-admin //web端服务接口(面向浏览器前端的后端接口服务)、定时任务等

项目名称-service //rpc微服务工程,

项目名称-api //终端api接口(面向外部接口,比如APP)

项目名称-common //公共模块

项目名称-web //vue前端工程

项目名称-client //给其它业务依赖参数,接口定义工程,feign接口调用

 

image.png

3.项目业务模块包命名  caes为公司英文简称,实际需求替换

com.caes.项目名.模块名.controller

com.caes.项目名.模块名.feign

com.caes.项目名.模块名.service

com.caes.项目名.模块名.dao

com.caes.项目名.模块名.entity

com.caes.项目名.模块名.vo

com.caes.项目名.模块名.dto

com.caes.项目名.模块名.param

com.caes.项目名.common.listener

com.caes.项目名.common.config

4代码命名规范

1、无特殊要求,后端项目一律采用以SpringBoot框架。

2、代码中的命名均不能以下划线或美元符号开始,更不允许直接使用中文的方式。代码中的命名避免使用拼音与英文混合的方式。

3、类名使用UpperCamelCase风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO

4、方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式

5、常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚准确,细粒度,不要嫌名字长;比如MAXCOUNT适当细分为MAXXXXCOUNT,MAXYYY_COUNT

6、抽象类命名使用 Abstract 或 Base 开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾

7、POJO类中布尔类型的变量,都不要加is,否则部分第三方框架解析会引起序列化错误

8、包名统一使用小写,点分隔符之间有且仅有一个自然语义的词汇

9、杜绝不规范的简写,避免望文不知义;比如configure简写为config、cfg、conf都可以,con就不合理

10、如果模块、接口、类、方法使用了设计模式,在命名时体现出具体模式;比如OrderFactory,AgentProxy

11、枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开

12、领域模型命名规约:

数据对象:xxxPO,xxx即为数据表名, 对象属性和表字段对应;

数据传输对象:xxxDTO,xxx为业务领域相关的名称,前端向后端传递对象,FEIGN调用,及其他数据对象传输统一使用DTO后缀;

展示对象:xxxVO,xxx一般为view名称;

业务处理对象:xxxBO,xxx为业务领域相关的名称.

其它规范

1后端代码规范

后端开发必须安装Java阿里代码规范插件,并启用检查代码,对于不符合规范的拒绝提交。
IDEA安装该插件
打开IDEA,File-> Setteings->Plugins->Browse Repositories,在Browse Repositories搜索栏搜索Alibaba,然后安装Alibaba Java Coding Guidelines
下载本地zip文件,下载地址:Alibaba Java Coding Guidelines - IntelliJ IDEs Plugin | Marketplace
下载版本 Alibaba Java Coding Guidelines 2.1.1
打开IDEA,File->Settings->Plugin->Install plugin from disk,选择刚才自己下载插件zip包的地址

2日志规范

日志很重要,需要统一定义日志格式规范
1、必须要有日志、必须要有日志、必须要有日志
2、日志要能清晰反映程序运行状态、上下游链路调用处理过程、核心逻辑
3、日志必备字段:日志级别、时间戳、服务名、IP、调用方、TraceId、日志主体
4、谨慎记录日志,生产环境避免输出debug日志,有选择地输出 info 日志,注意日志输出量的问题,避免无意义的大段不可阅读的日志。大量地输出无效日志,不利于系统性能提升,也不利于快速定位错误点

3接口规范

接口设计原则

接口设计应立足于本服务自身,服务核心提供什么对外的能力,接口用于匹配自身的能力,接口设计以通用为准,避免被需求牵着走,提供一大堆极度相似的接口给维护带来困难。
接口设计需考虑安全问题及权限问题,接口设计需避免可遍历的访问
接口的入参必须检查及有效性验证,非法参数必须拒绝,并返回相应错误信息
部分接口,需有防重限制,访问量限制,验证码限制等,避免被滥刷,造成资损

接口规范参考:《RestfulL API规范》

4数据库规范

数据库开发规范参考:《MYSQL数据库涉及规范》

5前端开发规范

1、无特殊要求,前端项目一律采用基于 @caes/caes-frontwork前端框架。

2、项目名称全部采用小写,以下划线或者短横线分割。如official-website,目录命名全部采用小写,以短横线分割。有复数结构时,要采用复数命名法。

3、详细规范遵循: 《WEB端编码规范》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/68300.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何优雅的使用Mock Server

事出有因 昨天跟同事讨论我们在用的rap2(一个集接口编写和mock server的开源项目)和刚上线了一个easy-mock的server,到底哪个好用。 我们主要讨论的点有个两个: 接口的一致性、 编码的无侵入性。 背景 自从前后端分离后,完成前后端的分工…

Rust 重载运算符|复数结构的“加减乘除”四则运算

复数 基本概念 复数定义 由实数部分和虚数部分所组成的数,形如a+bi 。 其中a、b为实数,i 为“虚数单位”,i -1,即虚数单位的平方等于-1。 a、b分别叫做复数a+bi的实部和虚部。 当b0时,a&…

KCC@广州开源读书会广州开源建设讨论会

亲爱的开源读书会朋友们, 在下个周末我们将举办一场令人激动的线下读书会,探讨两本引人入胜的新书《只是为了好玩》和《开源之迷》。作为一个致力于推广开源精神和技术创新的社区,这次我们还邀请了圈内大咖前来参与,会给大家提供一…

回归预测 | MATLAB实现基于SAE堆叠自编辑器多输入单输出回归预测

回归预测 | MATLAB实现基于SAE堆叠自编辑器多输入单输出回归预测 目录 回归预测 | MATLAB实现基于SAE堆叠自编辑器多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于SAE堆叠自编辑器多输入单输出回归预测; 2.运行环…

简单易懂的 Postman Runner 参数自增教程

目录 什么是 Postman Runner? Postman Runner 如何实现参数自增? 步骤一:设置全局参数 步骤二:将全局参数带入请求参数 步骤三:实现参数自增 资料获取方法 什么是 Postman Runner? Postman Runner 是…

vscode|pycharm + docker + python

1,docker run的时候要加上port docker run -it --gpusall -p 2222:22 -v /挂载目录/:/docker 目录1/ -v /挂载目录/:/docker 目录2/ --namexxx image:v2 /bin/bash 2,docker 内部要安装ssh 2.1方法命令: apt-get update apt-get install…

【调整奇数偶数顺序】

调整奇数偶数顺序 1.题目 输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。 2.题目分析 这道题首先用到的方法是冒泡排序的思想,首先通过冒泡排序…

深入源码分析kubernetes informer机制(四)DeltaFIFO

[阅读指南] 这是该系列第四篇 基于kubernetes 1.27 stage版本 为了方便阅读,后续所有代码均省略了错误处理及与关注逻辑无关的部分。 文章目录 client-go中的存储结构DeltaFIFOdelta索引 keyqueue push操作delta push 去重 queue pop操作 总结 client-go中的存储结构…

Windows 编译CEF源码详细记录

背景 默认的CEF不支持音视频功能&#xff0c;需要下载源码将ffmpeg开关打开&#xff0c;再进行编译。 Linux编译参考&#xff1a; 《Linux CEF源码下载编译详细记录》 创建目录结构 code/automate/automate-git.py <-- CEF build scriptchromium_git/cef/ …

说一下什么是tcp的2MSL,为什么客户端在 TIME-WAIT 状态必须等待 2MSL 的时间?

1.TCP之2MSL 1.1 MSL MSL:Maximum Segment Lifetime报文段最大生存时间&#xff0c;它是任何报文段被丢弃前在网络内的最长时间 1.2为什么存在MSL TCP报文段以IP数据报在网络内传输&#xff0c;而IP数据报则有限制其生存时间的TTL字段&#xff0c;并且TTL的限制是基于跳数 1.3…

数据安全服务能力评定资格证书-申请流程

数据安全服务能力评定&#xff08;以下简称能力评定&#xff09;是指对数据安全服务提供商从事数据安全服务综合能力的评定&#xff0c;包括技术能力、服务能力、质量保证能力、人员构成与素质、经营业绩、资产状况等要素。 用于对中华人民共和国境内的数据安全服务提供商提供…

MySQL和Redis如何保证数据一致性

MySQL与Redis都是常用的数据存储和缓存系统。为了提高应用程序的性能和可伸缩性&#xff0c;很多应用程序将MySQL和Redis一起使用&#xff0c;其中MySQL作为主要的持久存储&#xff0c;而Redis作为主要的缓存。在这种情况下&#xff0c;应用程序需要确保MySQL和Redis中的数据是…