Как разделить код функции между проектами? - PullRequest
0 голосов
/ 08 марта 2019

Я создаю SaaS-программу для нескольких клиентов. Он в основном основан на хранилище Azure, служебной шине и функциях v2. Теперь он построен так, что у каждого клиента будет своя собственная группа ресурсов. Таким образом, все ресурсы дублируются для каждого клиента. Но каждый случай не идентичен, поэтому я не могу напрямую поделиться всем кодом.

Например, будут разные способы интеграции с ним и разные преобразования и проверки, необходимые для каждого клиента. Тем не менее, большая часть кода будет идентична, или какой-то код будет предоставлен некоторым клиентам, но не всем.

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

Например: Клиент 1: Func1 версия 1.0, Func2 версия 1.0 Клиент 2: Func1 версия 1.0, Func2 версия 1.1, Func3 1.0

У меня много идей, но я бы хотел, чтобы лучше всего было собрать все функции в одну DLL и затем настроить, какие функции развернуть для каждого клиента? Возможно ли это сделать?

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

Или есть ли другие хорошие способы для достижения этой цели?

1 Ответ

0 голосов
/ 12 марта 2019

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

Для вашего примера это будет:

Группа ресурсов общей логики:
Функция 1 версия 1.0

Группа клиентов 1:
Функция 2 версия 1.0

Группа ресурсов клиента 2:
Функция 2 версия 1.1
Функция 3 версия 1.0

...