Интеграции систем на собеседовании системного аналитика
Сердце собеса системного аналитика. Гоняют по методам и кодам, но настоящий вопрос всегда один: понимаешь ли ты, что код ответа это машинный контракт, а не украшение. Дальше идут ошибки, таймауты и повторы — то есть поведение системы в плохой день.
Что спрашивают
- +HTTP: чем PUT отличается от PATCH и почему PUT с частью полей молча затирает остальные
- +Коды: 401 против 403, и чем опасна ошибка, отданная с кодом 200
- +Очереди: что даёт развязка во времени и что при этом обязан показать интерфейс
- +Гарантии: почему «ровно один раз» строят как at-least-once плюс дедупликация
- +Надёжность: ключ идемпотентности, размыкатель цепи и сага с компенсациями вместо распределённой транзакции
Из чего состоит тема
Так тема разложена в тренажёре: движок ведёт прогресс по каждой подтеме отдельно и возвращает те, где вы ошибаетесь.
- Идемпотентность и гарантии13
- Форматы обмена13
- REST и HTTP12
- SOAP и gRPC12
- Очереди и асинхрон12
Разборы подтем
Конспект по каждой: что это, как отвечать вслух, на чём валятся, плюс вопросы для самопроверки.
- REST и HTTP12 вопросов
- SOAP и gRPC12 вопросов
- Форматы обмена13 вопросов
- Очереди и асинхрон12 вопросов
- Идемпотентность и гарантии13 вопросов
Примеры вопросов с разбором
- Что даёт очередь сообщений между двумя сервисами?A)Отправитель не ждёт получателяB)Гарантию мгновенной обработки сообщенийC)Уменьшение объёма передаваемых данныхD)Автоматическую проверку прав доступа
показать ответ и разбор
+A)Отправитель не ждёт получателя// разбор: Брокер принимает сообщение и хранит его, пока получатель не заберёт. Отправитель продолжает работу, даже если приёмник лежит на профилактике. Плата за это — отложенная согласованность: результат появится не сразу, и пользовательские сценарии надо строить с учётом задержки.
- Какой формат обмена самый распространённый в REST-интерфейсах?A)XMLB)JSONC)YAMLD)Protobuf
показать ответ и разбор
+B)JSON// разбор: JSON стал стандартом обмена для веб-интерфейсов: он компактнее XML, читается человеком и напрямую ложится на структуры данных большинства языков. Ограничения тоже стоит помнить: нет встроенного типа даты, нет комментариев, а числа с плавающей точкой не годятся для денег.
- Что значит идемпотентность операции?A)Операция выполняется мгновенноB)Операция не требует авторизацииC)Повтор не меняет результатD)Операция выполняется в транзакции
показать ответ и разбор
+C)Повтор не меняет результат// разбор: Идемпотентная операция при повторном вызове с теми же данными оставляет систему в том же состоянии. Это основа надёжных интеграций: сеть ненадёжна, ответ может потеряться, и клиент обязан иметь право повторить запрос, не боясь списать деньги дважды.
- Какой метод HTTP используют для получения ресурса без побочных эффектов?A)POSTB)GETC)PATCHD)DELETE
показать ответ и разбор
+B)GET// разбор: GET по определению безопасен: он не меняет состояние на сервере, поэтому его можно кэшировать, повторять и предзагружать. Отсюда практическое следствие: если запрос с методом GET что-то изменяет, это ошибка проектирования — браузер или прокси могут вызвать его сами и в неожиданный момент.
- Что описывает WSDL?A)Схему базы данных сервисаB)Контракт SOAP-сервисаC)Правила маршрутизации сообщенийD)Формат журналов сервиса
показать ответ и разбор
+B)Контракт SOAP-сервиса// разбор: WSDL — машиночитаемое описание SOAP-сервиса: какие операции доступны, какие типы данных принимаются и возвращаются, по какому адресу и транспорту работает служба. По нему автоматически генерируют клиентский код, что исторически и было главным преимуществом SOAP в корпоративной среде.
- Что такое очередь недоставленных сообщений (DLQ)?A)Очередь с наивысшим приоритетомB)Резервная копия основной очередиC)Сообщения, которые не удалось обработатьD)Очередь для сообщений большого размера
показать ответ и разбор
+C)Сообщения, которые не удалось обработать// разбор: Если сообщение раз за разом не обрабатывается, его убирают в отдельную очередь, чтобы оно не блокировало поток и не крутилось бесконечно. Дальше нужен регламент: кто смотрит DLQ, как часто и что делает с накопленным. Без такого регламента очередь превращается в кладбище потерянных операций.
- В каком виде принято передавать дату и время в интеграциях?A)В формате ISO 8601 с часовым поясомB)В привычном формате «дд.мм.гггг»C)Текстом на языке пользователяD)В формате локали принимающей системы
показать ответ и разбор
+A)В формате ISO 8601 с часовым поясом// разбор: ISO 8601 однозначен и сортируется как строка. Ключевая деталь — часовой пояс: без него «2026-07-22T14:30» может означать разные моменты для сторон в разных зонах, и расхождение обычно всплывает на границе суток, когда отчёты за день перестают сходиться.
- Как обычно обеспечивают идемпотентность создания платежа?A)Хранением последнего запроса в кэшеB)Запретом повторных запросов на минутуC)Проверкой суммы и получателяD)Ключом идемпотентности от клиента
показать ответ и разбор
+D)Ключом идемпотентности от клиента// разбор: Клиент генерирует уникальный ключ на операцию и присылает его в заголовке. Сервер запоминает результат по ключу: при повторе с тем же ключом он возвращает прежний ответ, не создавая второй платёж. Проверка по сумме и получателю не годится — два одинаковых платежа бывают законными.
- Что означает код ответа 404?A)Ресурс не найденB)Запрос составлен неверноC)Ошибка на стороне сервераD)Недостаточно прав доступа
показать ответ и разбор
+A)Ресурс не найден// разбор: 404 говорит, что по указанному пути ресурса нет. Важно не путать его с 400 (запрос синтаксически неверен), 403 (прав не хватает) и 500 (сервер сломался). Для клиента это разные стратегии: при 404 повторять бессмысленно, при 500 — стоит попробовать ещё раз.
это 9 из 62
Ещё 53 вопросов по теме — в тренажёре, с движком повторения
Прочитать разбор и ответить самому — разные навыки. В Сеньорчике вопросы идут сессиями, а движок возвращает подтемы, где вы ошибаетесь, пока они не начнут отскакивать. Бесплатно, лимит по энергии.
Частые вопросы
Клиент отправил платёж и получил таймаут. Что должно быть в контракте?
Метод проверки статуса операции по ключу клиента. Таймаут не означает провал: операция могла пройти, а потеряться мог ответ. Без такого метода остаётся либо гадать, либо повторять и рисковать двойным списанием.
Когда брать gRPC вместо REST?
Для частых вызовов внутри своего контура: меньше накладных расходов, строгий контракт, кодогенерация клиентов. Наружу партнёрам он неудобен — нужен файл схемы и особый инструментарий, а отладить обычным curl не выйдет.