代码风格和质量指南
1 拉取请求与变更规则
-
ISSUE/PR(拉取请求) 的引导和命名-
新建
PR后需要在PR页面的 Github Development 按钮处关联已存在的对应ISSUE(若无建议新建对应ISSUE) -
标题命名格式(英文,小写)
[feature/bugfix/doc/improve/refactor/bug/cleanup] title
-
-
添加描述信息
- 新建
PR时请仔细描述此贡献,描述文档和代码同样重要。审阅者可以从描述中,而不仅仅是从代码中,了解问题和解决方案。 - 勾选是否完成了对应的 Checklist。
- 新建
-
建议一次
PR只包含一个功能/一种修复/一类改进/一种重构/一次清理/一类文档等 -
提交消息(英文,小写,无特殊字符)
消息的提交应遵循与PR类似的模式:[feature/bugfix/doc/improve/refactor/bug/cleanup] title
2 代码检查样式
2.1 配置 Checkstyle
- 安装 Checkstyle-IDEA 插件.
- 打开 Checkstyle 设置. 点击 Settings → Tools → Checkstyle。
- 设置 Checkstyle version 的版本为: 10.14.2。
- 设置 Scan scope 为 Only Java sources (including tests)。
- 点击 + 按钮在 Configuration 部分打开一个对话框选择 checkstyle 配置文件。
- 输入描述名称,比如:hertzbeat。
- 选择 Use a local checkstyle file。
- 设置 File 路径为: script/checkstyle/checkstyle.xml。
- 选择 Store relative to project location。
- 点击 Next → Next → Finish。
- 激活刚才的 Checkstyle 配置。
- 点击 OK。
-
后端代码规范 Maven 插件:
checkstyle后端运行mvn checkstyle:checkstyle -
前端代码格式化插件
eslint前端运行npm run lint:fix
2.2 文档样式检查
- 安装
markdownlint-cli2,运行npm install markdownlint-cli2 --global - 在项目中运行
markdownlint-cli2 "home/**/*.md",会执行Markdown文件格式自动检测。 - 在项目中运行
markdownlint-cli2 --fix "home/**/*.md",会执行Markdown文件格式自动格式化,以确保所有文档都符合规范。
提示: 修复只能修复部分问题,根据检查后的错误信息,手动调整。
错误码说明:
| 错误代码 | 说明 |
|---|---|
| MD001 heading-increment | 标题级别应一次只递增一个级别 |
| MD003 heading-style | 标题样式 |
| MD004 ul-style | 无序列表样式 |
| MD005 list-indent | 同一层级的列表项缩进不一致 |
| MD007 ul-indent | 无序列表缩进 |
| MD009 no-trailing-spaces | 行尾空格 |
| MD010 no-hard-tabs | 硬制表符 |
| MD011 no-reversed-links | 链接语法反转 |
| MD012 no-multiple-blanks | 多个连续空行 |
| MD013 line-length | 行长度 |
| MD014 commands-show-output | 命令前使用 $ 符号但未显示输出 |
| MD018 no-missing-space-atx | ATX 样式标题符号后缺少空格 |
| MD019 no-multiple-space-atx | ATX 样式标题符号后有多个空格 |
| MD020 no-missing-space-closed-atx | 闭合 ATX 样式标题符号内部缺少空格 |
| MD021 no-multiple-space-closed-atx | 闭合 ATX 样式标题符号内部有多个空格 |
| MD022 blanks-around-headings | 标题周围应有空行 |
| MD023 heading-start-left | 标题必须从行首开始 |
| MD024 no-duplicate-heading | 存在多个内容相同的标题 |
| MD025 single-title/single-h1 | 同一文档中有多个一级标题 |
| MD026 no-trailing-punctuation | 标题中有尾随标点符号 |
| MD027 no-multiple-space-blockquote | 引用符号后有多个空格 |
| MD028 no-blanks-blockquote | 引用块内有空行 |
| MD029 ol-prefix | 有序列表项前缀 |
| MD030 list-marker-space | 列表标记后的空格 |
| MD031 blanks-around-fences | 围栏代码块应被空行包围 |
| MD032 blanks-around-lists | 列表应被空行包围 |
| MD033 no-inline-html | 内联 HTML |
| MD034 no-bare-urls | 使用了裸露的 URL |
| MD035 hr-style | 水平分割线样式 |
| MD036 no-emphasis-as-heading | 不应使用强调样 式代替标题 |
| MD037 no-space-in-emphasis | 强调标记内有空格 |
| MD038 no-space-in-code | 代码片段元素内有空格 |
| MD039 no-space-in-links | 链接文本内有空格 |
| MD040 fenced-code-language | 围栏代码块应指定语言 |
| MD041 first-line-heading/first-line-h1 | 文件的第一行应为一级标题 |
| MD042 no-empty-links | 链接不可为空 |
| MD043 required-headings | 必须的标题结构 |
| MD044 proper-names | 专有名词应正确大写 |
| MD045 no-alt-text | 图片应有替代文字(alt 文本) |
| MD046 code-block-style | 代码块样式 |
| MD047 single-trailing-newline | 文件应以单个换行符结尾 |
| MD048 code-fence-style | 代码围栏样式 |
| MD049 emphasis-style | 强调样式 |
| MD050 strong-style | 粗体样式 |
| MD051 link-fragments | 链接片段应有效 |
| MD052 reference-links-images | 引用链接和图片应使用已定义的标签 |
| MD053 link-image-reference-definitions | 链接和图片引用定义应是必要的 |
| MD054 link-image-style | 链接和图片样式 |
| MD055 table-pipe-style | 表格管道样式 |
| MD056 table-column-count | 表格列数 |