Будь или нет модульный с плагинами Rails? - PullRequest
1 голос
/ 25 июня 2010

Я работаю над приложением, которое может быть логически сгруппировано в ядро ​​ядра, и модулями бизнес-доменов.Модули бизнес-доменов по сути инкапсулируют код, специфичный для бизнеса наших клиентов.Сначала мы разделили это, используя структуру корневых направляющих для нашего основного движка и имея весь код клиента в отдельных плагинах.

Но мы столкнулись с различными проблемами с этим подходом, большинство из которых, вероятно, можно отложитьПерезагружать классы Rails в среде разработки.В то время как нам удалось заставить перезагрузку работать в основном, мы столкнулись со странными ошибками Rails с частично выгруженными классами в сочетании с Rails.cache.

Что я хотел бы знать, так это то, что мы злоупотребляем предполагаемым шаблоном использованиядля плагинов Rails?Правильно ли были упакованы аспекты нашего приложения в виде плагинов?И есть ли лучший способ сделать это?Или нам лучше быть солдатом и попытаться разобраться в этих оставшихся проблемах?

В настоящее время мы движемся к переписыванию плагинов в виде модулей в структуре корневых рельсов, но я должен признаться, мне скорее нравится элегантность структуры каталогов мини-приложений плагинов.

Брендон Маклин.

1 Ответ

0 голосов
/ 25 июня 2010

Мое большое приложение включает в себя несколько плагинов, которые являются частными для приложения.Я согласен, что плагины могут красиво изолировать наборы функций.

Я не сталкивался с проблемой загрузки, которую вы описываете, так как отключил динамическую перезагрузку класса в режиме разработки.

Почему быдинамическая перезагрузка класса?Казалось, что это слишком сильно тормозит.Проще выполнить cntrl-c и перезапустить тестовую монгрелу при необходимости.В конце концов, я обычно выполняю заданную итерацию кода для более чем одного цикла запроса / ответа html, прежде чем вносить дальнейшие изменения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...