本节书摘来自异步社区出版社《C++编程惯用法——高级程序员常用方法和技巧》一书中的第1章,第1.3节,作者: 【美】Robert B. Murray ,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 请考虑边界条件
你可能会对我们为什么需要考虑部门主管这种情况感到惊讶。毕竟,大部分的职工还不是部门主管。现在在设计中考虑这种特殊的情况会不会显得有点早呢?
边界条件存在的地方总是不能满足抽象模型的假设基础。它们可以帮助我们更加关注这些假设条件。如:假设条件是否有效?在何种情况下,假设会失败?是否存在着一种合理的解决办法来处理这些情况?举例来说,如果我们假设每个职工都向另外一个职工汇报工作,那么什么时候这种假设会失效?在这种情况下,它的结果又将如何?
边界条件通常都会导致程序bug的产生,而且这些bug也不是很容易被及时发现。与其在事发后再来寻找原因,还不如早早地把边界条件列入我们的考虑范围。早早考虑并不意味着我们需要在设计阶段就把每个边界条件的行为都固定下来。随着设计的进行,对问题的理解加深,我们可能会对如何处理部门主管的行为进行修改。但是,为了避免在系统测试或者发布后再来解决这个问题,我们最好还是在前期设计就将边界条件纳入我们的考虑范围。