作为一名 Ruby on Rails 开发人员,在设计/实现 Web 应用程序时,我从问题域中获取基本概念/实体并将它们作为模型来实现。通常,这些是从基本 ORM 类(例如ActiveRecord::Base
)派生的类,它们映射数据库表中的记录并添加包含实现与模型相关的业务逻辑的额外方法。
这种方法的优点是可以快速从问题域中找到与对象相关的所有业务逻辑,这样在模型类不大的情况下可以有效地理解应用程序的那部分工作原理。它还与所有表示逻辑分开。此外,由于 ORM,业务逻辑方法包含很少的特定于 DB 的代码,因此非常干净且易于阅读。
缺点是这样的类通常会增长到巨大的规模,因此很难作为一个整体来理解。
所以我的问题是:
- Clojure 生态系统是否提供了一些库来实现与 OOP 的 ORM 类似的功能?
- 组织此类代码的“Clojure 方式”是什么?
- 该方法的优点和缺点是什么?
- 一些文章/书籍/演讲可以解释和证明该方法的合理性?
- 是否有一些展示该方法的开源(示例)应用程序?