Собеседование C#-разработчика с live coding
Реальное техническое интервью на позицию .NET/C#-разработчика: опыт с Web API и SQL, вопросы по асинхронности и live-coding-задачи на алгоритмы, потокобезопасность и SOLID.
- Опубликовано на YouTube:
- Просмотры на YouTube: 3,3 тыс.
- Лайки на YouTube: 61
Коротко о видео
Кандидат Владислав проходит интервью с руководителем группы разработки и тимлидом в команду, выделяющую функциональность из legacy-монолита на .NET Framework 4.8 и MS SQL. Он рассказывает о backend-опыте с Web API, Entity Framework, оптимизацией SQL-запросов, Redis, Docker и наблюдаемостью. В технической части обсуждают Parallel, Task и async/await; в live coding кандидат предлагает решение задачи на поиск пропущенного числа, разбирает проблему конкурентного доступа к словарю и с подсказками рефакторит сервис поздравлений по SOLID, убирая .Result и вынося параметры в конфигурацию.
Затронутые темы
Что взять на заметку
- Для поиска одного пропущенного числа заранее оговаривайте границы и проверяйте крайние случаи; сортировка работает, но линейное решение обычно эффективнее.
- async/await не запускает работу автоматически в отдельном потоке: не блокируйте асинхронный путь через .Result и различайте I/O-ожидание и CPU-задачи.
- ConcurrentDictionary делает отдельные операции потокобезопасными, но составные check-then-act действия должны использовать атомарные методы, например GetOrAdd или TryAdd, либо синхронизацию.
- При SOLID-рефакторинге разделяйте доступ к данным, формирование шаблона и сохранение файлов; параметры, которые нужно менять без перекомпиляции, выносите в конфигурацию.