💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом задании верен только один вариант. Фрагменты относятся к Scala 3; внешняя библиотека названа прямо в коде или условии.
Вопрос 6 из 30
В теме «Согласованность» как сформулировать семантику примера так, чтобы она сохранилась после переименования переменных?
ScalaСогласованность: чтение фрагмента
case class Version(value: Long)
case class Account(id: String, balance: BigDecimal, version: Version)
def update(current: Account, expected: Version, next: BigDecimal): Option[Account] =
Option.when(current.version == expected)(current.copy(balance = next, version = Version(expected.value + 1)))
Вопрос 8 из 30
При исправлении темы «Согласованность» какой вариант не переносит проблему в вызывающий код?
ScalaСогласованность: решение на ревью
case class Version(value: Long)
case class Account(id: String, balance: BigDecimal, version: Version)
def update(current: Account, expected: Version, next: BigDecimal): Option[Account] =
Option.when(current.version == expected)(current.copy(balance = next, version = Version(expected.value + 1)))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 16 из 30
В теме «Наблюдаемость» что в этом примере определяется семантикой Scala, а не соглашением автора?
ScalaНаблюдаемость: чтение фрагмента
case class LogContext(orderId: String, traceId: String, attempt: Int)
def fields(c: LogContext): Map[String, String] = Map(
"order_id" -> c.orderId,
"trace_id" -> c.traceId,
"attempt" -> c.attempt.toString
)
println(fields(LogContext("o-7", "t-2", 1)))
Вопрос 17 из 30
Для темы «Наблюдаемость» после переноса кода в общий модуль проявилось скрытое допущение. Какое?
ScalaНаблюдаемость: изменившийся контекст
// Дополнительный контекст: Горячий ключ остался у одного владельца, хотя число экземпляров сервиса увеличили.
case class LogContext(orderId: String, traceId: String, attempt: Int)
def fields(c: LogContext): Map[String, String] = Map(
"order_id" -> c.orderId,
"trace_id" -> c.traceId,
"attempt" -> c.attempt.toString
)
println(fields(LogContext("o-7", "t-2", 1)))
Вопрос 18 из 30
Что следует изменить перед объединением кода по теме «Наблюдаемость»?
ScalaНаблюдаемость: решение на ревью
case class LogContext(orderId: String, traceId: String, attempt: Int)
def fields(c: LogContext): Map[String, String] = Map(
"order_id" -> c.orderId,
"trace_id" -> c.traceId,
"attempt" -> c.attempt.toString
)
println(fields(LogContext("o-7", "t-2", 1)))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 19 из 30
В контракте темы «Наблюдаемость» клиент повторил команду после тайм-аута, не зная, завершилась ли первая попытка. Какой вывод одновременно сохраняет правило и учитывает его границу?
Вопрос 24 из 30
В контракте темы «Контроль ресурсов» локальный пример стал частью более крупной системы. Какая трактовка контракта остаётся полной?
Вопрос 25 из 30
При проверке темы «Контроль ресурсов» какой пункт следует добавить в критерии приёмки изменения?
Вопрос 29 из 30
В контракте темы «Масштабирование решения» условия эксплуатации изменились, но синтаксис остался прежним. Что теперь важно удержать вместе?