タグ

2015年7月3日のブックマーク (1件)

  • 勉強部屋 — 防衛的プログラミングと契約的プログラミングは何が違うのか

    プログラミングとかガジェットとか科学系ニュースとかそんな感じで。プログラミングは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)

    勉強部屋 — 防衛的プログラミングと契約的プログラミングは何が違うのか