背景
我们正在尝试使用jqassistant
自动审计合规性检查。与该领域的典型情况一样,存在很多约束,但它们不一定是硬约束。
例如,在软件架构中,违反准则只能导致两种可能的结果:要么必须更改代码以匹配约束,要么必须更改准则,因此必须更改约束。
但是,当您进入合规性时,本质上还有第三种选择:自愿接受违反约束的行为,并说明在这些特定情况下可以违反约束的理由。
一个具体的例子:您计划项目,并且通常有一条规则,您必须执行某些风险管理任务。但是,该项目是一个 2-3 天的小型项目,任何风险的影响都可以忽略不计。因此,运行完整的风险管理流程没有任何意义。
手头的问题
让我们一起来回顾一下jqassistant
:有一大堆约束需要验证。但是,在这种情况下,应忽略检查风险管理概览文档是否存在的特定约束。
你怎么做最好?
是否有一些配置参数允许明确排除某些约束?或者,也许我正在以错误的方式思考这一切?
行不通的想法
我知道能够明确指定应使用-constraints
or-groups
参数检查的单个或一组约束。但是,使用这些有两个主要缺陷:
- 那时可能有很多东西需要重新定义。当我遗漏带有要排除的约束 C 的组时,我需要明确地包含该组中的所有其他约束并重新定义仍包含原始组的所有父组。
- 组和约束的集合在别处维护。因此,即使我明确指定了剩余的约束——当其他人向该组添加新约束时,我可能不知道它并且不会对其进行检查。