Я изо всех сил пытаюсь придумать хорошую структуру для программного проекта. Необходимо поддерживать следующее:
- Проект состоит из нескольких подпроектов.
- Подпроекты включают внутренний или прокси-код для запуска на отдельном сервере (представьте себе микро-сервис- ish ).
- Подпроекты имеют клиентский код, который обслуживается указанным сервером.
- Подпроекты имеют общую библиотеку ui-компонентов (которая может быть другим подпроектом).
- Подпроекты имеют общую центральную конфигурацию (которая также может быть другим подпроектом).
Пока что решение Monorepo, такое как Lerna, кажется, путь вперед, НО:
- Некоторые подпроекты должны быть переданы сторонним разработчикам, которые должны иметь доступ READ, но не WRITE к НЕКОТОРЫМ общих элементов.
Вот схема:
- щ Пб
- 1035 * конфигурация *
- модуль А
- модуль A - бэкэнд (требуется конфигурация)
- модуль A - интерфейс (необходим пользовательский интерфейс)
- модуль B (для секретности нужно жить в отдельном репо)
- модуль B - бэкэнд (требуется немного config)
- модуль B - интерфейс (требуется пользовательский интерфейс)
Есть идеи? Может быть, у меня должно быть два отдельных конфига, приватный и публичный?