未熟学生エンジニアのブログ

TetsuFeの個人開発ブログ

TetsuFeはテツエフイー と読みます。FlutterやWeb周り全般、チーム開発について語るブログ

active recordパターンについて調べてみた

active recordパターンとは

  1. データ、2. ドメインロジック、3. データベースアクセスをカプセル化したメソッドの3つを一つのクラスとして作成するパターン。

RailsではActiveRecordという名前のクラスがありますが、これはActiveRecordパターンという一般的なパターンに基づいたもので、DjangoなどでもActiveRecordパターンは用いられています。

https://docs.djangoproject.com/en/3.0/misc/design-philosophies/

オブジェクトがそのままデータベースと一体化しているような形で操作できるため、非常に便利です。

ただし、オブジェクトのフィールドがデータベースのカラムに一致していないような場合にはかえって一部のフィールドだけ別で管理する必要が生じて複雑になってしまうため、万能とも言い切れません。

原典?

https://www.martinfowler.com/eaaCatalog/activeRecord.html

また、PoEAA(エンタープライズアプリケーションアーキテクチャパターン)で詳しく解説があります。

もう少し詳しい記事

https://www.techscore.com/tech/Ruby/Rails/other/designpattern/2/