Sobes.tech
Назад к вопросам
Senior
3

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

Компании, где спрашивали
I-teco

Ответ от нейросети

sobes.tech AI

На последнем проекте в 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, например, для тестов или разных источников данных.