В моей организации есть .NET-решение (C# MVC), и мы немного пытаемся сохранить наше решение повторно используемым, но в то же время расширяемым.Архитектура нашего решения и совета
У нас есть 4 клиентов
A, B, C, D
Каждый из этих клиентов требуется веб-сайт и каждый веб-сайт очень очень похожи говорят 90% похожи. Поэтому мы создали базовый шаблон, который включает в себя слой данных, ядро, службы и веб-уровень (включая контроллеры/помощники/сопоставление/проверку). Все клиенты будут использовать этот шаблон. Единственными частями, в которых клиенты не будут использовать код, будет разметка и тема, которая будет применяться к этому клиенту. Даже сценарии/base css будут совместно использоваться клиентами.
Это работало около 7 месяцев относительно хорошо, до сих пор.
Клиенты A и B были развернуты и на производстве.
В настоящее время мы работаем над клиентом C, а клиент D еще не реализован.
При работе с клиентом C клиентам A и B также требуются исправления ошибок/изменения функций и т. Д. Однако, поскольку мы работаем с клиентом C, шаблон не всегда «готов к производству», и поэтому код будет выпущен для клиентов A и B с непроверенным кодом. Мы теперь используем большинство функций непосредственно в клиенте C, чтобы не вносить изменения в шаблон.
Конечно, простой вариант заключается в ветвлении и работе с веткой, но поскольку мы вынуждены использовать TFS, это затрудняет задачу. Скорее всего, мы просто будем работать и работать оттуда, но есть ли дополнительные советы (источники информации), чтобы узнать о том, как другие исправляют эту проблему?