デザインレシピ
「デザインレシピ」という言葉は、浅井健一先生の『プログラミングの基礎』ではじめて知りました。ソフトウェア(特に関数)の設計方法は体系化できるという考えです。
元ネタは有名な「How to Design Programs: An Introduction to Programming and Computing」だそうです。使用している言語はSchemeですけども、考え方は同じです。
- 問題分析(Problem Analysis)
- シグニチャ、目的文、ヘッダ(Signature, Purpose Statement, Header)
- 関数の例(Functional Examples)
- 関数のテンプレート(Function Template)
- 関数の定義(Function Definition)
- テスト(Testing)
ペンシルバニア大学の授業の講義ノートにも似たようなものがありました。上記のデザインレシピを参考にしたと書いてあります。こちらの使用言語はOCamlです。
- 問題の理解(Understand the problem.)
- インターフェイスの形式化(Formalize the interface.)
- テストケースの記述(Write the test case.)
- 求められる挙動の実装(Implement the required behavior.)
浅井先生のスライドでは以下の表記でした。
- 目的:関数の目的を考え、ヘッダを作成する。
- 例:関数の入出力の例を作成する。
- 本体:関数本体を作成する。
- テスト:作った関数の動作を確認する。
デザインレシピ、入力ページというものもあります。
テストを作るところはTDDと同じですが、その前後の思考過程についても考えられているところが有益だなあと思います。
あわせて読みたい
- プログラミングの基礎 (Computer Science Library)
- How to Design Programs: An Introduction to Programming and Computing (The MIT Press)