私の経験では、通常、防御的なプログラミングには、予測できない結果に基づくある種の不合理な犠牲が常に含まれているため、防御的なプログラミングは悪であると常に思っていました(そして私は今でもそうしています)。たとえば、多くの人が自分の同僚に対して防御的にコーディングしようとしているのを見てきました。彼らは「万が一に備えて」コードが後で何らかの方法で変更された場合に備えて処理を行います。彼らは何らかの形でパフォーマンスを犠牲にすることになります、あるいは彼らはすべての状況のためにいくつかの銀の弾丸に頼るでしょう。
この特定のコーディング慣行は、防御的なプログラミングとしてカウントされますか?そうでない場合、この慣行は何と呼ばれますか?
ウィキペディアでは、防御プログラミングをソフトウェアの予測できない使用に対するガードとして定義していますが、他のプログラマーに対するコードの整合性のための防御プログラミング戦略を示していないため、それが適用されるかどうか、またこれが何と呼ばれるかはわかりません。
基本的に、私はこれを行う人々と議論し、彼らがしていることが間違っていることを専門的な方法で彼らに伝えることができるようになりたいです。私はこれに対して客観的に反論できるようにしたいと思っています。なぜなら、それは善よりも害をもたらすからです。