Rails部分背后的命名规则是什么?
一些Rails的部分以“Active”开头:
- ActiveRecord的
- 加载ActiveModel
- 的ActiveSupport
一些Rails的部分以“Action”开头:
- ActionPack的
- 的ActionView
- 的ActionMailer
这是为什么? 为什么它们都没有相同的前缀? 在这种情况下,“主动”和“行动”意味着什么?
DHH现在正在建立“ActiveJob”,他怎么知道它不应该是“ActionJob”?
我看待它的方式,这只是我的观点( 唯一可以给出确认答案的人是DHH 🙂 ),
当我看到Action*
像ActionPack
( ActionView
和ActionController
是ActionPack
的两个主要组件)或ActionMailer
,它们属于在Rails应用程序中执行的操作,无论是控制器特定操作还是显示特定视图甚至发送电子邮件。 因此, Action
似乎是精确的前缀,因为这些包表示做某事。
当我看到像ActiveRecord
, ActiveSupport
或ActiveModel
等Active*
,它以某种方式与为Rails应用程序提供一些有用的function业务逻辑是实用程序方法还是ORM支持类似的附加组件以促进Rails应用程序开发。
希望在这个问题上看到更多有趣的答案。 这是我们可以开始分析的地方。
Action *用于面向用户的东西(视图,控制器,邮件程序),Active *是支持Action *组件的后端组件
ActiveRecord基于Martin Fowler创造的名为“Active Record”( 维基 )的软件模式。
我知道这并没有完全解释命名约定,但它确实解释了名称的来源。