Есть ли примеры приложений Rails, где бизнес-логика хранится в отдельных классах, чем ActiveRecord?
Недавно в сообществе Ruby появились сообщения в блоге, твиты и комментарии о преимуществах использования лучшего дизайна OO и, в частности, отделить бизнес-логику от логики продолжительности. Особенно для более крупных приложений, я считаю это отличным советом.
Мне интересно найти полный пример Rails-приложения, в котором бизнес-логика была полностью отделена от ORM (ActiveRecord или иначе). В частности, мне интересно посмотреть, как можно обрабатывать ограничения БД, проверку бизнес-правил, очистку параметров, классы обслуживания и т.д.
Кто-нибудь знает приложение с открытым исходным кодом, подобное этому?
Ответы
Ответ 1
Я знаком с Джеффом Казимиром (@j3). Вот его presentation от Railsconf 2011. Он также создал драгоценный камень под названием draper, который использует некоторые из этих идей. Райан Бэйтс сделал рельсы, используя его так надежно, что дает вам несколько идей.
Ответ 2
Насколько я знаю, железнодорожники подходят к моделированию бизнеса совершенно по-другому. Они более или менее сознательно управляют дизайном с точки зрения данных. Это может показаться противоречивым и плохим, если мы будем придерживаться, например, объектная ориентация.
Но, как говорят христиане: "свобода исходит из ограничений".
Если мы можем выразить наш домен в CRUD, как мода, мы значительно уменьшаем техническую сложность, получаем REST бесплатно и т.д.
Это сообщение в блоге объясняет это лучше, чем я (не пропустите от DHH)
И вот немного проницательности от Scott Belware по этой теме.
Но если вы настаиваете и хотите немного поэкспериментировать, вы можете попробовать data-mapper.
К сожалению, еще не пробовал это, поэтому - не могу комментировать.