Мой Rails Engine зависит от моего родительского приложения


person Nikhil    schedule 24.04.2015    source источник


Ответы (1)


На мой взгляд, есть два основных варианта использования движков Rails:

1) Повторное использование функций в нескольких приложениях. Это наиболее распространенный вариант использования.

2) Предоставьте путь миграции для разделения монолитного приложения на более мелкие приложения (микросервисы). Например, вы можете начать с разделения их на движок в том же репозитории git и смонтировать их с помощью gem 'xxx', path: 'engines/xxx'. Затем позже разделите его на отдельные репозитории кода и/или хост в качестве отдельного приложения.

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

Вы можете найти это интересным:

https://github.com/EPI-USE-Labs/activesupport-decorators

http://pivotallabs.com/leave-your-migrations-in-your-rails-engines/

person Pierre Pretorius    schedule 12.06.2015