Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Модульный проект, разные репозитории для модулей  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1914
Всем привет!
Есть проектик с Spring Cloud, модули в одном проекте и соответственно ветка в git одна.
Есть желание, чтобы разные модули можно было коммитить в разные репозитории, предполагаю, что такая потребность возникала не у одного меня и возможность, скорее всего, такая есть.
Может кто укажет направление куда двигаться? :) Очень не хочется создавать разные проекты для каждого сервиса и потом сидеть с кучей открытых инстансов Idea.
7 ноя 19, 10:35    [22011286]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
Nixic
Есть проектик с Spring Cloud,
ты вроде один такой крутой)
7 ноя 19, 10:41    [22011295]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1914
PetroNotC Sharp
Nixic
Есть проектик с Spring Cloud,
ты вроде один такой крутой)

Да он еще на стадии разработки, уже всё поднимается, но много всякого ... плохого кода внутри)) Хочется сразу разбить его так, чтобы девопсам жизнь облегчить
7 ноя 19, 10:53    [22011313]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
Nixic
Хочется сразу разбить его так, чтобы девопсам жизнь облегчить
в книжках пишут, что spring cloud data flow наоборот, убирает девопсов. Или когда их вообще нет.
Кстати, тут прогеры а не девопсы)
7 ноя 19, 11:12    [22011329]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1914
PetroNotC Sharp
Nixic
Хочется сразу разбить его так, чтобы девопсам жизнь облегчить
в книжках пишут, что spring cloud data flow наоборот, убирает девопсов. Или когда их вообще нет.

Ну кто-то же должен настраивать всякие там докеры кубернетисы и т.д., а чтобы красиво им это преподносить, наш код должен правильнее пушиться, чтобы когда девопс всё настроит и ветки будут деплоиться сами(сейчас так и есть, но для монолита), то жевопс почти и не нужен )
7 ноя 19, 11:19    [22011340]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
Nixic
кубернетисы
это и есть менеджер докеров. Причем тут спринг?
Ты кубернетис настроил?
10 докеров работают?
3 хоста для контейнеров есть?
7 ноя 19, 12:18    [22011398]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4915
Nixic
Всем привет!
Есть проектик с Spring Cloud, модули в одном проекте и соответственно ветка в git одна.
Есть желание, чтобы разные модули можно было коммитить в разные репозитории, предполагаю, что такая потребность возникала не у одного меня и возможность, скорее всего, такая есть.
Может кто укажет направление куда двигаться? :) Очень не хочется создавать разные проекты для каждого сервиса и потом сидеть с кучей открытых инстансов Idea.


Вообще-то это холиварная тема. Монорепозитарий vs куча репозитариев.
Для любого решения свои есть плюсы и минусы.

ИМХО на начале удобнее монорепозитарий, потом по мере роста проекта бить его на логические части.
Точнее, так. Проповедники микросеврисной архитектуры говорят, что надо начинать с монолита.
Потом, когда будет понятно на какие домены делиться приложение/предметная область, тогда разделять монолит на микросервисы.
Только после этого, можно разделить монорепозитарий на части.
7 ноя 19, 12:47    [22011432]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4915
Nixic
Ну кто-то же должен настраивать всякие там докеры кубернетисы и т.д., а чтобы красиво им это преподносить, наш код должен правильнее пушиться, чтобы когда девопс всё настроит и ветки будут деплоиться сами(сейчас так и есть, но для монолита), то жевопс почти и не нужен )


За настройку приложения и оборачивания ее в докер отвесттвенность несет программист.

DevOps предоставляет инфраструктуру.
Т.е., например, кластер kubernetes и CI/CD.

Даже скрипт деплоя на test/stage/prod по хорошему должен писать программист.
7 ноя 19, 12:51    [22011435]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
mad_nazgul
Проповедники микросеврисной архитектуры говорят, что надо начинать с монолита.
не слышал.
Монолит это везде Г архитектура.
7 ноя 19, 12:54    [22011441]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1914
PetroNotC Sharp
Nixic
кубернетисы
это и есть менеджер докеров. Причем тут спринг?

Пока решается этот вопрос, с кубернетис я не сталкивался вообще, выбор конечный не за мной, сейчас у меня Spring cloud локально.
PetroNotC Sharp
Ты кубернетис настроил?

нет
PetroNotC Sharp
10 докеров работают?

занимаюсь этим не я.
PetroNotC Sharp
3 хоста для контейнеров есть?

занимаюсь этим не я.

