Size: a a a

2020 June 30

GC

Great Cornilio in Go-go!
ага
источник

GC

Great Cornilio in Go-go!
не может
источник

GC

Great Cornilio in Go-go!
вру
источник

GC

Great Cornilio in Go-go!
источник

GC

Great Cornilio in Go-go!
то есть с тоже прочекать стоит
источник

Д

Данил in Go-go!
все
источник

Д

Данил in Go-go!
понял
источник

Д

Данил in Go-go!
спасибо всем
источник

Д

Данил in Go-go!
забыл стор назначить
источник

У

Улица in Go-go!
всем привет, кто сталкивался с ошибкой, когда при вендоринге приватного модуля из гитлаба
go get gitlab.com/<company>/<subgroup>/<repo>/<subdirectory>
отдает ошибку
fatal: repository 'https://gitlab.company.ru/group/repo.git/' not found

тоесть go get срезает еще одну сабгруппу
просто видел человека у кого такая трабла случалась
https://gitlab.com/gitlab-org/gitlab/-/issues/30612
источник

Н

Никита in Go-go!
Вопрос архитектурный: у нас есть кэш и основная БД. Сначала надо пойти в кэш, проверить есть ли там данные, если нет, то пойти в БД, и в итоге взять, оттуда где лежит. В плане организации логики кэш у нас является отдельной инфраструктурной деталью, либо же часть БД? То есть обращение к кэшу у нас должно быть скрыто за гейтвеем базы? Или же отдельно свой гейтвей?

Например:

post, err := controller.db.GetPostById(params.PostId)

if err != nil {
 return result, errors.InternalError
}


И логика обращения к кэшу скрыта в методе
GetPostById
, либо же

post, err := controller.cache.GetPostById(params.PostId)

if err != nil || !post.Exists() {
 post, err = controller.db.GetPostById(params.PostId)
 if err != nil {
  return result, errors.InternalError
 }
}


Явно показываем в юзкейсе, что обращаемся к кэшу
источник

DP

Daniel Podolsky in Go-go!
Улица
всем привет, кто сталкивался с ошибкой, когда при вендоринге приватного модуля из гитлаба
go get gitlab.com/<company>/<subgroup>/<repo>/<subdirectory>
отдает ошибку
fatal: repository 'https://gitlab.company.ru/group/repo.git/' not found

тоесть go get срезает еще одну сабгруппу
просто видел человека у кого такая трабла случалась
https://gitlab.com/gitlab-org/gitlab/-/issues/30612
Это известная гитлабная херня, она не лечится
источник

У

Улица in Go-go!
Daniel Podolsky
Это известная гитлабная херня, она не лечится
((, но за инфу спасибо
источник

АС

Артур Саляхов... in Go-go!
Никита
Вопрос архитектурный: у нас есть кэш и основная БД. Сначала надо пойти в кэш, проверить есть ли там данные, если нет, то пойти в БД, и в итоге взять, оттуда где лежит. В плане организации логики кэш у нас является отдельной инфраструктурной деталью, либо же часть БД? То есть обращение к кэшу у нас должно быть скрыто за гейтвеем базы? Или же отдельно свой гейтвей?

Например:

post, err := controller.db.GetPostById(params.PostId)

if err != nil {
 return result, errors.InternalError
}


И логика обращения к кэшу скрыта в методе
GetPostById
, либо же

post, err := controller.cache.GetPostById(params.PostId)

if err != nil || !post.Exists() {
 post, err = controller.db.GetPostById(params.PostId)
 if err != nil {
  return result, errors.InternalError
 }
}


Явно показываем в юзкейсе, что обращаемся к кэшу
Реализации кеша и бд могут имплиментировать один интерфейс. Этим интерфейсом и пользуйся в сервисах.
источник

Н

Никита in Go-go!
Артур Саляхов
Реализации кеша и бд могут имплиментировать один интерфейс. Этим интерфейсом и пользуйся в сервисах.
у нас не выбор кэш или БД. У нас надо обратиться и к кэшу и к БД
источник

S

Sergey in Go-go!
Никита
Вопрос архитектурный: у нас есть кэш и основная БД. Сначала надо пойти в кэш, проверить есть ли там данные, если нет, то пойти в БД, и в итоге взять, оттуда где лежит. В плане организации логики кэш у нас является отдельной инфраструктурной деталью, либо же часть БД? То есть обращение к кэшу у нас должно быть скрыто за гейтвеем базы? Или же отдельно свой гейтвей?

Например:

post, err := controller.db.GetPostById(params.PostId)

if err != nil {
 return result, errors.InternalError
}


И логика обращения к кэшу скрыта в методе
GetPostById
, либо же

post, err := controller.cache.GetPostById(params.PostId)

if err != nil || !post.Exists() {
 post, err = controller.db.GetPostById(params.PostId)
 if err != nil {
  return result, errors.InternalError
 }
}


Явно показываем в юзкейсе, что обращаемся к кэшу
Я обычно в репозитории делаю. И тебе советую вынести работу с базой в слой репозитория и там всё разруливать
источник

J

Je in Go-go!
++ тоже реализовано внутри репозитория
еще по неймингу - в Go не принято get*, так что не GetPostById, а просто PostById, а если пэкедж внутри общего репозитория назвать post, то можно даже ById
источник

DP

Daniel Podolsky in Go-go!
Улица
((, но за инфу спасибо
вернее, лечится, но отказом от групп репозиториев (забыл, как оно в терминологии гитлаба)
источник

Н

Никита in Go-go!
Je
++ тоже реализовано внутри репозитория
еще по неймингу - в Go не принято get*, так что не GetPostById, а просто PostById, а если пэкедж внутри общего репозитория назвать post, то можно даже ById
Этот нейминг относится к геттерам/сеттерам структуры
источник

АС

Артур Саляхов... in Go-go!
Никита
у нас не выбор кэш или БД. У нас надо обратиться и к кэшу и к БД
реализация кеша может «проглатывать» в себя реализацию базы. и уже в реализации кеша резолви все это.
источник