Что такое бизнес логика? - PullRequest
1 голос
/ 03 июня 2011

Может ли термин бизнес-логика использоваться для описания:

ролей учетной записи (администратор, конечный пользователь, незарегистрированный пользователь, модератор), которые управляют тем, какие данные доступны конечному пользователю?* Если нет, может ли кто-нибудь дать предложение, чтобы описать вышеописанную ситуацию, и исправить меня в точности, что означает бизнес-логика?Чем он отличается от бизнес-правил?Примеры?Вы бы поместили уровень бизнес-логики в контроллер в Rails / RoR?

Ответы [ 4 ]

4 голосов
/ 03 июня 2011

Речь идет о контроле доступа на основе ролей, который является типом бизнес-логики.

Бизнес-логика - это операции, выполняемые при вызовах моделей.Бизнес-логика в модели, а не в контроллере.

1 голос
/ 04 июня 2011

Основная идея - сохранить ваши контроллеры настолько тонкими, насколько это возможно. В основном это означает, что контроллер принимает данные из сети, устанавливает переменные, необходимые в представлении, и выбирает представление.

Процесс определения роли, администратора и т. Д. - это вопрос, который нужно задать модели ... возможно, что-то вроде пользователя или роли и т. Д. Логика того, как это определяется в моделях. Контроллер координирует с этой информацией выбор вида или перенаправление, если это не разрешено, и т. Д.

Иногда я оказываюсь в контроллере, выполняя сложный запрос для получения определенного набора записей. Это запах кода, который мне нужен, чтобы взять этот запрос и создать область или метод в модели где-нибудь.

Если вы обнаружите, что в модели много вызовов, возможно, пришло время перенести ее в модель. Если вы обнаружите, что открываете много записей, принимаете решения и обновляете записи, возможно, пришло время перейти к модели.

Если необходимо решить, какой вид показывать пользователю (или показывать это!), Контроллер просто в порядке.

0 голосов
/ 03 июня 2011

Бизнес-логика для меня означает что-то особенное в бизнес-процессах, которые вам нужно реализовать в Ruby.

Например, если у вас есть сайт, где люди покупают билеты, у вас может быть бизнес-процесс, который говорит: «Пользователь может купить только один билет до дня мероприятия, после которого он может купить до 5, если билеты еще доступны ». Поэтому вы должны написать это в Ruby - это код Ruby, который реализует бизнес-правило.

Напротив, в той же системе у вас может быть код, который разбивает заявку в виде PDF. Я бы не стал рассматривать эту «бизнес-логику», потому что это не правило бизнес-процесса ... да, бизнес-ценность заключается в печати билетов в формате PDF, но дело не в том, как бизнес-процессы работают (или должны работать), чтобы обеспечить чтобы лучше обслуживать своих клиентов.

Где, как правило, покупать только 1 билет? Это политика этого конкретного бизнеса, бизнес-правило.

Ваш пример, как указал @ Vinnyq12, является скорее описанием контроля доступа ... которое, можно сказать, может быть типом бизнес-логики, да.

0 голосов
/ 03 июня 2011

Business Logic - это уровень вашего приложения, на котором написаны все контрольные заявления вашего приложения.Например, у вас есть простое приложение для продажи билетов онлайн.Теперь, когда вы разрабатываете приложение, у вас есть логика для продажи билетов, например, дата бронирования не должна быть праздничной.Таким образом, это правило, что вы не будете продавать билеты на праздник, является не чем иным, как бизнес-логикой.Подробности смотрите на этом сайте http://en.wikipedia.org/wiki/Business_logic

...