実装Note - 契約プログラミング

まだ計画段階。

変数が型を持つ

Ruby はやたらめったら動的に (実行時に) 決まるので, エラーチェックが難しい。

特に, オブジェクトには型があるのに, 変数に型がないため, メソッド定義の冒頭でだいたい型チェックが必要。

メソッド引数での型検査

ちょっとググっただけでも, 繰り返し同じ話題が出てくる。

メソッド引数以外

TODO:

契約プログラミング

プログラミング言語 Eiffel が導入した概念 (Design by Contract). Eiffel Software - The Home of EiffelStudio and EiffelEnvision

次のスライドは, 契約プログラミングがどういったものか, と .netでの実現例;

Ruby用語集 によれば,

Eiffel
オブジェクト指向プログラミング言語。matzは昔この言語の作者の 本(Object-oriented Software Construction 邦訳「オブジェクト 指向入門」)を読んで目から鱗が落ちたらしい。その割にはRubyは Eiffelに似ていない。似ているのはブロックがendで 終るところと、rescueという予約語だけか。

とても残念なことに, 契約プログラミングのような重要な概念は, 目に入らなかったらしい。