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 и создания группы модулей? Я довольно озадачен этим, поэтому у меня есть несколько вопросов:

  1. Чтобы сделать мой проект проектом Hexagonal Rails, куда именно я помещаю эти модули (в какую папку? Создать новую папку с определенным именем?)

  2. Это больше для внутреннего обслуживания? Для обеспечения безопасности?

Из того, что я знаю, если приложение rails становится слишком большим, вы не можете просто разделить определенные части на другое приложение (я полагаю, это называется сервис-ориентированная архитектура?) И просто запросить к нему из вашего основного приложения? Или, возможно, использовать балансировщик нагрузки + несколько серверов, если трафик становится слишком интенсивным.

1 ответ

Решение

Сообщение Виктора Савкина, которое вы связали, чтобы выразить это хорошо

Гексагональная архитектура помогает отделить приложение от механизма доставки.

Насколько я понимаю, гексагональная архитектура имеет свои корни в Rails как просто "механизм доставки" (возможно, один из многих) для вашего реального приложения. Это попытка изолировать ваше приложение от Rails и выходит далеко за рамки того, что люди пытаются сделать, когда они просто разбивают приложение на более мелкие части с движками.

DHH (создатель Rails) рассматривает архитектуру Hex как " ущерб, нанесенный TDD дизайну", и с создателем TDD (Кентом Беком) и Мартином Фаулером была проведена серия переговоров, которые вы обязательно должны посмотреть.

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

Другие вопросы по тегам