Ответ
Внедрение зависимости (DI) — это паттерн проектирования, при котором зависимости объекта передаются извне, а не создаются внутри. Это делает код более гибким, тестируемым и удобным для поддержки.
Пример без DI:
type Service struct {
db *DB
}
func NewService() *Service {
return &Service{db: NewDB()}
}
Пример с DI:
type Service struct {
db DBInterface
}
func NewService(db DBInterface) *Service {
return &Service{db: db}
}
Преимущества:
- Упрощает тестирование (можно подменить зависимости моками)
- Уменьшает связность компонентов
- Делает код более гибким и переиспользуемым
В Go DI часто реализуется через интерфейсы и передачу зависимостей в конструктор.
Видео-ответы
▶
Сеньор хочет стать миддлом??? / Техсобес Senior QA Auto на позицию Middle Python Developer
▶
Реальное СОБЕСЕДОВАНИЕ на FRONTEND разработчика ЗП 200К
▶
Собеседование на позицию Backend Developer Python Middle #7
▶
Собеседование на Java-разработчика, вопросы для подготовки: finalize method, ArrayList, REST и SOAP
▶
У 11-ти классника уже 3 года опыта и собственная CRM на FastAPI?? / Техсобес Junior Python Developer
▶
Собеседование Java Junior | История джуна который смог | Мои первые собеседования | Jetbulb
▶
Моковое собеседование Angular | Junior Frontend-разработчик
▶
Собеседование на должность java junior #4 - Владислав
▶
Публичное Собеседование iOS | Alex Ozun, Роман Тысячник | iOS Ukraine #2