契約プログラミングとは,
プログラムコードの中にプログラムが満たすべき仕様についての記述を盛り込む事で設計の安全性を高める技法
だそうです.(引用元:契約プログラミング)
要するに引数や返り値に関して,○○という型のXXX~YYYまでの値を許容している,ということを関数に対して定義することになります.
これによって各関数の責任がはっきりします.
責任がはっきりすることで,呼び出し元・呼び出し先で同じようなチェック処理を行うといったDRY原則に反した処理がなくなります.
(無駄がなくなる,生産性が上がる)
ビルドインパッケージとして導入される言語は少ないようですが(メジャーどころではなさそう),
追加でパッケージを導入することで様々な言語で使うことができるそうです.
(Ruby,Java,Pythonなどなど)
使ってみるのはありですね.