1.微服务命名规范
命名规则
1) 服务名唯一,公司范围内服务不能重名。
2) 服务名由3-64位字符组成;字符可由英文26x2个大小写字母和0~9数字组成,限制使用英文下划线‘_’、空格‘’及其他特殊符号,不限制但不推荐中划线‘-’;推荐以大写字母开头。
3) 服务名推荐使用驼峰法命名,仅字母大小写不同不能代表不同服务。
4) 服务名采用名词,名称要能体现服务所提供的主要业务功能。
5) 完整的对内服务名称由服务名主段+服务类型组成,推荐各产品服务名使用与产品有关的前缀。服务类型主要有Service、Website(或UI、Portal、API)、Test等组成。
命名示例
1) CFStackManagerService:服务名称为CFStackManager,其中CF为CloudFormation缩写,类型为Service。
2) IAMAuthWebsite:服务名称为IAMAuth,其中IAM为业务领域缩写,类型为Website。
repository文件夹可以删除吗3) CFStackManagerTestService:测试服务,用于测试CFStackManagerService,类型为TestService。
4) IAMAuthTestWebsite:测试服务,用于测试IAMAuthWebsite,类型为TestWebsite。
2.公共规范
◆一键式构建
一键式自动化构建是指从构建启动开始到终结束(终交付的包生成),中间过程禁止人工干预。人工干预活动包括但不限于:构建过程中,使用IDE界面进行手工设置、创建或者删除文件目录、创建文件、复制文件、移动文件、删除或者重命名文件、手工设置文件属性、压缩/解压缩文件等。交付单元是指可独立编译、加载、部署和运行的产品/平台/组件。
◆构建目录
构建过程中禁止删除或修改源代码已有目录结构。
◆构建初始化
在一键式构建前,每个组件的构建入口(build.suffix)都要先自动调用clean清除历史构建遗留件。
◆全量构建
对于版本发布构建,归档的产品全量交付件(含所依赖的所有平台和组件)必须全部重新编译,禁止使用增量编译,禁止使用手工替换文件等方式修改安装盘。
◆构建配置
a)禁止使用与操作系统强绑定的文件(如excel)作为构建配置文件。建议使用跨
平台的标准配置文件(如XML)来存放配置选项。
b)禁止使用Jenkins的自定义工作空间。
c)构建任务超时时间设置,建议值30min
d)流水线build配置,建议不要使用异步构建
e)构建参数化命名不要使用空格、“_”、 "-"等特殊字符
◆构建日志
a)构建输出的日志简洁明晰,信息应分级为error/warning/info;出现error信
息表示构建失败,必须终止构建。
b)建议默认保留最近10次构建的日志,以便定位问题。
◆构建用户
禁止使用超级管理员用户root和系统用户执行构建,应该使用普通user账户执行构建。
3.Java构建规范
3.1.Maven
3.1.1.构建目录
构建目录遵从Maven约定,目录结构如下:
◆l
工程构建配置文件,如第三方件依赖、插件依赖等
◆Target
工程输出目录
◆Script
构建入口目录,非默认,可选,
◆app_define.json
应用版本配置文件,服务名、服务ID号、应用包的版本、应用包的后缀名、应用包的相对路径、应用包名称,必选。VsersionSet默认配置文件,必选。app_define.json 和 VsersionSet必须同时存在。
◆modulex(如module1,module2,……)
模块目录,模块目录结构如下:
➢l :模块构建配置文件
➢target :模块输出目录
➢src/main/java:模块的.java文件目录
➢src/main/resources:模块资源文件目录,如spring, hibernate配置文件➢src/main/script --模块特殊配置文件目录,如ant/shell/bat等脚本
➢src/test/java --模块所有测试.java文件目录,如JUnit测试类
➢src/test/resources --模块测试资源文件目录
➢src/assemby --模块assemby打包描述文件目录
◆Maven配置文件存放位置如下:
${M2_HOME}/l: maven全局配置文件,整台机器上的所有用户都受该配置的影响
~/.l:maven用户配置文件,仅影响当前用户
3.1.2.构建入口
Maven构建入口为根目录的l,在根目录下调用mvn命令构建。
3.1.3.构建依赖
构建依赖应通过dependency标签指定,禁止构建工程通过maven插件引用非本模块目录或文件。
多个模块依赖的第三方件/插件版本,统一在父POM的dependencyManagement/pluginManagement标签中定义版本号以及属性,子模块添加依赖时不要添加版本号以及属性。
代码仓存放产品维度的l,本地仓库统一配置:/clouddragonData/.m2/repository/
3.1.
4.发布
发布构建软件版本号遵循业界通用的RELEASE版本规范,不要带有SNAPSHOT 版本标签
第三方件优先在PDM确认是否有其不同版本,若存在则可考虑使用优选或可选版本。对于因为业务需要定制的第三方件,建议使用产品自己的groupId加上后缀.thirdpart 上传到产品的私仓地址。
编译打包出来的jar或者war文件中MANIFEST.MF文件中禁止出现时间戳。
3.1.5.编码格式
3.1.6.命名
groupId命名只能包含小写字母, 使用.分割,建议使用三段,不超过四段。
artifactId命名只能包含小写字母,使用-或者点(.)分割。
pom文件中properties命名,各单词/场景使用'.'分隔。
构建生成的交付件(jar或者war)命名方式为:artifactId-版本号.(jar|war)。
3.1.7.告警
必须清除所依赖第三方件的版本号冲突的构建告警。
必须消除maven工具的所有告警。
3.1.8.ant插件
不允许使用maven-antrun-plugin调度xml文件直接构建,可以使用maven-antrun-plugin调度ant task的非构建功能,比如拷贝文件/压缩文件。
3.2.Gradle
3.2.1.构建目录
Gradle构建目录遵从Gradle约定。
单个工程目录结构:
build --工程输出目录
src --工程源代码目录,其中:
src/main/java --.java文件目录
src/main/resources --资源文件目录
src/test/java --测试.java文件目录,如JUnit测试类
src/test/resources --测试资源文件目录
3.2.2.构建入口
Gradle构建入口为根目录的adle,在根目录下调用gradle命令构建。
3.2.3.构建依赖
3.2.
4.发布
发布构建软件版本号遵循业界通用的RELEASE版本规范,不要带有SNAPSHOT版本

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。