Size: a a a

2020 April 13

EU

Egor Urvanov in Go-go!
Edgar
А зачем вам вообще делать микросервис пакетом? Чтобы делать go get и юзать внутренние конструкции другого микросервиса?
Самый частый кейс — это наличие внутри репы с микросервисами клиента к нему же. В более сложных кейсах — это могут быть генераторы данных к этому же клиенту. Наверное, можно придумать ещё кейсы, но на практике, я не видел иных
источник

EU

Egor Urvanov in Go-go!
Edgar
А зачем вам вообще делать микросервис пакетом? Чтобы делать go get и юзать внутренние конструкции другого микросервиса?
go get — тоже аргумент за
источник

ВГ

Владимир Гришин... in Go-go!
Egor Urvanov
Самый частый кейс — это наличие внутри репы с микросервисами клиента к нему же. В более сложных кейсах — это могут быть генераторы данных к этому же клиенту. Наверное, можно придумать ещё кейсы, но на практике, я не видел иных
тогда вам лучше монорепу и держать общую версионность
источник

E

Edgar in Go-go!
если так и делать, то импортируемый микросервис весь свой код просто обязан будет положить в internal, а клиент к нему в корне

Но и то, лучше клиент в отдельную репу положить и не импортировать другие микросервисы никогда
источник

EU

Egor Urvanov in Go-go!
Владимир Гришин
тогда вам лучше монорепу и держать общую версионность
Чем это лучше?
источник

EU

Egor Urvanov in Go-go!
Edgar
если так и делать, то импортируемый микросервис весь свой код просто обязан будет положить в internal, а клиент к нему в корне

Но и то, лучше клиент в отдельную репу положить и не импортировать другие микросервисы никогда
Зачем весь код? Только клиента. Это всего лишь реализация proto-протокола. Нет?
источник

ВГ

Владимир Гришин... in Go-go!
Egor Urvanov
Чем это лучше?
тем, что вам не надо постоянно отвечать на вопрос, работает ли клиент из коммита Х с сервисом из коммита У
источник

ВГ

Владимир Гришин... in Go-go!
все просто, клиент с сервисом работают, если они взяты из одного коммита
источник

E

Edgar in Go-go!
Egor Urvanov
Зачем весь код? Только клиента. Это всего лишь реализация proto-протокола. Нет?
Что? Я и говорю, если такое творить, что вы хотите и сделать, то весь код импортируемого микросервиса положить в internal, дабы вы сами же не стали бы создавать лишние связи между микросервисами

А сам клиент положите ВНЕ internal, дабы конкретно его можно было бы импортировать, но и то, тоже такое себе, лучше клиент отдельно держать
источник

EU

Egor Urvanov in Go-go!
Edgar
Что? Я и говорю, если такое творить, что вы хотите и сделать, то весь код импортируемого микросервиса положить в internal, дабы вы сами же не стали бы создавать лишние связи между микросервисами

А сам клиент положите ВНЕ internal, дабы конкретно его можно было бы импортировать, но и то, тоже такое себе, лучше клиент отдельно держать
Да, ровно так и хочется. Я вас не понял
источник

E

Edgar in Go-go!
Кратко, будете импортировать другие микросервисы, превратите микросервисы в свалку, зачем разделять то, что хотите потом импортами объединять?
источник

EU

Egor Urvanov in Go-go!
Владимир Гришин
тем, что вам не надо постоянно отвечать на вопрос, работает ли клиент из коммита Х с сервисом из коммита У
Как вы предполагаете этого достигнуть, если будет монорепа. Там как раз и может возникнуть проблема с неконсистентностью коммитов
источник

EU

Egor Urvanov in Go-go!
Edgar
Кратко, будете импортировать другие микросервисы, превратите микросервисы в свалку, зачем разделять то, что хотите потом импортами объединять?
Ну, да. Видится, что если мы всё положим в монорепу, то будет свалка
источник

EU

Egor Urvanov in Go-go!
Согласаен
источник

EU

Egor Urvanov in Go-go!
Я поэтому и протестую
источник

EU

Egor Urvanov in Go-go!
Спасибо
источник

S

Sergey in Go-go!
Edgar
Что? Я и говорю, если такое творить, что вы хотите и сделать, то весь код импортируемого микросервиса положить в internal, дабы вы сами же не стали бы создавать лишние связи между микросервисами

А сам клиент положите ВНЕ internal, дабы конкретно его можно было бы импортировать, но и то, тоже такое себе, лучше клиент отдельно держать
Клиента отдельно? И структуры общие дублировать?
источник

E

Edgar in Go-go!
Конкретно я предлагаю, сохранить микросервисы микросервисами тем, что в каждом репо создать пакет internal, держать всю логику микросервиса в нем, а клиент к этому микросервису отдельно, в корне репозитория оставить, таким образом сможете импортировать другие микросервисы, но доступа к их внутренним составляющим не получите, а только доступ к их клиентам

Однако, даже так не стоит делать, лучше просто клиент положить в отдельную репу и не импортировать другие микросервисы :(
источник

E

Edgar in Go-go!
Sergey
Клиента отдельно? И структуры общие дублировать?
Что? Зачем дублировать?
источник

S

Sergey in Go-go!
Структуры. Есть сервис, возвращает структуру User в виде json. Клиент этот json в User должен обратно переварить. В двух местах предлагаешь сделать одинаковые структуры?
источник