Вообще изначально другой вопрос был, ну да ладно, хорошо, что и это затронули.
Честно говоря, слаб я еще в этой теме...
7 ноя 19, 13:50    [22011490]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4915
PetroNotC Sharp
mad_nazgul
Проповедники микросеврисной архитектуры говорят, что надо начинать с монолита.
не слышал.
Монолит это везде Г архитектура.


Сэм Ньюман "Создание микросеврисов". Как раз об этом пишет в своей книге.

А так монолит нормальная архитектура.

"Прелесть" монолита в том, что если он плохо спроектирован, то работать будет долго. Хотя изменения будут стоить дорого.
А вот плохо спроектированная "микросервисная" архитектура разваливается сразу.
7 ноя 19, 13:54    [22011495]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
mad_nazgul
А так монолит нормальная архитектура.
Ещё раз
Монолит противоречит SOA.
с какого года SOA?
7 ноя 19, 14:00    [22011503]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
mad_nazgul
Сэм Ньюман
не читай его.
7 ноя 19, 14:00    [22011505]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
Nixic
Честно говоря, слаб я еще в этой теме...
ну дак рано вопрос поднял про оркестрацию.
Согласись.
Нельзя учить прогеров если сам не писал.
7 ноя 19, 14:02    [22011507]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
mad_nazgul,
Нашел.
Монолит не пишут с 1998 года. Когда появилось Jini
))))))
7 ноя 19, 14:08    [22011515]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4915
PetroNotC Sharp
mad_nazgul
А так монолит нормальная архитектура.
Ещё раз
Монолит противоречит SOA.
с какого года SOA?


И в чем монолит противоречит SOA?!
SOA можно и в виде монолита запилить.
Oracle, IBM и RedHat как раз на основе своих монолитных решений предлагали SOA.
7 ноя 19, 14:53    [22011585]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
mad_nazgul
SOA можно и в виде монолита запилить.
не верю.
Слово монолит придумал Ньюман?
7 ноя 19, 14:55    [22011587]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
qasta
Member

Откуда:
Сообщений: 97
mad_nazgul

ИМХО на начале удобнее монорепозитарий, потом по мере роста проекта бить его на логические части.
Точнее, так. Проповедники микросеврисной архитектуры говорят, что надо начинать с монолита.
Потом, когда будет понятно на какие домены делиться приложение/предметная область, тогда разделять монолит на микросервисы.
Только после этого, можно разделить монорепозитарий на части.


Полностью согласен: в начале один репозиторий (как у ТС сейчас), а потом выделять отдельные подпроекты.
С точки зрения работы с таким "многомодульным репозиторием" - git submodule.

Одно уточнение - "разбивать" на подмодули я бы стал не по предметной области - доменам, а по "источникам изменений в проекте" или по аспектам, которые связаны с жизненным циклом проекта (это может быть и вопросы, связанные с развёртыванием проекта и др.). В общем, здесь нет универсального ответа, а есть только рекомендации:
1. Модуль должен быть условно самодостаточным (его можно отдельно собрать, протестировать (автотестами или вроде того) и установить/залить в репозиторий)
2. С модулем должна быть возможность работать НЕ в составе общего репозитория-объединения всех модулей (бывший монорепозиторий)
3. Точки разреза на модули должны быть понятными. Например, если вы просто разделили фронт и бэк, то явно об этом заявите.
7 ноя 19, 17:20    [22011707]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
qasta
разбивать" на подмодули я бы стал не по предметной области - доменам, а по "источникам изменений в проекте" или по аспектам, которые связаны с жизненным циклом проекта (это может быть и вопросы, связанные с развёртыванием проекта и др.)
если не по функционалу или предметке, то связи будут тесными и угробят всю модульность.
7 ноя 19, 17:35    [22011731]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
qasta
Member

Откуда:
Сообщений: 97
PetroNotC Sharp
qasta
разбивать" на подмодули я бы стал не по предметной области - доменам, а по "источникам изменений в проекте" или по аспектам, которые связаны с жизненным циклом проекта (это может быть и вопросы, связанные с развёртыванием проекта и др.)
если не по функционалу или предметке, то связи будут тесными и угробят всю модульность.


