エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
勉強部屋 — 防衛的プログラミングと契約的プログラミングは何が違うのか
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
勉強部屋 — 防衛的プログラミングと契約的プログラミングは何が違うのか
プログラミングとかガジェットとか科学系ニュースとかそんな感じで。プログラミングはC#、WPF、その辺が... プログラミングとかガジェットとか科学系ニュースとかそんな感じで。プログラミングはC#、WPF、その辺が中心。 あまり意識せずに使い分けていました。自分の感覚では 防衛的プログラミング=入力情報や結果を信用せずに検証しながら動作するプログラミングスタイル。 契約的プログラミング=入出力の正当性を定義・保証するプログラミングスタイ です。 例えば足し算プログラムを作ります。 int Add(int a, int b) { return a + b; } これはバグっています。オーバーフローで不正な結果を返します。 防衛的プログラミングであれば、 int Add(int a, int b) { return cheched(a + b); } C#で書いています。これはオーバーフローを検知して例外を投げています。他にも long Add(int a, int b) { return (long)