「Clojureでトップダウン開発」

2冊目

2014年5月19日に、2冊目の電子書籍「Clojureでトップダウン開発」をAmazonで出版しました。100円です。

関数型プログラミングの基礎知識については、最初の書籍か、「関数型プログラミング概論」を参照して下さい。

表紙

jacket

今回の表紙猫は、ターちゃんです。

ku

「はじめに」より抜粋

本書では、Clojure向けのテスティングフレームワークMidjeを使ったトップダウン開発の流れを紹介します。教材としてシンプルな数当てゲームを開発します。小規模ながらGUIを備えたデスクトップアプリです。読者として、Clojureと関数型プログラミングへの入門を済ませたプログラマを想定しています。テーマは地味ですが、1つのアプリをゼロから作りあげるので、「関数型プログラミングの基本は理解できたけど、どうアプリを作ればいいのか分からない」という方の参考にもなると思います。

なぜトップダウンなのか? 本書を書くきっかけは、動画サイトVimeo.comで、Midjeの作者Brian Marick氏によるデモビデオを見たことでした。普通、トップダウンかつテストファーストで開発しようとすると、スタブ/モック作りの負担が重くなりがちです。何しろ、呼び出す関数すべてについて、その偽者と本物を作る破目になりますからね。しかしMidjeには、この負担を軽減する仕組みがあるのです。関数型プログラミングや(マクロ機能を備えた)Lisp系言語にはボトムアップの方が馴染むと思いますが、Midjeを使えばトップダウンでも個々の関数をテストしながら開発を進めることができます。

本書では、メイン関数から始めて完全なトップダウンで開発を進めていきます。その過程では、ほぼ全ての関数に対してユニットテストを行います。でも誤解しないで下さい。別にボトムアップ開発が悪いと言うつもりはありません。適材適所で使い分ければ良いと思います。

もくじ

  1. 数当てゲームMoo
    • ルール
    • 仕様と設計
  2. 準備
    • プロジェクトMoo
    • テスティングフレームワークMidje
    • テストの位置づけ
  3. メイン関数
    • -main
    • Midjeの基本
  4. 初期化
    • おさらい
    • init-model
    • init-view
  5. Shell起動
    • run-shell
    • リファクタリング
    • TODOメモ
  6. Readerで読む
    • read-command
    • command-from-line
    • テストの改良
  7. Handlerで処理
    • handle-commandとprint-resultのI/F
    • handle-command
  8. 結果をPrint
    • print-result
    • result-text
  9. 最終段階
    • create-game
    • calc-state
    • command-fits-state?
    • gen-code
    • moo-fn
    • match-mark
  10. 結合テスト
    • 関数ツリー
    • handle-commandの結合
    • 全体の結合
  11. GUIモード
    • GUI作戦
    • コントローラ
    • ビュー ~ 作戦
    • ビュー① ~ ウィンドウ表示
    • ビュー② ~ Listener登録
    • ビュー③ ~ 結果表示
    • GUIモードのテスト
    • 遊んでみる
  12. 結び

「あとがき」より抜粋

前作「Clojureによる、初めての関数型プログラミング」に続き、Clojureネタで第二作目を書いてみました。「はじめに」でも述べた通り、きっかけはBrian Marick氏のデモビデオです。関数型プログラミングではボトムアップ開発が必須という印象(これは誤解ですが)を持っていた筆者にとっては新鮮な驚きでした。「Clojure TDD demo Robozzle」でググると見つかるので、ぜひご覧下さい。プログラマーなら、英語が分からなくても何となく理解できる内容だと思います。

正誤表

そのうち書くかもしれません。

Last modified:2014/05/20 11:45:15
Keyword(s):
References:[FP: 関数型プログラミング]
This page is frozen.