Rails勉強会@東京第13回

忘年会で最近更新があまりないと言われてしまったのでちゃんとログぐらいは書くことにします。

Rails勉強会@東京第13回に参加してきました。

AWDwR 2ndを読む

前半はかわむらさんのAgile Web Development with Rails 2nd Editionをみんなで読みながら具体的にはどの辺りが変わったのかを比べたりしました。記憶を便りに比較したので必ずしも正しくない点はご了承ください。

  • まだ出ていないRails v1.2に準拠
  • Depotの作成ではRJSテンプレートを利用したAjaxによるカートの作成が加わっているようでした。
  • ActiveRecoardのRelationのところがだいぶ書き変わっている
    • habtmは一応載っている
    • has_many :throughとhabtmの違いは外部キー以外にカラムを持つかどうかで分けているのではないか
  • ActionPackがActiveControllerとActionViewの二つの章に分けられた
    • ActiveController
      • RESTの説明にやたらとページが割かれている

とかが気になった点でした。

RSpec

前回参加してなかったし、セッションがあまり埋まってなかったのでid:moroさんに頼んでRSpecをもう一度やってもらいました。

RSpecとTest::Unitの何が違うのか?順番が入れ替わっただけじゃないか」という人もいるのだけれど、自分的にはそれだけで全然読みやすさも書きやすさも違うのでRSpecを使う理由になると思う。それ以外のメリットとしては、ContextごとにSpecificationをリストできるというところ。でもこれは自分ののところだと何故か出力できてなかったりする。Test::Unitだとリテラルであるところが文字列なので日本語を書けるという点もメソッド名に悩まなくなったりしてメリットなのだそうだ。

ちなみにRSpecは0.7から大幅に仕様が変わってそれ以前のものは0.7以降では動かなくなっていたりする。ということで個人的にはRSpecのファイルには

require 'rubygems'
require_gem 'rspec', '> 0.7'

を他の人も入れてほしいのだけど、角谷さんによるとtrunkはまだまだ仕様変更しそうな感じであるしRSpecを使う利点は専用のコマンドがあることでテストに対するいらない障壁がなくなることにもあるので余計なものは書かないという方針らしい。

RSpecを使う難点と言えば、ライブラリを使っていた際にTest::Unitであれば色々な拡張されたAssersionがライブラリで提供されている場合もあるのだけど、RSpecのメソッドまで用意されていることは少ないというところがある。RSpecの知名度が上がっていけば解決される問題なのかなと思ったり。