Как сохранить несколько компонентов для нескольких клиентов для нескольких функций?

В основном мой проект основан на продукте. Однажды мы разработали проект и поймали несколько клиентов и развернули приложение на основе их потребностей. Но мы решили поставить новые функции и зависимые от проекта модули в качестве компонента. Теперь моя заявка получила много клиентов. Каждому клиенту нужны разные функции в зависимости от компонента. Но у нас есть централизованный компонент для всех клиентов. мы перемещаем дополнительную функцию компонентов в определенную папку клиента и разворачиваем. Моя проблема в том, что я не могу поддерживать функции компонентов для нескольких клиентов. Код компонента компонента увеличен, и я не могу отслеживать функции клиента. Есть ли какое-либо решение для поддержки функций нескольких компонентов для нескольких клиентов?

2 ответа

По сути, вы говорите о линейках программных продуктов (SPL): вариациях из общей базы. Поскольку вы уже упаковываете свои функции как компоненты, вам необходим специализированный инструмент для управления такими изменениями.

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

Подход, основанный на разработке моделей (MDSD), может помочь в решении этой задачи. Одной из таких систем, которая может поддерживать эту настройку разработки, является ABSE, новый подход MDSD, который, помимо прочего, может реализовывать линейку программных продуктов (информация на http://www.abse.info/ - Отказ от ответственности: я являюсь руководителем проекта ABSE). Там еще нет продукта, хотя. Альфа-превью идет.

Опять же, я знаю некоторые компании, которые, используя MDSD в сочетании с генерацией кода, достигли того, что, как я понимаю, вы хотите: продукты, которые уже наполовину упакованы, наполовину изготовлены на заказ.

Я работал на пару компаний в аналогичном программном обеспечении, но очень сильно настроенном.

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

Предполагая, что компания хочет быть компанией, занимающейся разработкой программного обеспечения, если нет особых технических причин, по которым вы не можете этого сделать, вам нужно перейти к единой базе кода, в которой изменения для каждого клиента обрабатываются с помощью настраиваемых параметров (т. Е. Флагов, говорящих о том, как ситуация обрабатывается, доступна ли эта функция и т. д.).

Они могут быть установлены во время выполнения (поэтому они могут быть изменены по желанию клиента - подумайте об опциях в Word или Excel) или во время сборки (поэтому код включается / исключается при выполнении сборки), но главное в том, что каждый клиент должен быть извлечен из той же кодовой базы.

Но это должно быть согласовано с бизнесом, так как оно ограничивает то, что они могут продать - каждое проданное ими изменение должно вписываться в общее видение, которое может быть приспособлено для одного продукта.

Альтернативой является то, что вы, по сути, производите программное обеспечение на заказ для каждого клиента (которое написано специально для того, что они хотят), но используете много общих библиотек. Это хорошо и позволяет вам производить что-то, что именно то, что они хотят, но в конце концов это будет больше работы, и бизнес должен понимать и платить за это.

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

Удачи, хотя, это сложная проблема без простого решения.

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