Rails部分背后的命名规则是什么?

一些Rails的部分以“Active”开头:

  • ActiveRecord的
  • 加载ActiveModel
  • 的ActiveSupport

一些Rails的部分以“Action”开头:

  • ActionPack的
  • 的ActionView
  • 的ActionMailer

这是为什么? 为什么它们都没有相同的前缀? 在这种情况下,“主动”和“行动”意味着什么?

DHH现在正在建立“ActiveJob”,他怎么知道它不应该是“ActionJob”?

我看待它的方式,这只是我的观点( 唯一可以给出确认答案的人是DHH 🙂 ),

当我看到Action*ActionPackActionViewActionControllerActionPack的两个主要组件)或ActionMailer ,它们属于在Rails应用程序中执行的操作,无论是控制器特定操作还是显示特定视图甚至发送电子邮件。 因此, Action似乎是精确的前缀,因为这些包表示做某事。

当我看到像ActiveRecordActiveSupportActiveModelActive* ,它以某种方式与为Rails应用程序提供一些有用的function业务逻辑是实用程序方法还是ORM支持类似的附加组件以促进Rails应用程序开发。

希望在这个问题上看到更多有趣的答案。 这是我们可以开始分析的地方。

Action *用于面向用户的东西(视图,控制器,邮件程序),Active *是支持Action *组件的后端组件

ActiveRecord基于Martin Fowler创造的名为“Active Record”( 维基 )的软件模式。

我知道这并没有完全解释命名约定,但它确实解释了名称的来源。