В настоящее время я работаю над веб-решением (backend & frontend), который будет доставлен нескольким клиентам. Каждый из них будет размещаться независимо со своей собственной базой данных.Архивирование веб-приложений - Общее решение + независимый экземпляр -> Рост и обслуживание?
Идея заключается в том, чтобы сделать решение растущим и общим для определенного момента каждому клиенту. Я хочу достичь структуры, которая позволит нам избежать любой проблемы с обслуживанием, конфликта версий и тому подобных вещей.
Важным моментом является то, что в любом случае приложение/сайт/решение (особенно в интерфейсе) не будут одинаковыми для всех, а некоторые файлы (шаблоны // CSS/...) будут независимыми.
Итак, мой вопрос заключается в том, как мы должны проектировать/структурировать такое приложение, чтобы мы могли поддерживать его на протяжении многих лет и над несколькими клиентами? Я не хочу разрешать ошибку в одном «экземпляре» и должен скопировать ее на 50 других клиентов, где может возникнуть другой конфликт, потому что мы забыли скопировать предыдущую версию файла X ...
Одним из решения я думал о является:
- Создать один базовый проект, который будет содержать все классы, компоненты, общие для всех, и предложить своего рода «рамки».
- Создайте один проект для каждого клиента (одна независимая папка).
- SYMlink все файлы/папки, которые будут поддерживаться глобально (на уровне BASE).
Преимущества:
- Одно изменение базового проекта (новая функция/ошибка исправления ..) будут автоматически доступны везде.
- Мы можем по-прежнему держать определенную «независимость» уровня в коде, так как каждый проект является независимым и файл может быть обновлен (за исключением базы одного)
я не уверен, что лучшим решением будет, и если есть такая «лучшая практика» для таких целей. Просьба поделиться своим опытом по этой теме.
Спасибо!