Size: a a a

2020 July 20

ВГ

Владимир Гришин... in Go-go!
Никита
Почему? Скройте ORMку за простым DatabaseGateway, и скиньте туда все методы для работы с базой. Уже ок, и пишется это быстро
а зачем?
источник

ВГ

Владимир Гришин... in Go-go!
ну то есть, орм нормальная - это и есть гейтвей
источник

Н

Никита in Go-go!
Anton Kucherov
Ну да, спасибо. Там как раз в статье ссылка на их другую статью где они рассказывают как они стандартную RoR структуру растаскивали на  Modular Monolith 👍🏻 В очередной раз подтверждает мою точку зрения.
Кстати, по поводу модульных монолитов. В компонентах наружу торчат Интеракторы/Юзкейсы, или же domain service?
источник

Н

Никита in Go-go!
Владимир Гришин
ну то есть, орм нормальная - это и есть гейтвей
на этапе прототипирования, тем более если брать спешку, принимаются не самые лучшие решения. Может оказаться, что эта ОРМка станет потом боком
источник

ЛА

Локоть Анатолий... in Go-go!
Никита
на этапе прототипирования, тем более если брать спешку, принимаются не самые лучшие решения. Может оказаться, что эта ОРМка станет потом боком
Если изолировать код общения с бд в репозиторий, то будет неважно - орм там или чистый sql
источник

Н

Никита in Go-go!
Локоть Анатолий
Если изолировать код общения с бд в репозиторий, то будет неважно - орм там или чистый sql
Я это и предложил выше
источник

ЛА

Локоть Анатолий... in Go-go!
Никита
Я это и предложил выше
Ну да, орм это просто средство готовить запросы, получать ответы. Это надстройка над sql. Сама она никакой архитектурной ниши занимать не должна
источник

AK

Anton Kucherov in Go-go!
ORM в общем случае средство преобразования объектно-ориентированной парадигмы в реляционную парадигму и обратно. Поэтому если ORM библиотека не умеет базовых вещей, а именно преобразовывать связи между объектами в реляции, это не ORM а фигня. Это вообще ее основная задача, мапить отношения между объектами на отношения между таблицами в БД. Все эти генераторы запросов и прочая фигня, это второстепенные "фичи" ОРМ. А основная фича, взять граф объектов и положить его на граф отношений в реляционную БД, так чтобы пользователь библиотеки вообще ни о каких таблицах не думал.
источник

🅚

🅚🅘🅝🅓🅔🅡🅦🅞🅝🅓... in Go-go!
посоветуйте легковесную библиотеку для mqtt клиента
источник

DP

Daniel Podolsky in Go-go!
источник

@

@mr_tron in Go-go!
Кто кого заборет: медведь акулу или акула медведя?
источник

DF

Dan Fox in Go-go!
Как сюда лучше код вставлять, текстом или картинкой?
источник

E

Edgar in Go-go!
ссылкой на playground
источник

ЕК

Егор Карась... in Go-go!
@mr_tron
Кто кого заборет: медведь акулу или акула медведя?
Карась енота
источник

DM

Dmitry M in Go-go!
Я ставлю на Александра
источник

DF

Dan Fox in Go-go!
https://play.golang.org/p/wvN4vJB5acN

Норм код? Меня смущает создание пустого ID для возврата в случае ошибки
источник

Н

Никита in Go-go!
Нормальная практика (судя по тому, куда не глянь) такое делать в main? Либо есть вариант это делать красивее

usersGateway := usersGateway.New(db)
postsGateway := postsGateway.New(db)
likesGateway := likesGateway.New(db)
locationsGateway := locationsGateway.New(db, cache)

usersService := usersService.New(usersGateway, postsGateway)
postsService := postsService.New(usersGateway, postsGateway)
likesService := likesService.New(usersGateway, postsGateway, likesGateway)
locationsService := locationsService.New(usersGateway, locationsGateway)

usersController := usersController.New(usersService)
postsController := postsController.New(postsService)
likesController := likesController.New(likesService)
locationsController := locationsController.New(locationsService)

err = delivery.Serve(cfg.Server, usersController, postsController, likesController, locationsController)
источник

D🦀

Dimka ☣️ 🦀 in Go-go!
Никита
Нормальная практика (судя по тому, куда не глянь) такое делать в main? Либо есть вариант это делать красивее

usersGateway := usersGateway.New(db)
postsGateway := postsGateway.New(db)
likesGateway := likesGateway.New(db)
locationsGateway := locationsGateway.New(db, cache)

usersService := usersService.New(usersGateway, postsGateway)
postsService := postsService.New(usersGateway, postsGateway)
likesService := likesService.New(usersGateway, postsGateway, likesGateway)
locationsService := locationsService.New(usersGateway, locationsGateway)

usersController := usersController.New(usersService)
postsController := postsController.New(postsService)
likesController := likesController.New(likesService)
locationsController := locationsController.New(locationsService)

err = delivery.Serve(cfg.Server, usersController, postsController, likesController, locationsController)
я думал у меня у одного такой код получается :)
источник

DF

Dan Fox in Go-go!
Dimka ☣️ 🦀
я думал у меня у одного такой код получается :)
Во всех примерах в статьях и на гит хабе такое, спринга для го пока нету
источник

с

сонная википедия... in Go-go!
Никита
Нормальная практика (судя по тому, куда не глянь) такое делать в main? Либо есть вариант это делать красивее

usersGateway := usersGateway.New(db)
postsGateway := postsGateway.New(db)
likesGateway := likesGateway.New(db)
locationsGateway := locationsGateway.New(db, cache)

usersService := usersService.New(usersGateway, postsGateway)
postsService := postsService.New(usersGateway, postsGateway)
likesService := likesService.New(usersGateway, postsGateway, likesGateway)
locationsService := locationsService.New(usersGateway, locationsGateway)

usersController := usersController.New(usersService)
postsController := postsController.New(postsService)
likesController := likesController.New(likesService)
locationsController := locationsController.New(locationsService)

err = delivery.Serve(cfg.Server, usersController, postsController, likesController, locationsController)
можно взять какой-нибудь DI, вроде wire, но мне кажется это оверкилл в большинстве случаев
источник