代表性台词:他们并没有那样理解“AndOr”的含义 笔记

代表性台词:他们并没有那样理解“AndOr”的含义

该文本讨论了一个存在问题的函数,该函数来自一个已有三十年历史的 C++ 研究工具。该工具主要由计算机科学博士候选人开发,并展示了糟糕的编程实践。特别强调的一个例子是名为 isFooOrBar 的函数,但它实际上执行的是 isFoo()isBar() 之间的 AND 操作。函数名称与其行为的不匹配是一个重大问题。此外,作者认为,即使函数名称正确,显式的 isFoo() && isBar() 表达式也比专门的函数更清晰。该函数于 2010 年作为新代码提交,这表明这是一个有意的选择,而不是简单的错误。原始作者可能在未更新函数名称的情况下,将逻辑从 OR 更改为了 AND。此决定是为了避免更新所有调用点,尽管该函数仅在一个位置使用。作者认为,真正的意图是封装行为,但在这里并未实现。