Задать вопрос
@The_good_game

Какую структуру репозиториев выбрать в проекте?

Я работаю над пет-проектом и думаю, как лучше организовать репозитории. В проекте будет бэкенд (Node/Express) и фронтенд для web (React) и mobile (React Native). Web и mobile местами будут иметь общий код.
На работе для всего этого используется монорепозиторий, но такой подход мне не очень нравится. Я бы хотел для каждого проекта (web, mobile и backend) создать отдельный репозиторий и поместить их как subtree в главный репозиторий в соответствующие директории front и backend. Но что тогда делать с общим кодом? Я бы хотел поместить его внутри главного репозитория рядом с нужными subtree, чтобы не создавать дополнительного репозитория для этого кода, мне кажется это избыточным. Но, как я понял, получить доступ из subtree к общему коду не получится.
Что бы вы сделали?
  • Вопрос задан
  • 338 просмотров
Подписаться 2 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 2
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
  • Бэк
  • Фронт
  • Мобилка
  • Либа проекта 1
  • Либа проекта ...
  • Либа проекта N

Фронт так же можно сделать поддеревом/подмодулем бэка. Зачем выносить общий код в отдельные репозитории? Дык декомпозиция же. Удобнее работать с кучкой маленьких, законченных и более-менее автономными модулями/пакетами, чем размазывать одинаковый код по куче разных репозиториев и потом гадать что новее, старее, совместимее, оптимальнее и прочее. Да, можно сделать один общий репозиторий и держать там миллион разных модулей и прочего (ну или один большой и толстый). А потом копать кротовые норы с красными глазами в этой горе непонятно чего в поисках ошибок и нужного кода.
Ответ написан
Комментировать
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Я бы делил на:
1 - mobile
2 - client core (subtree для 1 и 3)
3 - main (web front + backend)

Почему:
Я не уверен, но по-моему мобильный фронт живёт свое жизнью - ему не нужен SSR, у него свой релизный цикл и сборка, он никуда никогда не деплоится, нет никакой необходимости ему лежать в той же кодовой базе. Зачем он вам как subtree в основном репозитории?

Общий код вполне можно вынести в subtree

Веб фронту нужен SSR (?). Конечно, при старте проекта на работе я бы разделил SSR и API на разные репозитории, чтоб API можно было переписывать/релизить отдельно от сср и фронта, но для пет проекта не вижу в этом большого профита, кажется, удобнее весь бэкенд писать в одном месте

Честно говоря, для своего проекта я б вообще всё таки оставил монорепу + workspaces, просто чтоб не тратить время на переключения
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы