Собеседование Senior Backend-разработчика
Кандидат рассказывает о сервисе электронной очереди и отвечает на вопросы о rich domain models, конкурентном доступе к состоянию и чистых функциях. Во второй части он моделирует сервис заказов и оплаты с событиями, Saga и компенсациями, затем обсуждает микросервисы и тестирование.
- Опубликовано на YouTube:
- Просмотры на YouTube: 41,5 тыс.
- Лайки на YouTube: 783
Таймлайн
Коротко о видео
Ведущий проводит широкое техническое интервью Senior Backend-разработчика с опытом C#-разработки. Кандидат рассказывает о системе электронной очереди, после чего участники обсуждают шаблоны, анемичные и богатые доменные модели, неизменяемость данных и управление общим состоянием. На примере большой машины состояния они рассматривают конкурентный доступ и возможность вынести состояние во внешнее хранилище. Затем интервьюер предлагает смоделировать интернет-магазин с заказом и оплатой: кандидат описывает события, шину сообщений, сервис оплаты и Saga с компенсационными действиями. В заключении затрагиваются мониторинг, DNS и сетевой путь запроса, монолиты и микросервисы, откаты на проде, тестирование домена и обработка исключительных ситуаций.
Затронутые темы
Что взять на заметку
- Богатая доменная модель концентрирует инварианты и поведение рядом с данными предметной области.
- Общее изменяемое состояние ограничивает масштабирование; его можно вынести во внешнее хранилище с контролем доступа.
- Saga координирует распределённый процесс через события и компенсации, но компенсация тоже требует обработки сбоев и повторов.
- Событийная архитектура требует продумывать границы сервисов, шину сообщений и наблюдаемость.
- Перед крупной миграцией данных и схем нужно заранее планировать совместимость, резервное копирование и откат.
- Тестирование чистого доменного слоя проще, когда бизнес-правила не смешаны с инфраструктурой.