以下の内容はhttps://shinkufencer.hateblo.jp/entry/2019/04/07/233000より取得しました。


ActiveRecordの強みと弱みを見つめ直す

RailsActiveRecordってなんでいいんだっけ?ということを見つめ直す。

そもそもActiveRecordパターンとは

Martin FowlerのPatterns of Enterprise Application Architecture(通称 PofEAA)にて紹介されたデザインパターン

An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data. -P of EAA: Active Record

機械+意訳すると

データベーステーブルまたはビューの行をラップし、データベースアクセスをカプセル化し、そのデータにドメインロジックを追加するオブジェクト。

ということで、DBのテーブル定義とクラスを1対1で紐付けて、SQLでできる動作をそのクラスに実装する感じになる。

強みと弱み

強み

  • RDBのテーブルとモデルが1対1になるので関係性がわかりやすく、実際のデータ格納場所とモデルが直感的につなげやすい
  • ビジネスロジック部分も一気通貫で実装できるため、実装に必要なものが最低限になる

弱み

  • 密結合のため、テーブルの構造変化に順応しなければならないし、RDBの制約と密に連動してしまうので、切り離しが困難
  • モデルが複数のRDBのテーブルを参照してデータを作り出すケースの場合表現が困難
  • 密結合のため、モデルの内容が多様化し、モデル=テーブルが維持できなくなってくると破綻する

関連リンク




以上の内容はhttps://shinkufencer.hateblo.jp/entry/2019/04/07/233000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14