Ruby勉強会@関西 第3回レポート

1日遅れですがレポートを。(やたら長いのです・・・)
前日夜更かしして環境整備して、新大阪に向かいました。が、見事に迷いました・・・一旦目的のビルにいったんですが、会場となる会社名を見落として、ここにはないって通り過ぎちゃったんすよね・・・ということで10分遅れでの到着。きちんと到着されていたみなさん、ご迷惑をおかけいたしました。

で、到着してみて圧巻だったのが、25名程度いらっしゃったんですが、数名の方を除いてみんなノートPC持参。しかも、無線LANのアクセスポイント準備済み(もちろんそれを経由して外部のネットワークがつかえる!)。講師の方の話を聞くだけでないという勉強会というのは初めてだったので、かなり新鮮でした。

最初に先日の列車事故でお亡くなりになられた石井さんの悼んで1分間の黙祷。この勉強会には1回、2回とも出席されていたそうで、みなさん言葉をなくしてらっしゃいました。

黙祷の後、Railsの環境整備に突入。数名の方が時間の関係等で事前準備ができなかったということで、その中のお一人のPCの画面をプロジェクターでみんなで見ながらセットアップ手順を再確認。Win環境でのセットアップということで、以下のような手順となりました。

  • ActiveScriptRubyのインストール(ここで、「c:\Program Files\ruby」ではなく、「c:\ruby」とかにいれるのがコツだそうです。パスに空白が入ってるのはgemsがうまくうごかないとのこと)
  • MySQLのインストール
  • Ruby/MySQLのインストール
  • rubygemsのインストール
  • Railsのインストール

Windowsでもお手軽に環境整備できるなーという感じでした(私の場合、coLinux+FCという組み合わせにてこづっていただけですから・・・)。今回は、Railsに含まれているWEBrickを使うので、Apacheのインストールはしませんでした。

さて、環境が整備されたところで、チュートリアルをみんなでやっていこうということに。id:babieさんが以下のURLで見れるものを日本語訳されてきてました。お一人で訳されたとの事。GJ! (その場で配られた日本語訳は、Wiki等で公開されるそうです。勉強会にこられなかった方、楽しみにお待ちください)

http://darkhost.mine.nu:81/~vince/rails/tutorial.html

チュートリアルを一通りやった感想ですが、やっぱ簡単な手順でアプリケーションができますね。その簡単さを作り出してるのは、膨大なデフォルト動作規定のためですね。なにもしなければこうなるというデフォルト動作が細やかに規定されているので、そのルールをまもれば書かなくてもいいというのがなかなか素敵。(この点では、Seasar Dayでひがさんが説明されていたEJB3の流れとも相通じるところがあるなーと思った)

で、こういうチュートリアルをやった後に思う感想は、「簡単なアプリは簡単にできるのはわかったけど、複雑なものも簡単にできるの?」ということですね。Railsはコマンドで作ったControllerにメソッドを追加していくという流れでアプリケーション制作するので、問題となるのは「Controllerをどの単位できっていくか?」ということかなと。1つのControllerに何でもかんでもやらせてしまうと見通しが悪くなるなーと。

デフォルトの呼び出し規約は以下のようになってます。URL的に「どのController」の「どのAction」を実行するかという感じ(idが指定されていればモデルの特定のidに対して編集するという感じになる)。この場合のActionというのはControllerクラスのメソッド名直結です。

/[controller]/[action]/[id]

StrutsのActionと比べるとRailsのControllerは1つのコーナーのActionをまとめたものですね。入力、確認、完了の3つのActionをつくるんではなくて、それを束ねるControllerを作るって感じ(チュートリアルではもう少し大きな単位でControllerをつくってました)。気を抜くと何でもかんでも1つのControllerにいれたくなるが、それでは巨大なControllerができあがってしまう。複数人で共同作業をする場合、みんなが1つのControllerを編集することになるのはつらいので、そういった点でも適度に分けた方がいいと思うけど(このあたりの設計方法論の確立も必要ですね)。

babieさんのチュートリアルの説明が終わった後にmoriqさんからRailsAjax対応に関して説明がありました。これまた簡単にERbのタグとうまく連携させてAjax化できるなーと関心。が、やっぱり思うのは、Railsでもやっぱり問題はテンプレートエンジンだろうな。ロジックが手軽につくれて、DB操作も簡単にできるとなれば、テンプレートも気軽にそれ単体でブラウザ確認したくなるだろう。ERbタグがばりばりに入ったものではそれはかなわない。逆に言えば、そういったテンプレートエンジンが標準でつかえるとなれば、中の中規模くらいのアプリまではRailsでばんばん組めるようになるっしょ。Rubyには優れたテンプレートエンジンがいくつも存在してるのでそれらとの組み合わせが標準になることを期待(というかそういう流れなんでしたっけ?)。

こういった感じで約4時間の勉強会が終わり、懇親会に突入。みんなほんとにRubyが好きですね。PHPの集まりでは仕事でつかってますという人が多くて、言語的に好きか?といわれると・・・という人も多いと思うのだが、ここでは明らかに言語として好きであるというのが1番ですね。で、Railsに寄せる期待も大きいようで、言語は違ってもWebアプリケーションを如何に簡単に短期間でつくれるか?というのはやっぱり基本的な欲求なんすね。

懇親会が終わった後、引き続き2次会が行われる流れになったんすが、私はもう眠さ限界状態だったので、今回はここで引き上げました。で、家に帰って爆睡と。

今回の勉強会ですがほんと雰囲気がよくて、いい感じでした。今後も続けて参加させてもらおうと思います。けど、まずは自分のRuby力をあげないとね。がんばらないと。