Как вы придумывали технические решения и требования к проекту
Что проверяют
Умеете ли вы идти от задачи бизнеса к техническому решению, а не от любимой технологии к задаче. Интервьюер хочет услышать, как вы собираете требования, сравниваете варианты и фиксируете решение. Следом часто спрашивают, какой вариант вы отвергли и почему.
Как отвечать
Возьмите один реальный случай и расскажите его по шагам:
- проблема: что болело у бизнеса или пользователей, одной-двумя фразами;
- требования: функциональные уточняли с аналитиком или заказчиком, нефункциональные часто приходится выяснять самим: нагрузка в запросах в секунду, допустимая задержка, объём данных, доступность, поведение при отказе;
- ограничения: сроки, текущий стек на Spring Boot, опыт команды, инфраструктура, которую нельзя менять;
- варианты: два-три реальных, например синхронный REST против событий через Kafka, кэш в Redis против денормализации в PostgreSQL, отдельный сервис против модуля в монолите;
- проверка: прототип, нагрузочный тест в Gatling или JMeter, замер на копии данных;
- фиксация: design doc или ADR, ревью с командой, что решили и чем пожертвовали;
- итог: что получилось, что проявилось в эксплуатации и что вы бы сделали иначе.
Самое ценное в таком ответе это компромисс, названный вслух: «выбрали Kafka, потому что потребителей трое и получатель бывает недоступен, но заплатили сложностью отладки и повторной доставкой, поэтому сделали обработчики идемпотентными».
Цифры и детали нужны свои. Если архитектуру определял тимлид, а вы делали часть, так и скажите: как уточняли постановку, какие вопросы задали аналитику, что решили на уровне своего модуля. Для джуниора этого достаточно, и это честнее, чем присваивать чужую архитектуру.
Где спотыкаются
Выбирают микросервисы, Kafka и Kubernetes по умолчанию, без привязки к нагрузке. На вопрос «почему не монолит» ответа нет.
Путают требования с решением. «Нужен Redis» это не требование, требование звучит как «ответ за 100 мс при 2000 запросов в секунду».
Говорят только «мы». Интервьюеру важно, какую часть решения придумали лично вы и за что отвечали.