Как я могу реализовать модуляризацию в приложении Rails?

Разбить большое приложение Rails на более мелкие приложения?

Модульность приложений Rails

Лучшее Практика структурирования «большого» приложения Rails

У меня быстрый вопрос о модульности в большом приложении Ruby on Rails.

Настройка:

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

Вопрос:

Как эффективно разбить это приложение на модули?

Возможные ответы:

Поскольку модули используют общие модели и представления с основным приложением (и друг с другом), для меня имеет смысл объединить их в одно приложение. Однако по мере роста приложения это, очевидно, приведет к проблемам. Мне это подсказывает либо пространство имен контроллеров и моделей « Как организовать контроллер в умеренно большом приложении Rails? », либо использование движков « Модуляризация приложений Rails ».

Поскольку модули находятся в активной разработке, очень полезно использовать на них генераторы рельсов, что, кажется, делает использование движков проблемой. Также кажется, что, хотя движки полностью поддерживаются с точки зрения Rails, они по-прежнему кажутся довольно хакерскими в отношении отсутствия поддержки генераторов и миграции баз данных. Есть ли у кого-нибудь опыт успешной разработки двигателей? Похоже, что движки были бы отличным решением, если бы у вас было работающее приложение и вы хотели бы перенести его в плагин (т.е. скопировать и вставить код), но если вы активно его разрабатываете (меняете модели и т. Д.), Это будет сложно.

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

11
задан Community 23 May 2017 в 11:50
поделиться