💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом задании верен только один вариант. После завершения будут показаны общий результат и 6 тематических шкал.
Вопрос 4 из 30
Что изменить в «Маршрут как малая часть выбора», чтобы скрытое допущение стало явным контрактом?
Kotlin Ktor или Spring · Маршрут как малая часть выбора Копировать
// Сохраните назначение фрагмента, но укрепите его контракт.
// Ktor
fun Application.healthModule() {
routing {
get("/health") { call.respondText("ok") }
}
}
Собрать тонкий вертикальный прототип с реальной авторизацией, базой, метриками и deployment, а не сравнивать учебные маршруты.
Вынести участок в отдельный метод, считая верным следующее: Ktor автоматически делает любой обработчик неблокирующим, даже при JDBC-вызове.
Перенести проверку в вызывающий код, исходя из того, что ktor подходит только для Android, а Spring — только для Java-кода.
Оставить структуру прежней, документировав утверждение: Выбор можно однозначно сделать по числу строк hello-world.
Оставить реализацию без изменений и закрепить тестом предположение: Spring не поддерживает suspend endpoints ни в каком виде.
Вопрос 17 из 30
Какую правку выбрать, чтобы сохранить назначение «Suspend-функция внутри транзакции» и убрать хрупкость?
Kotlin Доступ к данным · Suspend-функция внутри транзакции Копировать
// Сохраните назначение фрагмента, но укрепите его контракт.
suspend fun transfer(from: Id, to: Id, amount: Money) = database.transaction {
debit(from, amount)
credit(to, amount)
}
Зафиксировать текущее поведение регрессионным тестом: Credit может выполниться раньше debit из-за компилятора.
Использовать поддерживаемый транзакционный оператор, не запускать параллельные запросы внутри одной connection-транзакции без гарантии драйвера.
Передать ответственность владельцу вызова, предполагая, что ошибки debit преобразуются в успешный rollback-результат.
Оставить структуру прежней, документировав утверждение: Любая coroutine сохраняет одно JDBC-соединение при смене потока без поддержки библиотеки.
Вынести участок в отдельный метод, считая верным следующее: Suspend автоматически делает обе записи атомарными.