💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом задании верен только один вариант. Фрагменты относятся к Scala 3; внешняя библиотека названа прямо в коде или условии.
Вопрос 4 из 25
В контракте темы «Акторная модель» после изменения окружения команда пересматривает контракт. Какой вариант корректен?
throughput\le mailbox\ capacity
Опираться на семантику «mailbox обрабатывает сообщения актора последовательно, но порядок между разными отправителями не является единым глобальным порядком», но отдельно проверять ограничение «передача ссылки на изменяемый объект в сообщении нарушает изоляцию: отправитель может изменить данные после отправки».
Опираться на семантику «акторная модель изолирует изменяемое состояние внутри актора и взаимодействует через асинхронные сообщения», но отдельно проверять ограничение «одна зелёная проверка заменяет отдельные тесты на отмену, повтор и освобождение ресурса».
Опираться на семантику «акторная модель изолирует изменяемое состояние внутри актора и взаимодействует через асинхронные сообщения», но отдельно проверять ограничение «restart обычно пересоздаёт поведение и внутреннее состояние, но не исправляет ядовитое сообщение или внешнюю причину».
Опираться на семантику «supervision определяет реакцию родителя на отказ дочернего актора: restart, resume, stop или escalation», но отдельно проверять ограничение «использование акторов как универсального контейнера усложняет тесты, трассировку и управление потоком данных».
Опираться на семантику «акторная модель изолирует изменяемое состояние внутри актора и взаимодействует через асинхронные сообщения», но отдельно проверять ограничение «передача ссылки на изменяемый объект в сообщении нарушает изоляцию: отправитель может изменить данные после отправки».
Вопрос 7 из 25
Какой из перечисленных рисков возникает непосредственно из механизма «Очередь сообщений актора»?
Scala Очередь сообщений актора: изменившийся контекст Копировать
// Дополнительный контекст: Состояние актора восстановили, но очередь содержала старые команды.
import akka.actor.typed.ActorRef
sealed trait Command
case class Add(value: Int, replyTo: ActorRef[Done]) extends Command
case object Done
// Сообщение содержит неизменяемые данные; изменяемый буфер сюда не передаётся.
Проверка границы должна учитывать, что повторная доставка после сбоя может выполнить команду дважды, даже если нагрузка хорошо распределена.
Проверка границы должна учитывать, что порядок сообщений между несколькими отправителями можно использовать как часть бизнес-инварианта без подтверждений.
Проверка границы должна учитывать, что использование акторов как универсального контейнера усложняет тесты, трассировку и управление потоком данных.
Проверка границы должна учитывать, что рассчитывать на точную очередность сообщений от нескольких акторов без протокола подтверждений опасно.
Проверка границы должна учитывать, что увеличение пула акторов всегда ускоряет обработку, даже если все команды меняют одно состояние.
Вопрос 12 из 25
Состояние актора восстановили, но очередь содержала старые команды. Какое ограничение темы «Надзор за акторами» становится существенным?
Scala Надзор за акторами: изменившийся контекст Копировать
// Дополнительный контекст: Маршрутизатор увеличили, хотя обработчики делили один внешний ресурс.
import akka.actor.typed.ActorRef
sealed trait Command
case class Add(value: Int) extends Command
def send(left: ActorRef[Command], right: ActorRef[Command]): Unit =
left ! Add(1)
right ! Add(2)
// Между разными отправителями общего порядка доставки нет.
Проверка границы должна учитывать, что restart обычно пересоздаёт поведение и внутреннее состояние, но не исправляет ядовитое сообщение или внешнюю причину.
Проверка границы должна учитывать, что проблемное сообщение исчезает после restart и не может снова вызвать тот же отказ.
Проверка границы должна учитывать, что передача ссылки на изменяемый объект в сообщении нарушает изоляцию: отправитель может изменить данные после отправки.
Проверка границы должна учитывать, что использование акторов как универсального контейнера усложняет тесты, трассировку и управление потоком данных.
Проверка границы должна учитывать, что увеличение пула акторов всегда ускоряет обработку, даже если все команды меняют одно состояние.
Вопрос 14 из 25
В контракте темы «Надзор за акторами» новый сценарий не отменяет основное правило, но делает заметной его границу. Какой ответ это отражает?
В проектном решении сохранить утверждение «mailbox обрабатывает сообщения актора последовательно, но порядок между разными отправителями не является единым глобальным порядком» и риск «использование акторов как универсального контейнера усложняет тесты, трассировку и управление потоком данных».
В проектном решении сохранить утверждение «акторная модель изолирует изменяемое состояние внутри актора и взаимодействует через асинхронные сообщения» и риск «restart обычно пересоздаёт поведение и внутреннее состояние, но не исправляет ядовитое сообщение или внешнюю причину».
В проектном решении сохранить утверждение «supervision определяет реакцию родителя на отказ дочернего актора: restart, resume, stop или escalation» и риск «передача ссылки на изменяемый объект в сообщении нарушает изоляцию: отправитель может изменить данные после отправки».
В проектном решении сохранить утверждение «supervision определяет реакцию родителя на отказ дочернего актора: restart, resume, stop или escalation» и риск «restart обычно пересоздаёт поведение и внутреннее состояние, но не исправляет ядовитое сообщение или внешнюю причину».
В проектном решении сохранить утверждение «supervision определяет реакцию родителя на отказ дочернего актора: restart, resume, stop или escalation» и риск «штатный пример доказывает корректность порядка событий при любой нагрузке».
Вопрос 24 из 25
В контракте темы «Выбор компромисса» какой вариант не теряет существенную часть технической картины?
Опираться на семантику «mailbox обрабатывает сообщения актора последовательно, но порядок между разными отправителями не является единым глобальным порядком», но отдельно проверять ограничение «использование акторов как универсального контейнера усложняет тесты, трассировку и управление потоком данных».
Опираться на семантику «выбор акторов оправдан, когда нужна изоляция состояния, протокол сообщений и управление отказами; для простой чистой функции это лишний слой», но отдельно проверять ограничение «рассчитывать на точную очередность сообщений от нескольких акторов без протокола подтверждений опасно».
Опираться на семантику «выбор акторов оправдан, когда нужна изоляция состояния, протокол сообщений и управление отказами; для простой чистой функции это лишний слой», но отдельно проверять ограничение «результат одного измерения можно считать устойчивой характеристикой производительности».
Опираться на семантику «маршрутизация распределяет сообщения между исполнителями по выбранной политике, но сама по себе не делает операции идемпотентными», но отдельно проверять ограничение «передача ссылки на изменяемый объект в сообщении нарушает изоляцию: отправитель может изменить данные после отправки».
Опираться на семантику «выбор акторов оправдан, когда нужна изоляция состояния, протокол сообщений и управление отказами; для простой чистой функции это лишний слой», но отдельно проверять ограничение «использование акторов как универсального контейнера усложняет тесты, трассировку и управление потоком данных».