在我工作的公司,最近要求所有“高度可见”的 bool 逻辑必须以析取范式表示。
例如(尽管这个概念与语言无关),
#if (defined(A) || defined( B )) || (defined(C) && defined(D))
必须替换为:
#if defined(A) || (defined(C) && defined(D)) || defined(B)
强制要求必须以这种方式表达代码的动机是什么?有哪些优势?
最佳答案
优点是在代码库中的任何地方都以规范/规范化的形式表达这种逻辑(理论上)将使程序员更容易理解和维护它。
如果没有这样的规则,一些程序员很容易尝试“优化”一个表达式,以至于维护人员很难解开它。此外,如果有必要,通用形式可以更容易地组合新的表达式。
(这些优势值得商榷。与任何风格指南一样,遵循一致的规则比选择一个规则而不是替代规则更重要。)
关于language-agnostic - 为什么以析取范式表达代码很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6574929/