Расскажите про кейс, которым гордитесь за последний год
Что проверяют
Какого масштаба задачи вам доверяли и умеете ли обосновывать инженерные решения. От разработчика на .NET ждут не перечня фич, а объяснения, что было узким местом и почему выбран именно этот способ.
Как отвечать
Лучше всего заходят кейсы, где было измерение до и после. Например:
- разобрали медленный сценарий: сняли профиль, нашли запрос на каждый элемент в слое доступа к данным, заменили проекцией и чтением без отслеживания изменений;
- вычистили блокирующие вызовы:
.Resultи.Wait()заменили сквознымasync, пул потоков перестал голодать; - сократили аллокации в горячем пути:
Span, пул массивов, отказ от промежуточных строк; - сделали интеграцию устойчивой: идемпотентные операции, повтор с растущей паузой, размыкатель цепи.
Называйте инструменты и величины: счётчики среды выполнения, трассировка, микробенчмарки, а в результате задержка на верхних процентилях, пропускная способность, число сборок мусора старшего поколения. И обязательно про цену решения: пул усложняет код, кэш добавляет вопрос устаревших данных.
Где спотыкаются
Приносят круглые проценты без единиц. «Подняли производительность на 35%» звучит солидно ровно до вопроса, при какой нагрузке и по какому показателю. Без нагрузочного профиля цифра не проверяется.
Считают, что асинхронность ускоряет. Одиночный запрос она быстрее не делает, она освобождает поток и поднимает пропускную способность под нагрузкой. А смешанный стиль, когда асинхронный вызов ждут синхронно, добавляет взаимные блокировки на ровном месте.
Перечисляют шаблоны ради названий. За упоминанием стратегии или фабрики сразу спросят, что было бы без неё и какой код стало проще менять. Если ответа не находится, впечатление от кейса портится целиком.