BT

.NET向けのCode Contractsがダウンロードで利用可能

| 作者: Abel Avram フォローする 11 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2009年2月25日. 推定読書時間: 2 分 |

Code Contractsは、Design by Contract(リンク)概念の.NET実装である。.NET 4.0で提供されることになっていたが、Code ContractsはすでにDevLabs(リンク)からダウンロードで利用可能である。Contractsは、APIの使用にある制限を課すので、プログラミングがより安全になり、検証が厳しくなるので、実行時に予期せぬエラーの数が少なくなる。

ContractによるDesignまたはContractによるProgrammingは、プログラミングでは新しい概念ではなく、多くの言語で既にそ のような実装がある。Code Contractはこのプログラミングの実例を.NETにもたらしている。基本的な概念は、関連する2者間(クライアント(呼び出し側)とサプライヤ(呼 び出されるAPI))でコントラクトを成立させることである。契約条件を遵守することで、クライアントはサプライヤが期待される結果を提供するとますます 確信することができ、サプライヤはクライアントが適切な呼び出しをするとますます自信を持つことができる。

Code Contractsで利用可能な3つの契約条件は、事前条件、オブジェクト不変条件および事後条件である。事前条件は、たとえばコンストラクタやメソッド が正しいパラメータ値を使って呼び出されているかを検証するために使用される。事後条件は、たとえば戻り値が適切かどうかを検証するために使用される。オ ブジェクト不変条件は、オブジェクトに特定の条件を課して、不正な値を取得しないようにするために使用される。

これはユニットテストに非常によく似ているが、こうした検証がビルド時に実行されるという点が新しい。コンパイラは、Contracts経由で特定の チェックをおこない、すべての指定条件が満たされていることを確認し、満たされていない場合、警告を出す。即座にプログラマは条件が満たされないかどうか を確認し、コードを実行する前に是正措置を講じる。

現在、DevLabsチームはプロジェクト向けに作成されたドキュメンテーションにContractsを組み込む作業をしている。APIドキュメンテーションを読むことで、すべての契約条件が指定されていることを確認できる。

Code Contractsを使用する最終的な成果は、より良く、より安全なコードであり、外部APIのより適切な使用であり、結局はより良いソフトウェアである。

役立つリンク:Code Contractsオンラインドキュメンテーション(PDF)、Microsoft Research Code Contracts Webサイト(リンク)、関連フォーラム(リンク)

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT