我一直认为防御性编程是邪恶的(现在仍然如此),因为根据我的经验,典型的防御性编程总是涉及基于不可预测的结果的某种不合理的牺牲。例如,我见过很多人试图针对自己的同事进行防御性编码。他们会做一些事情“以防万一”代码稍后以某种方式发生变化。他们最终会以某种方式牺牲性能,或者他们会在所有情况下诉诸某种 Elixir 。
这种特定的编码实践,算不算防御性编程?如果不是,这种做法叫什么?
维基百科将防御性编程定义为对软件不可预测的使用的防护,但没有指出针对其他程序员的代码完整性的防御性编程策略,所以我不确定它是否适用,也不确定它是什么这就是所谓的。
基本上,我希望能够以专业的方式与这样做的人争论,并告诉他们他们所做的事情是错误的。我希望能够客观地反对这一点,因为它弊大于利。
最佳答案
“过度设计”是错误的。
“防御性编程”很好。
需要智慧、经验……也许还需要经常进行代码审查的长期政策……才能区分出其中的差异。
关于defensive-programming - 这是防御性编程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146913/