治理规则定义了围绕于某一类(特定)架构关注点的标准。
自定义治理规则
规则基于 Slot 来定义的,示例:
其中,主要的接口是:
- Rule,定义数据的访问顺序和流程,用于优化效率。
- RuleSetProvider,用于提供规则集。
- RuleVisitor,用于访问规则集和数据。
- RuleSlot,定义规则对数据的处理流程。
工程目录结果示例:
├── TbsRule.kt
├── TestSmellRuleSetProvider.kt
├── TestSmellRuleSlot.kt
├── TestSmellRuleVisitor.kt
└── rules # 规则集目录
├── DuplicateAssertRule.kt
├── EmptyTestRule.kt
├── NoIgnoreTestRule.kt
├── RedundantAssertionRule.kt
├── RedundantPrintRule.kt
├── SleepyTestRule.kt
└── UnknownTestRule.kt
注意,需要创建对应的 Service:
- resources/META-INF/services/org.archguard.meta.Slot
- resources/META-INF/services/org.archguard.rule.core.RuleSetProvider
- resources/META-INF/services/org.archguard.rule.core.RuleVisitor