据我所知,令您感到困惑的陈述是务实的折衷,目的是为了使准则能尽可能地广泛地服务于广大受众。根据您的特定上下文(下面有更多内容),您可以选择调整它并更有效地使用指南。
您会看到,准则指的是“强烈的个人异议”,以此作为证明违法的理由。此类异议不可轻视,特别是如果这些异议来自经验丰富的开发人员。
请注意,这些异议可能是错误的,但是(这是非常大的错误)它们还可能表明某条特定规则是错误的-无论是在一般情况下还是在特定项目的上下文中(一个规则不匹配的示例都是要求提供详细记录性能关键代码)。
我认为任何明智的风格指南都应考虑到上述因素,并尝试适应可能的调整需求。现在,如果让您感到困惑的指南仅针对具有高效,流畅的流程和环境的成熟团队,那么可以说得不太含糊,例如:
应当严格遵守规则,除非对它们提出质疑-在这种情况下,应通过忽略挑战或接受挑战并调整规则以使其适应,直到被解决之前,被质疑的规则都应被忽略。
您可能会更喜欢上面的方法,并且希望对所有人来说,它在任何地方都一样,但是请仔细研究一下“提出挑战/保持忽略/调整”这一部分,并问自己如何实现。问问自己,要花多长时间取决于项目和团队。如果要花一个小时,可以接受吗?如果要花一天或一周或一个月的时间怎么办?
您会发现,如果提出挑战和忽略直到解决的方法,它可以为任何项目提供指导,从而为滥用提供了广阔的大门。“是的,我们听到了,按照指南的说明进行操作。首先,填写此挑战表并获得CEO / CFO / CTO的批准;预计这需要一两个星期。在此之后,请等待直到我们更新代码检查;这可能需要一两周的时间。同时,请确保您的性能关键代码对每次寄存器移动都吐出格式正确的日志记录语句。”
我看不懂指南作者的想法,但是合理的假设是,他们希望避免如上所述使用它来证明一团糟。从这个角度来看,更清楚地声明该指南不承担任何执行力是绝对安全的-这样,尽管笨拙,仍然可以将其用于任意范围的团队和项目。可能期望如此宽泛的配额会给更成熟,效率更高的团队提供机会,在不损害开发人员生产力的情况下合理缩小范围。
根据您的具体情况,为您的团队编写编码样式文档,如果样式不匹配,则代码审查失败-我认为您需要弄清楚开发人员挑战特定规则可能需要多长时间,而忽略它,解决,并根据分辨率对其进行更改或恢复。
如果您想出一种使该过程正常进行而又不给开发工作流程带来任何障碍的方法,那么确实值得考虑采用一种正规且易于跟踪的挑战/解决方案,而不是混乱的“如果您哭得足够大就违背”。
附带说明一下,我想谈谈您在另一条评论中写的内容:“假设编码风格是理想的,如果不是这样的话。”
确实,这是一个危险的假设。我对它不屑一顾(两次!在一个项目中!我有丰富的经验,并想像自己对此有所了解,请尝试一下),我强烈建议您放弃它。较为安全的做法是假设样式指南中可能有错误,并在考虑发现此类错误的情况下竭尽所能。