Gem 为什么很多 Ruby Gem 命名都已 Active 开头?

Folyd · 2019年02月03日 · 最后由 nowherekai 回复于 2019年02月18日 · 5600 次阅读

就我知道的就有 Active Record, Active Merchant 等等。

我感觉这你得问 DHH

ecnelises 回复

DHH 有没有相关的博客或文章讲到这一点?

😄 因为 A 开头的单词会排在列表前面

你说的是 rails,不是 ruby

好像 active record 是一种 orm 的实现

ActiveDHH 😎

8楼 已删除

以下内容贴自维基百科

https://zh.wikipedia.org/wiki/Active_Record

Active Record 是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。Active Record 和 Row Gateway 十分相似,但前者是领域模型,后者是一种数据源模式。关系型数据库往往通过外键来表述实体关系,Active Record 在数据源层面上也将这种关系映射为对象的关联和聚集。在 Martin Fowler2003 年出版的《企业应用架构模式》一书中详细叙述并命名了本模式。[1]

Active Record 适合非常简单的领域需求,尤其在领域模型和数据库模型十分相似的情况下。如果遇到更加复杂的领域模型结构(例如用到继承、策略的领域模型),往往需要使用分离数据源的领域模型,结合 Data Mapper(数据映射器)使用。

Active Record 驱动框架一般兼有 ORM 框架的功能,但 Active Record 不是简单的 ORM,正如和 Row Gateway 的区别。著名的例子是全栈(Full Stack)Web 开发框架 Ruby on Rails,其默认使用一个纯 Ruby 写成的 Active Record 框架来驱动 MVC 中的模型层。

  1. Fowler, Martin. Patterns of enterprise application architecture. Addison-Wesley. 2003. ISBN 978-0-321-12742-6.
indicolite 回复

不过我觉得 Rails 的 ActiveRecord 是比 Martin 的 AR 模式复杂很多的实现,用来实现复杂的领域模型也没问题,但是要求领域模型和数据库表之间的一一对应,不然会有些麻烦。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册