Какие интерфейсы бы реализовывал?

В Go интерфейсы обычно реализуются для определения поведения, которое могут иметь разные типы. На senior-уровне часто создаются интерфейсы для абстрагирования зависимостей, например:

Короткий ответ

Что ответить на собеседовании

В Go интерфейсы обычно реализуются для определения поведения, которое могут иметь разные типы. На senior-уровне часто создаются интерфейсы для абстрагирования зависимостей, например:

Подробный разбор

Ответ с пояснениями

В Go интерфейсы обычно реализуются для определения поведения, которое могут иметь разные типы. На senior-уровне часто создаются интерфейсы для абстрагирования зависимостей, например:

  • Интерфейс для работы с базой данных (CRUD операции)
  • Интерфейс для логирования
  • Интерфейс для кэширования

Это позволяет легко менять реализации без изменения бизнес-логики.

Пример интерфейса для репозитория:

// UserRepository описывает методы для работы с пользователями
type UserRepository interface {
    GetByID(id int) (*User, error)
    Save(user *User) error
}

Реализация может быть разной: с базой данных, с моками для тестов и т.д.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее