взаимодействовать. Коннект к postgres, допустим, организован средствами GORM. Создан интерфейс Datastore, в котором реализуются методы, для взаимодействия с данными в postgres.
Посредством структуры коннект к postgres шарится для нужных хэндлеров в HTTP роутере:
type Env struct {
db models.Datastore
}
http.HandleFunc("/books", env.booksIndex)
Это из статьи пример.
Как организовать доступ к другому хранилищу данных, какое бы оно ни было?
В соответствии с рассуждениями автора статьи, Alex Edwards, видимо, необходимо организовать посредством создания ещё одного интерфейса Datastore, реализующего необходимые методы по работе с данными в конкретном хранилище.
Вопрос в том, правильно ли я рассуждаю. И если не правильно, то в каком направлении думать.
Это не вопрос использования библиотек, это вопрос построения архитектуры.
ты хочешь чтбы тебе тут приложение разработали, т.е. поработали за тебя
очень хороший вопрос интересно мнение людей
Зависит от интерфейса и хранилища, если у тебя интерфейс CRUD, то такой ты можешь реализовать для всех хранилищ, в этом случае новый интерфейс не потребуется, ты создашь конкретную реализацию для хранилища и сможешь их взаимно-заменять, в этом основная мысль интерфейсов. Если это разные интерфейсы, то взаимозаменяемости не будет
архитектурно вот статейка слегка по теме https://habr.com/en/company/custis/blog/265785/
Обсуждают сегодня