キモブロ

Please spy check please, Fucking retard

一応書いとくけど

Modelはそもそもいろんな案件で使い回しが聞く、これは当たり前である。しかし俺がいってるのはそういうことではなくて、ActiveRecordとDataMapperではその取り回し、扱いやすさに大きな差があって、DataMapperの方が扱いやすいということを書いている。

ActiveRecordは既存のデータベース設計があって、それに対して自動でスキーマ定義を読み込んでRubyオブジェクトっぽく扱えるようにするというライブラリなんだけど、一方DataMapperはコードでRubyのクラスとして記述すると、それがデータベーススキーマとして生成できる。


実際にコードで書くとこんな感じ

ActiveRecord

class Channel < ActiveRecord::Base
  def logic
  end
end

DataMapper

class Channel
  include DataMapper::Resource

  property :name, String
  property :viewers, Integer
  property :relays, Integer

  def logic
  end
end


ここで重要なのは、ActiveRecordのほうは実際には強くデータベース定義と依存しているのにも関わらずその定義がコード上に存在しないということ。このファイルをコピーしただけではまともに動かない。一方DataMapperはこのコードにすべてがある。データベースの定義からそのモデルのロジックまで。すべてのロジックがこのmodelに隠蔽されているため、別の案件に移行するのが極めて容易

  1. 眠い