Какие архитектурные решения приходилось принимать
Что проверяют
Умеете ли вы принимать решения осознанно: видеть варианты, считать цену и отвечать за последствия. Интервьюеру важна не громкость решения, а ход мысли. Следом спросят, что оказалось ошибкой и как вы это исправляли.
Как отвечать
Выберите одно-два своих решения и расскажите по схеме, близкой к ADR (Architecture Decision Record): контекст и ограничения, рассмотренные варианты, критерии, выбор, последствия. Для .NET-стека подойдут, например:
- границы системы: модульный монолит с модулями в отдельных проектах и явными контрактами или выделение сервиса. Аргумент за сервис: независимый релиз и масштабирование, против: сеть, распределённые транзакции и эксплуатация;
- доступ к данным: EF Core с миграциями или Dapper на горячих запросах, где важен контроль над SQL;
- устройство приложения: слоистая схема, Clean Architecture или vertical slices, CQRS для разделения записи и чтения;
- асинхронность: фоновые задачи через
BackgroundService, Hangfire или брокер с outbox, чтобы событие не потерялось при сбое после коммита; - кэш:
IMemoryCacheна одном экземпляре,IDistributedCacheс Redis при нескольких,HybridCache, появившийся вместе с .NET 9; - контракты API: REST или gRPC между сервисами, версионирование.
Результат давайте измеримо: время ответа по p95, частота релизов, число инцидентов. Цифры должны быть ваши и с понятным способом замера. Отдельно скажите, что не сработало.
Если опыта архитектурных решений мало, это нормально для middle. Расскажите про решение в пределах своего модуля: схему таблиц, выбор библиотеки, отказ от преждевременной абстракции, и уточните, кто принимал итоговое решение.
Где спотыкаются
Говорят «перешли на микросервисы, и производительность выросла на 40%». Сетевые вызовы добавляют задержку, а не убирают её, так что такой результат требует объяснения, которого обычно нет.
Перечисляют SOLID и паттерны как «архитектурные решения». Это уровень кода, а не архитектуры.
Не называют альтернатив и компромиссов. Решение без отвергнутых вариантов выглядит как случайность.