Rails: Как мне сделать мой проект rails проектом Hexagonal rails?
Вчера я посетил встречу по поводу масштабирования Rails, и одной из тем была Hexagonal Rails. Тем не менее, я занимался Rails только год, и мне действительно комфортно (может быть, слишком удобно) со структурой MVC, поэтому я не совсем понимаю, что такое адаптер и очередь сообщений.
Вот статья об этом: http://victorsavkin.com/post/42542190528/hexagonal-architecture-for-rails-developers
И картинка: http://blog.mattwynne.net/wp-content/uploads/2012/06/hexagonal_architecture_sketch.jpg
Насколько я понимаю, я думаю, что это разделение частей так, чтобы действия были специально отфильтрованы и переданы в определенные места вашего приложения вместо того, чтобы иметь центральный "маршрутизатор" для всего. Я думаю, что это приводит к минимизации использования ActiveRecord и создания группы модулей? Я довольно озадачен этим, поэтому у меня есть несколько вопросов:
Чтобы сделать мой проект проектом Hexagonal Rails, куда именно я помещаю эти модули (в какую папку? Создать новую папку с определенным именем?)
Это больше для внутреннего обслуживания? Для обеспечения безопасности?
Из того, что я знаю, если приложение rails становится слишком большим, вы не можете просто разделить определенные части на другое приложение (я полагаю, это называется сервис-ориентированная архитектура?) И просто запросить к нему из вашего основного приложения? Или, возможно, использовать балансировщик нагрузки + несколько серверов, если трафик становится слишком интенсивным.
1 ответ
Сообщение Виктора Савкина, которое вы связали, чтобы выразить это хорошо
Гексагональная архитектура помогает отделить приложение от механизма доставки.
Насколько я понимаю, гексагональная архитектура имеет свои корни в Rails как просто "механизм доставки" (возможно, один из многих) для вашего реального приложения. Это попытка изолировать ваше приложение от Rails и выходит далеко за рамки того, что люди пытаются сделать, когда они просто разбивают приложение на более мелкие части с движками.
DHH (создатель Rails) рассматривает архитектуру Hex как " ущерб, нанесенный TDD дизайну", и с создателем TDD (Кентом Беком) и Мартином Фаулером была проведена серия переговоров, которые вы обязательно должны посмотреть.
Мой ответ на ваш вопрос: не надо. Разговор о шестиугольной архитектуре происходит прямо сейчас. Если у вас нет острой необходимости отделить код приложения от Rails, я советую вам посмотреть выступления и подождать, пока пыль не уляжется, чтобы увидеть, что из этого получится.