DbCについて調べた
背景
DbC(Design by Contract)というプログラミング設計手法について、達人プログラマーを読んでいて知った。 あらかじめ決めた契約を満たすようにプログラムを設計する手法らしい。
概要
定義を調べておこう Wikipediaを見てみると、
契約プログラミング(けいやくプログラミング、英: Contract programming)または契約による設計(けいやくによるせっけい、英: Design by Contract; DbC)は、ソフトウェアの正確性と頑健性を高めるためのソフトウェア設計の方法論である
DbCにおける契約は、
クラスのインスタンスとそのメソッドの利用に関する取り決めを明示するものらしい
ここでいう契約は、クライアントとサプライヤの間の契約として考えることができるようだ
以下の3つの契約で構成される
- 前提条件
クラスのメソッドが呼び出される前に満たされているべき条件 メソッドの利用者が果たすべき責任として考える事ができる - 事後条件
メソッドが終了した時点で保証される条件 これは、利用者がメソッドを呼び出した後にどういう状態になるかを示す。 契約になぞらえると、サプライヤが果たすべき責任として考える事ができる - クラス不変条件 クラスがインスタンス化された時点から破壊されることのない条件 この条件は、クラスのインスタンスが生成された時点から破壊されることのない条件を示す クラアントとサプライヤ双方の責任として考える事ができる
まとめ
DbCについて調べてみた
文章を書く練習も兼ねて、30分で記事を書こうと思ったが時間が足りなかった
さわりのみになってしまったので、もう少し時間をかけて調べてみたい
参考文献
Design by contract - Wikipedia
契約プログラミング - Wikipedia
KJR020's Blog