我一直认为防御性编程是邪恶的(现在仍然如此),因为根据我的经验,防御性编程通常总是涉及基于不可预测结果的某种不合理的牺牲。例如,我见过很多人尝试对自己的同事进行防御性编码。他们会做一些事情“以防万一”代码稍后以某种方式发生变化。他们最终会以某种方式牺牲性能,或者他们会在所有情况下都求助于一些灵丹妙药。
这种特定的编码实践,算不算防御性编程?如果不是,这种做法会被称为什么?
维基百科将防御性编程定义为对不可预测的软件使用的保护,但并未指出针对其他程序员的代码完整性的防御性编程策略,所以我不确定它是否适用,也不知道这叫什么。
基本上,我希望能够以专业的方式与这样做的人争论并告诉他们他们所做的事情是错误的。我希望能够客观地反对这一点,因为它弊大于利。