Skip to content
Discussion options

You must be logged in to vote

我们遇到了同样的需求,而且是更极端的情况,想补充一下实际场景。

我们的使用场景(Android 代码评审), review 规则通常分为三层:

  1. 通用规则:空指针检查、空安全、命名规范、日志规范等,跨语言适用
  2. 语言规则:Kotlin/Java 特有的规范,如协程使用、Android 生命周期管理、Java 互操作等
  3. 领域规则:业务层约束,如 Repository 层架构规范、API 调用约定、数据层设计模式等

一个典型的 Android 文件(如 UserRepository.kt)需要同时满足这三层规则。


现有设计根本做不到

当前 ocr 的 first-match-wins 机制决定了一个文件只能命中一条规则。这意味着:

{
"rules": [
{ "path": "/*.kt", "rule": "kotlin.md" },
{ "path": "
/repository/**", "rule": "domain.md" }
]
}

当 UserRepository.kt 参与评审时:

  • 若 *.kt 排在前面 → 只命中 Kotlin 语言规则,领域规则被丢弃
  • /repository/ 排在前面 → 只命中领域规则,语言规则被丢弃

任意两层规则都无法同时生效,更别说三层了。
所以不只是"通用规则没有地方合并"——语言规则和领域规则也只能揉进同一个 .md 文件。规则稍有变动就要改 N 份文件,维护成本非常高。


建议方案:rule 字段支持引用多个文件

把 rule 从单文件路径扩展为文件列表,按顺序拼接内容:

{
"rules": [
{
"path"…

Replies: 5 comments 4 replies

Comment options

You must be logged in to vote
0 replies
Answer selected by lizhengfeng101
Comment options

You must be logged in to vote
1 reply
@hwbest
Comment options

Comment options

You must be logged in to vote
3 replies
@lizhengfeng101
Comment options

@nofacer
Comment options

@hwbest
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
4 participants