Java Live Coding: мок-собеседование с Senior-разработчиком
Мок-собеседование по Java в live coding-формате: кандидат проектирует обработку заказа с платёжными и складскими сервисами, обсуждает внедрение зависимостей и ленивую инициализацию. Затем решает задачи на пересечение списков и LRU-кэш на LinkedHashMap; в конце получает обратную связь по уровню и обсуждает подготовку к интервью.
- Опубликовано на YouTube:
- Просмотры на YouTube: 2,9 тыс.
- Лайки на YouTube: 57
Коротко о видео
Запись публичного мок-собеседования с Java-разработчиком, позиционирующим себя как Senior. В архитектурной задаче кандидат проектирует OrderProcessor, PaymentService и InventoryService: обсуждаются интерфейсы, SOLID, конструкторная инъекция зависимостей, обработка ошибок и тестовая заглушка склада. Интервьюер предлагает обёртку над PaymentService с Supplier для ленивого создания дорогого сервиса. Далее кандидат решает пересечение двух списков строк через Stream API и retainAll, а затем реализует ограниченный LRU-кэш на LinkedHashMap. В финале ведущий оценивает прохождение предварительного live coding-этапа и отвечает на вопросы аудитории о подготовке к интервью.
Затронутые темы
Что взять на заметку
- Выносить работу с оплатой и остатками за интерфейсы, чтобы OrderProcessor не зависел от конкретных интеграций.
- Передавать зависимости через конструктор, чтобы их можно было заменить тестовыми реализациями.
- Для дорогого сервиса можно использовать ленивую обёртку с Supplier и сохранить созданный экземпляр для повторных вызовов.
- retainAll изменяет список-получатель и возвращает только признак изменения, поэтому для пересечения списков нужен отдельный result-список.
- Простой ограниченный LRU-кэш можно построить на LinkedHashMap с порядком доступа и переопределением removeEldestEntry.