Каково правило именования частей Rails?

Некоторые части Rails начинаются с "Active":

  • ActiveRecord
  • ActiveModel
  • ActiveSupport

И некоторые части Rails начинаются с "Action":

  • ActionPack
  • ActionView
  • ActionMailer

Почему? Почему все они не имеют одного и того же префикса? И что означают "Актив" и "Действие" в этом контексте?

DHH теперь строит "ActiveJob", и как он узнал, не должен ли он быть "ActionJob"?

Ответ 1

Как я смотрю на это, снова это только моя перспектива (единственный человек, который может дать подтвержденный ответ, - DHH:)),

Когда я вижу Action* как ActionPack (ActionView и ActionController являются двумя основными компонентами ActionPack) или ActionMailer, они относятся к действию, выполняемому внутри приложение Rails - это конкретное действие контроллера или отображение определенного вида или даже отправка электронной почты. Таким образом, Action представляется точным префиксом здесь, поскольку эти пакеты обозначают что-то делать.

Когда я вижу Active* как ActiveRecord, ActiveSupport или ActiveModel и т.д., это как-то связано с предоставлением некоторых полезных функций вашей бизнес-логике приложений Rails, будь то утилиты или ORM, чтобы облегчить разработку приложений Rails.

Надеемся увидеть более интересные ответы по этому вопросу. Здесь мы можем начать анализировать.

Ответ 2

Действие * предназначено для пользователей, которые смотрят на вещи (представления, контроллеры, почтовые программы) и Active * являются компонентами, поддерживающими компоненты Action *

Ответ 3

ActiveRecord основан на программном шаблоне, разработанном Мартином Фаулером под названием "Активная запись" (wiki).

Я знаю, что это не совсем объясняет соглашение об именах, но объясняет, откуда взялось это имя.