ActiveRecordの不満点

最近はDataMapperSequelといった新興O/R Mapperに興味があるんだけど、それもこれも、自分の中でActiveRecordに対する不満点がだんだんと出てきたことが原因。個人的には、Railsのすごさの半分以上はActiveRecordのおかげと思っていて、そのくらいActiveRecordが便利であるのは確かなんだけど、多少使い慣れてくると欠点も見えてくる。

個人的ないちばんの不満点は、モデルの情報がいろんなところに分散していること。RailsActiveRecordを使うと、

  • DML (create tableとかalter tableとか) はmigrationスクリプトに、
  • カラムの名前やデータ型はデータベース (or schema.rb) に、
  • リレーションやバリデーションはモデルクラスに、

それぞれ分散してしまう。どうもこれが自分の性に合わない。あるモデルについて知りたいとき、1ヵ所を見れば必要な情報がすべて分かるような形になっていてほしい。他人が作ったRailsアプリのメンテをするときに、いちいち3ヵ所も参照しないといけないのはめんどくさい。

そんなわけで、他のO/R Mapperがどうなっているのかを勉強しようと思うんだけど、なかなかできないので、RubyKaigiのサブセッション見て勉強させてもらうつもり。

#よく見たら、RubyKaigi2008のページ右側では、まだライトニングトークが「募集しています」になってるね。