И да, и нет - по функционалу и по предметке имеет смысл разбивать, если именно они изменяются в проекте (мы говорим про "основной объем работ"). Например, в интеграционном решении предметная область может не изменяться годами, а вот точки интеграции добавляться и убираться раз в неделю :). Такой проект не стоит нарезать по предметке (но по функционалу - надо, если под этим термином понимать "функция интеграции с тем-то и тем-то"). Термины эти слишком широкие, поэтому, "и да, и нет" :)
7 ноя 19, 17:43    [22011740]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
qasta
Например, в интеграционном решении
давай не будем про африканцев, если мы в европе.
Берем проект ИС Завод.
Далее эту ИС по ГОСТ мы функционально описываем.
Это и есть куски.
Интегрировать проект ГОТОВЫЙ завод с 1С?
Зачем тут такое рассматривать?
7 ноя 19, 17:56    [22011754]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
qasta
Полностью согласен: в начале один репозиторий (как у ТС сейчас), а потом выделять отдельные подпроекты.
С точки зрения работы с таким "многомодульным репозиторием" - git submodule.
многомодульные в git состоят из отдельных репо.
То есть нету одного репозитария.
Сразу архитектор сделает 4 репо ОТДЕЛЬНЫХ.
А потом при желании вставит один в другой подмодулем.
Итого нет понятия Монорепозитарий и Монолит и Монолитные микросервисы (недавно было)
7 ноя 19, 17:59    [22011767]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
qasta
Термины эти слишком широкие
согласен.
Пусть автор сделает 3 класса и 3 модуля.
А потом вопрос задаёт.
7 ноя 19, 18:01    [22011775]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
qasta
Member

Откуда:
Сообщений: 97
PetroNotC Sharp
Сразу архитектор сделает 4 репо ОТДЕЛЬНЫХ.
А потом при желании вставит один в другой подмодулем.
Итого нет понятия Монорепозитарий и Монолит и Монолитные микросервисы (недавно было)


У меня другой опыт и мнение. "Сразу архитектор сделает" - это далеко не всегда так (обычно угадать получается, но бывает по-разному).
1. Сначала - один репозиторий, который растёт, развивается, обретает какую-то структуру. Потому что так удобнее всего и вообще непонятно вначале - как надо нарезать.
2. Потом примерно становится понятной структура и возможные способы нарезки. Начинаем отделять один-два крупных модуля. В первом репозитории они подключаются гитовыми подмодулями (есть инструменты для гита - можно выделить новый репозиторий со всей историей из каталога, но это немного портит историю). При этом новый репозиторий можно скачать отдельно и работать только с ним.
3. Новые модули в проекте добавляются сразу в виде отдельных репозиториев, которые можно подключать в первый проект. А можно и не подключать - это уже как вам будет удобнее.
7 ноя 19, 18:15    [22011805]     Ответить | Цитировать Сообщить модератору
 Re: Модульный проект, разные репозитории для модулей  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
Nixic
Всем привет!
Есть проектик с Spring Cloud, модули в одном проекте и соответственно ветка в git одна.
Есть желание, чтобы разные модули можно было коммитить в разные репозитории, предполагаю, что такая потребность возникала не у одного меня и возможность, скорее всего, такая есть.
Может кто укажет направление куда двигаться? :) Очень не хочется создавать разные проекты для каждого сервиса и потом сидеть с кучей открытых инстансов Idea.

Скорее всего тут единого решения не будет. А будет матрица стратегий с кучей ячеек где есть плюсы и минусы.

Есть желание - надо трактовать как - "есть возможность выделить в проекте независимые части" которые компилируются
и деплоятся например в локальный mvn/gradle repo независимо. Это хорошо. Это даёт разрабу концентрироваться
на малой части исходного кода (когда фиксите ошибку) в полной уверенности что в другие модули лезть не надо
там и так все гуд. Это плюс.
С другой стороны отладчиком неудобно бегать если забыли запаблишить сорцы от всех модулей. Это минус.
С другой стороны над модулем может рабоать отдельный разраб или тим. Это плюс.
Еще с третьей стороны меж модулями можно ослаблять зависимости вплоть до 1 базового интерфейса с 1-2 методами.
Это плюс.
С четвертой стороны если что-то надо поменять в интерфейсе - надо много чего пересобрать и поломать и
переключить мажорную версию билда. И проследить чтоб все модули подхватили.
С пятой стороны - удобно для git когда проектов много. Может часть из них лежит даже в bitbucket. И имеют
закрытые сорцы которые имеют статус ну.. если не тайны то хотя-бы нежелания пока их светить.
Публичная часть - соотв в гитхабе. Это большой плюс.
И так далее.
7 ноя 19, 18:35    [22011824]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Java Ответить