Что должен знать Senior .NET-разработчик про Dependency Injection?
Что хотят услышать интервьюеры:
Senior-разработчик должен объяснить Dependency Injection через trade-offs, диагностику, границы применения и влияние на архитектуру.
- Суть: DI передает зависимости извне через контейнер и уменьшает связанность кода.
- Где встречается: регистрация сервисов, настройка окружений, логирование, observability и сопровождение приложения.
- Типичная ошибка: не понимать lifetimes, инжектить scoped в singleton или хранить секреты в коде.
- Как отвечать: начните с короткого определения, затем приведите пример, назовите ограничение и типичную ошибку.
- Ожидаемый уровень: Senior. Глубокие trade-offs, диагностика, архитектурный контекст и влияние на систему.
Ответ:
builder.Services.AddScoped<IOrderService, OrderService>();
logger.LogInformation("Order {OrderId} created", orderId);