Asone 开发者文档Asone 开发者文档
  • 项目架构
  • 技术栈
  • 目录结构
  • 本地启动
  • 新增功能
  • 开发规范
  • 数据库
  • 图表语法
  • 部署
  • 文档同步规则
  • 相关文档
  • 项目架构
  • 技术栈
  • 目录结构
  • 本地启动
  • 新增功能
  • 开发规范
  • 数据库
  • 图表语法
  • 部署
  • 文档同步规则
  • 相关文档
  • 开发规范
    • 后端规范
    • 前端规范
    • 提交与代码质量

提交与代码质量

提交前检查

范围命令
后端cd asone-server && mvn -q -DskipTests clean compile
后端废弃 API 告警cd asone-server && mvn -q -DskipTests -Dmaven.compiler.showDeprecation=true compile
后端 record 自查grep -rnE '(^|\s)record\s+[A-Za-z_]' --include='*.java' asone-server/*/src
前端cd asone-front && pnpm lint
前端依赖过期cd asone-front && pnpm outdated

Husky + lint-staged 在提交时自动执行 Biome,commitlint 校验提交信息格式;钩子失败要修根因,不跳过钩子(不用 --no-verify)。

提交信息格式

图 1 · type 与 scope 怎么选

遵循 Conventional Commits,subject 使用中文:

<type>(<scope>): <subject>

<body>
  • header 不超过 72 字符,结尾不加句号;header 与 body 之间空一行,body 每行不超过 100 字符。
  • 生成前先 git log --oneline -20 与 git diff --staged,按实际改动写,不臆造。

type

type用途
feat新增功能、新增能力
fix修复缺陷、修正错误行为
refactor重构,不改变外部行为
docs文档、注释、DDL 说明、API 文档
style样式与格式调整,不影响逻辑
build依赖版本、pom / package.json、构建配置
ci流水线、部署脚本、flow.yaml
chore杂项,如 husky、工程初始化
perf性能优化
config运行参数调整,如超时时间、开关默认值

按改动意图选 type:新增渠道报表同步用 feat,修报表数据错误用 fix,只调结构用 refactor。

scope

小写 kebab-case,取模块或功能域,省略不影响理解时可省略。

  • 后端按 Maven 模块:channel-report、advertisement、iaa、system、server
  • 前端按功能域:export、api-key、operation-log、rate-limit、locales、workbench
  • 其他:docs、api、security、auth、frontend

禁止大驼峰(ChannelReport)、类名(ExportTaskController)或带空格的 scope(login page)。

subject

  • 动词开头:新增 / 修复 / 优化 / 移除 / 重构 / 统一 / 调整 / 拆分 / 精简 / 升级 / 接入 / 配置 / 支持 / 实现 / 完成 / 引入 / 替换
  • 说清做了什么、能定位到具体功能点,不写「修改代码」「更新文件」这类空话
  • 多个动作用「并」连接,最多两项;同类并列对象用顿号
  • 涉及具体标识符、配置项、字段名时保留原文;中英文之间不加空格

body

  • 改配置值、升依赖、删文件这类简单改动可以不写
  • 涉及行为变更、性能影响、根因排查、新增配置项时必须写
  • 写「为什么改」和「影响范围」,不复述逐行 diff;推荐结构:现状 / 问题 → 做法 → 影响或注意事项
  • 用连贯段落,不用 emoji,不堆砌文件清单

示例

fix(channel-report): 渠道接口出站按主机限频,避免触发调用频繁报错

渠道侧普遍有调用频率限制,而前端日报、国家、单元、明细四个维度是独立按钮,
各自通过 CompletableFuture.runAsync 提交到线程池并发调用同一渠道主机;分页
while 循环与逐日循环内部也无任何间隔,导致渠道返回调用频繁错误。

将限频下沉到所有渠道共用的 RestClient 拦截器,按 host 维度保证相邻两次请求
开始时间至少间隔 channel-api.request-interval-millis,一处生效覆盖全部渠道、
分页循环、逐日循环与重试,不同渠道主机之间互不阻塞。
build: 将公共依赖统一提升至父pom的dependencyManagement

反例:

update code             # 无信息量
feat(ChannelReport): Add throttle.   # scope 大驼峰、英文、带句号
fix: 修复问题            # 没说清修的是什么

其他约束

  • 禁止任何 AI 署名、Co-authored-by、Generated with 等 trailer。
  • 禁止在提交信息中出现密钥、token、私钥等敏感信息。
  • 一次提交只做一类事:格式化、重命名与功能修改不混在同一次提交;无关改动拆分。
  • 优先创建新提交,不用 --amend 改已存在的提交。
  • 只提交与当前任务相关的文件,不使用 git add -A 把 .env、凭据类文件带进去。

范围边界

xxl-job/xxl-job/ 是 git submodule 引入的上游官方源码,一律不修改、不纳入检索与审查范围。仍在范围内的是:xxl-job/deploy/(我们的 Dockerfile 与 application.properties)、flow.yaml 中构建部署调度中心的环节、asone-server/**/task/*.java 执行器侧代码,以及父 POM 对 xxl-job-core 的依赖版本。

上游或调度中心有缺陷时,只输出结论与建议(现象、定位为第三方问题、在我们 task 代码或调度中心配置侧的规避方式、或建议升级 xxl-job.version / 向上游提 issue),不自行改 vendored 源码。

上一页
前端规范