Вернуться в видеотеку

Как пройти СОБЕСЕДОВАНИЕ на C# & .Net РАЗРАБОТЧИКА? (2)

Продолжение серии о подготовке к C#/.NET-собеседованиям. Разбираются теоретические вопросы языка и практические последствия решений в коде.

Источник: TeachMeSkills Школа программирования

Открыть на YouTube

Таймлайн

Коротко о видео

Образовательный разбор вопросов, которые могут встретиться на собеседовании C#/.NET-разработчика. Паша Львов последовательно объясняет работу сборщика мусора, ООП-механизмы, исключения, типы, лямбды, многопоточность, коллекции и DI. В конце обсуждаются ограничения Singleton и то, что паттерны проектирования не привязаны к конкретному языку.

Затронутые темы

Что взять на заметку

  • Для ответа о GC подготовьте модель достижимости: живыми остаются объекты, доступные через ссылки из call stack и цепочки их ссылок; недостижимые объекты очищаются.
  • Нужно различать value types и reference types: структуры копируются как значения, а классы передаются через ссылки на объекты.
  • var выводит статический тип из инициализатора и не делает переменную динамической; dynamic допускает динамическое разрешение операций и, по мнению спикера, не должен быть обычным выбором для junior-разработчика.
  • virtual вместе с override обеспечивает вызов реализации по фактическому типу объекта, тогда как сокрытие метода через new создаёт потенциально проблемную неоднозначность.
  • Для многопоточного доступа к общему ресурсу lock защищает критическую секцию; если упомянуть его на собеседовании, стоит быть готовым объяснить и другие механизмы синхронизации.
  • StringBuilder предназначен для накопления изменений перед построением итоговой строки, поскольку строки неизменяемы.
  • DI-контейнер централизует создание графа зависимостей и управление временем жизни объектов; Singleton автор советует задавать через контейнер, а не жёстко реализовывать паттерном.

Рекомендуем посмотреть