「RailsによるアジャイルWebアプリケーション開発」を少し読んで

RailsによるアジャイルWebアプリケーション開発 第3版

RailsによるアジャイルWebアプリケーション開発 第3版

買いました。楽しみにしてました。フタを開けてみれば予想以上。これは良書。今のところ、簡単なオンラインストアを開発するパートの終盤まで読み進めたぐらいで、本書の半分にも達していませんが、面白くてガンガン進んじゃってます。最後まで読んでから感想は書きたいと思いますが、読んでて気になったところをピックアップ。

今のRails開発がわかる!

原書が今年3月の発行で、本書は今月出たばかり。本文ではRails2.2系を対象としているので、コードのほとんどは現2.3系にも対応している。たまに2.3系で仕様変更となった箇所が出てくるが、その都度訳注で解説されるという安心設計。とりあえず2.3系を使っている今なら、これ一冊で事足りる。和訳が素晴らしい仕事してくれてる。

本書の執筆にはRails作者のDavid Heinemeier Hanssonも参加しているため、Railsのイディオムがこれでもかと詰まっている。「ここはこういう書き方もできる。けどね、そうすると○○なとき、こういう困ったことになるんだ」といった具合に。たまに疑問に思うことについても、必ず根拠が示されていたり、少し後の方で「実は…」と解説されていたり、こういう本を読むときのモヤモヤ感が全くない(今のところ)。本文にも書いてあったが、Railsは新しく機能が追加されたときは「これは使える!」と思われていたけど微妙だったり、逆に「こんなの必要なの?」って機能が実はかなり役立ったり、ということが多いよう。Railsが発表されてから数年が経ち、ある程度そういった知識が詰まれた今だからこそ、"今のRails開発"を体系化できている、のだなぁと思った。

筆者たちのエディタ・IDEに対する考えも読めた。案の定TextMateも紹介されてたw

アジャイル

よくわからないアジャイル。本書の後半の詳説パートで出てくるのかも知れないけど。要は、開発チームと顧客が面と向き合って話し合い、要求に対してすぐ手を動かし、成果を見せること。そしてその後もすぐ手を動かせる、つまり機能追加を容易に行えるようなコーディングを心がける。といった捉え方でよろしいでしょうか?

オンラインストア開発パートでは、「彼女」と呼ばれる顧客が登場する。ようやく形になったアプリケーションに少し満足げな開発者たちに対し、彼女はそれを使う側としてはもっともな(?)要求をさらに突きつけてくる。しかし少し手を加えるだけで、またその要求に応える機能を実装でき、すぐに実際に動くものを見せられる。こういった流れが多い。

全くわかっていない僕からすると、そんなもんなのかなぁ?といったところ。

Ajax

基礎の方では全く触れられていなかったAjax。実はここに期待していた。本書では「今日日Ajaxも使えない男の人って…」というような前フリで、わずかながらRailsでのAjaxについて語られている。読んで分かったのは、既に実装が済んでいる部分に対し、少しずつAjaxを導入していくのが良いそうだ。読んでいても、確かにこれは少しずつ実装して確認していかないと、面倒なことになりそうと思った。

例えば、本書ではオンラインストアのショッピングカートの更新を、まず静的なアクションとして実装する。しかしその後Ajaxでカートの中身を動的に(フェードアウトなんかも駆使しちゃって)更新できるようにする。一見、先ほど作った静的なものが無駄になってしまったかと思った。しかしその部分も、少し手を加えるだけでJavascriptを無効にしているユーザに対するアクションとできる。もしこれが逆だったら、つまり最初からAjaxを用いたカートを実装し、その後Javascriptに対応していないブラウザに対しての例外処理を作るとしたら…。もちろんそれでもうまくいくだろう。だがもし何か問題が起きたら、Ajaxの部分もあるだけに、相当な気力のいるデバッグ作業となるだろう。

少しの機能を付け加えていく。とりあえず動くものを作っていく。これらが開発パートでは一貫されている。

レビューの通り、入門書として最適なのか

この本でRailsRubyを一緒に学んじゃお☆という方にはお勧めできない。Rubyがわからないと読めない。コードを追っていけば、オンラインストアなるものは出来上がるが。

Railsを学ぶ本としては素晴らしいと思う。が、前述の基礎よりは取っつきにくいかなぁという印象。だって文字いっぱいだもん(開発パートが少し薄い)。もちろんそれはロジックを説明しているからなのだが、これがまた結構な読み応えがある。文系プログラマとかだと、基礎のように、コーディング主体で実際にアプリを作っていく本が良いと思う。それで疑問に思うことがあるなら本書を読んで学ぶ、と。それ以外の人にとっては良いと思います。


こんなもんでしょうか。僕としては詳説パートが楽しみで楽しみでならないのですよ。