Как пройти СОБЕСЕДОВАНИЕ на C# & .Net РАЗРАБОТЧИКА? (2)
Продолжение серии о подготовке к C#/.NET-собеседованиям. Разбираются теоретические вопросы языка и практические последствия решений в коде.
TeachMeSkills Школа программирования
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 85,4 тыс.
- Лайки на YouTube: 3,1 тыс.
Таймлайн
Коротко о видео
Образовательный разбор вопросов, которые могут встретиться на собеседовании C#/.NET-разработчика. Паша Львов последовательно объясняет работу сборщика мусора, ООП-механизмы, исключения, типы, лямбды, многопоточность, коллекции и DI. В конце обсуждаются ограничения Singleton и то, что паттерны проектирования не привязаны к конкретному языку.
Затронутые темы
Что взять на заметку
- Для ответа о GC подготовьте модель достижимости: живыми остаются объекты, доступные через ссылки из call stack и цепочки их ссылок; недостижимые объекты очищаются.
- Нужно различать value types и reference types: структуры копируются как значения, а классы передаются через ссылки на объекты.
- var выводит статический тип из инициализатора и не делает переменную динамической; dynamic допускает динамическое разрешение операций и, по мнению спикера, не должен быть обычным выбором для junior-разработчика.
- virtual вместе с override обеспечивает вызов реализации по фактическому типу объекта, тогда как сокрытие метода через new создаёт потенциально проблемную неоднозначность.
- Для многопоточного доступа к общему ресурсу lock защищает критическую секцию; если упомянуть его на собеседовании, стоит быть готовым объяснить и другие механизмы синхронизации.
- StringBuilder предназначен для накопления изменений перед построением итоговой строки, поскольку строки неизменяемы.
- DI-контейнер централизует создание графа зависимостей и управление временем жизни объектов; Singleton автор советует задавать через контейнер, а не жёстко реализовывать паттерном.