Создать плагин или драгоценный камень?

Если я правильно понимаю, вы не хотите, чтобы ваш код был связан с NServiceBus или MassTransit, и вы не хотите показывать, какой из них вы используете.

Во-первых, разделение:
Вы выполнили часть этого, определив свой собственный интерфейс IServiceBus. Пока ваша библиотека зависит только от этого интерфейса, а не от какой-либо реализации, вы не должны быть связаны ни с одним из них.

Чтобы избежать такого соединения, я бы оставил конкретные реализации в отдельных проектах / библиотеках. Ваш «основной» домен также не должен ссылаться напрямую. Если вы можете выполнить модульное тестирование кода без какой-либо конкретной реализации, тогда вы можете свободно переключаться между реализациями.

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

Затем, скрывая, какая реализация используется:
Что касается не разоблачения, используете ли вы NServiceBus или MassTransit, вы не можете. Если кто-то ссылается на вашу библиотеку, и это зависит от одного из этих пакетов, ему также придется добавить этот пакет. Предполагая, что ваша библиотека упакована для NuGet, этот пакет покажет свои зависимости.

6
задан Codebeef 13 January 2009 в 20:37
поделиться

3 ответа

Плагины становятся устаревшими теперь, когда можно управлять драгоценными камнями через "config.gem" оператор в environment.rb. Драгоценные камни доступны в масштабе всей системы (не только в одном приложении) и являются имеющими версию в отличие от плагинов.

Я преобразовал все свои плагины к драгоценным камням недавно. Легкий сделать и определенно стоящий того.

9
ответ дан 9 December 2019 в 22:41
поделиться

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

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

1
ответ дан 9 December 2019 в 22:41
поделиться

можно добавить генераторы к направляющим через драгоценные камни. это на самом деле довольно легко, можно просто добавить rails_generators каталог к драгоценному камню. (я думаю, что другие имена каталогов будут работать - я не уверен что поиски направляющих). пример: http://github.com/remi/rackbox/tree/a21c21667c68d5fd51357e28f0742171e9161e9b/rails_generators

что касается добавляющих задач граблей... я должен все же выяснить, что практическое руководство делает это:/

на данный момент у меня есть свои генераторы, добавляют require 'myproject/rails/tasks' (или что-то) к Rakefile проекта как способ добавить задачи граблей к направляющим от драгоценного камня.

много драгоценных камней просит, чтобы Вы 'загрузили' их в свой проект направляющих, например, sudo огуречный CD установки драгоценного камня rails_app./script/generate огурец # огурец начальной загрузки в Ваше приложение

1
ответ дан 9 December 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: