В какой папке лежит слой обращения в базу данных

«В какой папке лежит слой обращения в базу данных» — вопрос из категории Архитектура, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go принято организовывать структуру проекта по функциональным слоям. Слой работы с БД обычно размещают в:

  1. internal/repository/ - для репозиториев (основной вариант)
  2. pkg/repository/ - если код должен быть переиспользуемым
  3. db/ или storage/ - в простых проектах

Пример структуры:

project/
  internal/
    repository/
      user_repository.go
      order_repository.go
  pkg/
    db/
      connection.go

Код репозитория обычно выглядит так:

package repository

type UserRepository struct {
    db *sql.DB
}

func (r *UserRepository) GetByID(id int) (*User, error) {
    // запрос к БД
}

Важно отделять слой репозитория от бизнес-логики (service layer) и транспорта (API/handlers).