Вернуться в каталог собеседований

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

Продолжение учебного разбора каверзных вопросов собеседования по C# и .NET. Обсуждаются язык, базы данных, архитектура, HTTP, Docker, тестирование и локализация.

TeachMeSkills Школа программирования
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 47,9 тыс.
  • Лайки на YouTube: 1,7 тыс.
Открыть на YouTube

Таймлайн

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

Учебный разбор вопросов технического собеседования для C#/.NET-разработчика: от yield, enum с [Flags], const и readonly до баз данных, индексов, тестирования и микросервисов. Участники объясняют, как разворачивать ответы на собеседовании через практические примеры: авторизацию ролей, выбор SQL или NoSQL, работу ORM и Dapper, REST, Docker и локализацию. В финале разбирают нюансы локализации интерфейса, включая хранение языкового выбора и формы множественного числа.

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

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

  • Для yield return важно объяснить ленивое выполнение: элементы и связанные вызовы создаются только при фактическом перечислении IEnumerable.
  • [Flags] enum подходит для независимых комбинируемых состояний, например прав Read, Write и Delete; значения флагов задают степенями двойки.
  • const — значение, известное и неизменное для всей программы, а readonly фиксирует поле после инициализации конкретного объекта; ссылка readonly-объекта не меняется, но его внутренние свойства могут меняться.
  • Проверку доступа не стоит копировать в каждый endpoint: в зависимости от архитектуры её размещают в authorization-атрибутах, на контроллере, в middleware или на уровне доступа к данным.
  • При выборе SQL и NoSQL следует отталкиваться от ожидаемой структуры и связей данных: SQL удобнее для предсказуемой схемы и связей, NoSQL — для сильно различающихся документов; возможна гибридная схема.
  • Индексы ускоряют чтение ценой записи и поддержки структуры; индекс по полю с очень малым числом вариантов обычно не даёт существенной пользы.
  • Тестами стоит целенаправленно покрывать бизнес-логику и критические пользовательские сценарии, а не стремиться к 100% покрытия всего связующего кода.

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