まだ計画段階。
Ruby はやたらめったら動的に (実行時に) 決まるので, エラーチェックが難しい。
特に, オブジェクトには型があるのに, 変数に型がないため, メソッド定義の冒頭でだいたい型チェックが必要。
ちょっとググっただけでも, 繰り返し同じ話題が出てくる。
プログラミング言語 Eiffel が導入した概念 (Design by Contract). Eiffel Software - The Home of EiffelStudio and EiffelEnvision
次のスライドは, 契約プログラミングがどういったものか, と .netでの実現例;
Ruby用語集 によれば,
- Eiffel
- オブジェクト指向プログラミング言語。matzは昔この言語の作者の 本(Object-oriented Software Construction 邦訳「オブジェクト 指向入門」)を読んで目から鱗が落ちたらしい。その割にはRubyは Eiffelに似ていない。似ているのはブロックがendで 終るところと、rescueという予約語だけか。
とても残念なことに, 契約プログラミングのような重要な概念は, 目に入らなかったらしい。