Какие паттерны применял на последнем проекте?

На последнем проекте в Go я активно применял несколько паттернов:

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

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

На последнем проекте в Go я активно применял несколько паттернов:

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

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

На последнем проекте в Go я активно применял несколько паттернов:

  • Dependency Injection — для управления зависимостями через интерфейсы и конструкторы, что облегчает тестирование и расширяемость.
  • Factory — для создания объектов с разной конфигурацией, особенно при работе с разными реализациями интерфейсов.
  • Singleton — для глобальных конфигураций и менеджеров, где нужен единственный экземпляр.
  • Middleware — в HTTP-серверах для обработки запросов (логирование, аутентификация).
  • Strategy — для выбора алгоритмов во время выполнения, например, разные способы сериализации или обработки данных.

Пример использования Dependency Injection:

type Repository interface {
    GetByID(id string) (*User, error)
}

type Service struct {
    repo Repository
}

func NewService(r Repository) *Service {
    return &Service{repo: r}
}

func (s *Service) GetUser(id string) (*User, error) {
    return s.repo.GetByID(id)
}

Такой подход позволяет легко менять реализацию Repository, например, для тестов или разных источников данных.

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

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

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

Подробнее