「コードコントラクト」の版間の差分
imported>Administrator |
|||
1行目: | 1行目: | ||
− | '''コードコントラクト''' | + | '''コードコントラクト'''(英語:Code Contracts)とは、[[.NET Framework 4.0]]で追加された「[[契約による設計]]」を行うため[[フレームワーク]]およびツール群である。 |
+ | |||
+ | == 概要 == | ||
+ | [[事前条件]]を表す「Contract.Requires()」と、[[事後条件]]を表す「Contract.Ensures()」を覚えておけば完璧である。コードコントラクトおよび[[契約による設計]]を極めたも同然かもしれない。 | ||
+ | |||
+ | 実のところコードコントラクトは[[D言語]]の目玉機能のパクリである。後発だけあって[[プログラミング言語]]レベルではなく[[ランタイム]]レベルでの実装・対応という汎用性の高さ実現している。 | ||
== 注意 == | == 注意 == | ||
なお「[[契約による設計]]」を行うために必要な静的解析ツールやドキュメント生成ツールなどは[[Visual Studio]]のお高い上位エディションでのみ動かせるという仕様であり、これらのツールがないと実行時のエラーチェックの書き方が変わるくらいで特に意味をなさない。 | なお「[[契約による設計]]」を行うために必要な静的解析ツールやドキュメント生成ツールなどは[[Visual Studio]]のお高い上位エディションでのみ動かせるという仕様であり、これらのツールがないと実行時のエラーチェックの書き方が変わるくらいで特に意味をなさない。 | ||
− | 将来的にVisual | + | 将来的にVisual Studioの上位エディションを導入するというのであればコードコントラクトを用いて記述しておくのも手ではある。また、もしかすると[[オープンソース]]のツールも出てくるかもしれないし、エラーチェックの書き方が一様に均一化するという[[コーディング規約]]的な意味でも積極的に使ってみる価値があるかもしれない。 |
− | |||
== インストール == | == インストール == | ||
17行目: | 21行目: | ||
== 名前空間 == | == 名前空間 == | ||
コードコントラクトに関するクラス群は System.Diagnostics.Contracts 名前空間に配置されている。 | コードコントラクトに関するクラス群は System.Diagnostics.Contracts 名前空間に配置されている。 | ||
− | |||
− | |||
− | |||
== その他 == | == その他 == | ||
28行目: | 29行目: | ||
== 参考文献 == | == 参考文献 == | ||
− | + | {{reflist}} | |
− | |||
− | |||
{{stub}} | {{stub}} |
2013年4月11日 (木) 04:07時点における版
コードコントラクト(英語:Code Contracts)とは、.NET Framework 4.0で追加された「契約による設計」を行うためフレームワークおよびツール群である。
概要
事前条件を表す「Contract.Requires()」と、事後条件を表す「Contract.Ensures()」を覚えておけば完璧である。コードコントラクトおよび契約による設計を極めたも同然かもしれない。
実のところコードコントラクトはD言語の目玉機能のパクリである。後発だけあってプログラミング言語レベルではなくランタイムレベルでの実装・対応という汎用性の高さ実現している。
注意
なお「契約による設計」を行うために必要な静的解析ツールやドキュメント生成ツールなどはVisual Studioのお高い上位エディションでのみ動かせるという仕様であり、これらのツールがないと実行時のエラーチェックの書き方が変わるくらいで特に意味をなさない。
将来的にVisual Studioの上位エディションを導入するというのであればコードコントラクトを用いて記述しておくのも手ではある。また、もしかするとオープンソースのツールも出てくるかもしれないし、エラーチェックの書き方が一様に均一化するというコーディング規約的な意味でも積極的に使ってみる価値があるかもしれない。
インストール
コードコントラクトで用いるライブラリ(クラス群)は.NET Framework 4.0に標準で搭載されているため、とくに何かをしなければならないということはない。
一方、静的解析などを行うためのコードコントラクトで用いるツール群(Visual Studioのアドオン)は.NET FrameworkおよびVisual Studioには標準では含まれず、MSDNのサイト上で別途配布になっているため、使用に際してはダウンロードのうえインストールしておく必要がある。
なお、.NET Framework 4.0の標準クラス群もコードコントラクトを使いまくっているため、Visual Studioにコードコントラクトのアドインをインストールした後は、自前で書いたソースコードにコードコントラクトが埋め込まれてなくとも、標準クラス群の使い方次第では静的解析でエラーと警告が出まくることがある。
名前空間
コードコントラクトに関するクラス群は System.Diagnostics.Contracts 名前空間に配置されている。