Design by Contract プログラミングのベスト プラクティスは何ですか。
大学では、契約パラダイムによる設計を学びました (OO 環境で)。問題に取り組むための 3 つの方法を学びました。
1) トータル プログラミング : その効果で考えられるすべての例外的なケースをカバーします (cf. 数学)
2) Nominal Programming : 前提条件が満たされた場合にのみ、正しい効果を「約束」します。(それ以外の場合の効果は未定義)
3) 防御的プログラミング : 例外を使用してメソッドの不正な呼び出しを知らせる
さて、さまざまな OO シナリオで、それぞれの状況での正しい使用法に焦点を当ててきましたが、いつ、どれを使用するかについては学習していません... (ほとんどの場合、演習によって強制される戦術..)
今、私が先生に尋ねなかったのは非常に奇妙だと思います (しかし、講義中は誰も質問しませんでした)。
個人的には、私は現在ノミナルを使用することはなく、前提条件を例外に置き換える傾向があります(したがって、「前提条件:除算器はゼロとは異なる必要がある」と述べるよりも、IllegalDivisionByZero をスローします)、意味のある合計のみをプログラムします(したがって、ゼロ除算の従来の値) ですが、この方法は個人的な調査結果と好みに基づいています。
だから私はあなたたちに尋ねています:
ベストプラクティスはありますか??