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

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

Я работаю над пет-проектом и думаю, как лучше организовать репозитории. В проекте будет бэкенд (Node/Express) и фронтенд для web (React) и mobile (React Native). Web и mobile местами будут иметь общий код.
На работе для всего этого используется монорепозиторий, но такой подход мне не очень нравится. Я бы хотел для каждого проекта (web, mobile и backend) создать отдельный репозиторий и поместить их как subtree в главный репозиторий в соответствующие директории front и backend. Но что тогда делать с общим кодом? Я бы хотел поместить его внутри главного репозитория рядом с нужными subtree, чтобы не создавать дополнительного репозитория для этого кода, мне кажется это избыточным. Но, как я понял, получить доступ из subtree к общему коду не получится.
Что бы вы сделали?
  • Вопрос задан
  • 345 просмотров
Подписаться 2 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • 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, просто чтоб не тратить время на переключения
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