Ruby on Rails 開発者として、Web アプリケーションを設計/実装する際に、問題のドメインから本質的な概念/エンティティを取得し、それらをモデルとして実装しています。通常、これらはベース ORM クラス (例: ActiveRecord::Base
) から派生したクラスであり、データベース テーブルからレコードをマップし、モデルに関連するビジネス ロジックを実装する追加のメソッドを追加します。
このアプローチの利点は、問題のドメインからオブジェクトに関連するすべてのビジネス ロジックをすばやく見つけることができるため、モデル クラスが大きくない場合でも、アプリケーションのその部分がどのように機能するかを効率的に理解できることです。また、すべてのプレゼンテーション ロジックから分離されています。さらに、ORM のおかげで、ビジネス ロジック メソッドには DB 固有のコードがほとんど含まれていないため、非常にクリーンで読みやすくなっています。
不利な点は、そのようなクラスが巨大になることが多く、全体として理解するのが難しいことです。
だから私の質問は:
- Clojure エコシステムは、OOP の ORM と同様の機能を果たすいくつかのライブラリを提供していますか?
- そんなコードを整理する「Clojure流」とは?
- アプローチの長所と短所は何ですか?
- アプローチを説明し、正当化する記事/本/講演はありますか?
- このアプローチを紹介するオープン ソース (サンプル) アプリケーションはありますか?