有时候,程序员显然已经在他们的代码结构中做出了深思熟虑的选择,这会导致(充其量)不直观的行为,但在技术上并不是一个错误,因为它被破坏了。这应该被归类为错误并修复吗?
例如,一个著名的开源电子商务系统(如果您查看我的回答历史,您会知道是哪一个!)提供了数量增量功能,管理员可以在其中指定必须添加到购物车的单位的倍数(例如必须是 5、10、15、20 等)。编写代码以便这些限制仅在系统处于“管理库存”模式(即库存水平随每个订单递减)时强制执行。现在,店主可能希望以指定的增量销售他们的产品,但不管理库存水平,这是一个完全有效的情况。该代码默默地忽略了配置(没有向管理员反馈),并且没有关于打开管理库存要求的文档。
这是一个错误吗?或者只是糟糕的设计/文档。
请注意,我相信有些读者会将此问题解释为主观的,但我认为错误和糟糕的设计之间存在重要差异。这在开源项目中尤其重要,在这些项目中,错误报告往往在与公司内部系统不同的流程中工作。