PL Perl  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Веб-приложения PSGI/Plack

Профессиональные сценарии по теме «Веб-приложения PSGI/Plack» проверяют диагностику, производительность, безопасность и способность защитить архитектурное решение. В тесте 30 вопросов: код нужно не только читать, но и трассировать, проверять на отказ, сопоставлять несколько правдоподобных решений. Ровно 18 заданий содержат фрагменты Perl; остальные проверяют выбор подхода в реальной ситуации. Если в условии не сказано иначе, предполагаются современный Perl 5.40+, strict и warnings; внешние модули рассматриваются в указанном контексте.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант. После завершения откроются общий результат, оценки по 6 тематическим шкалам и подробный разбор.
Вопрос 1 из 30
Какой прогноз для кода с `$app` и `$env` выдержит пошаговую проверку?
PerlПротокол PSGI
my $app=sub{ my $env=shift; return [200,['Content-Type'=>'text/plain'],['ok']] };
Вопрос 2 из 30
Какое утверждение точно описывает поведение фрагмента «Промежуточные обработчики» с `$app`?
PerlПромежуточные обработчики
builder { enable 'ContentLength'; enable 'AccessLog'; $app };
Вопрос 3 из 30
Какой вывод следует непосредственно из операций примера «Маршрутизация»?
PerlМаршрутизация
if($env->{PATH_INFO}=~m{\A/users/(\d+)\z}){ return user($1) }
Вопрос 4 из 30
Что непосредственно следует из показанного кода с `$req`, `$env` и `$id`?
PerlЖизненный цикл запроса
my $req=Plack::Request->new($env);
my $id=$req->header('X-Request-ID')||new_id();
local $ctx={id=>$id};
Вопрос 5 из 30
Какое описание не теряет важный побочный эффект участка с `$safe_app`, `$env` и `@_`?
PerlРазбор отказов
my $safe_app = sub {
    my ($env) = @_;
    my $response = eval { $app->($env) };
    return $response if $response;

    my $error = $@ || 'unknown error';
    log_failure($env->{'psgix.request_id'}, $error);
    return [500, ['Content-Type' => 'text/plain'], ['Internal Server Error']];
};
Вопрос 6 из 30
Как завершится этот код по правилам Perl 5.40?
PerlВосстановление системы
my $ready = db_ping() && queue_ping();
Вопрос 7 из 30
Какой риск связан именно с операциями ключевыми операциями?
PerlПротокол PSGI
return [200,{'Content-Type'=>'text/plain'},'ok'];
Вопрос 8 из 30
Какой отказ объясняется показанным кодом, а не внешней системой?
PerlПромежуточные обработчики
enable 'Session'; enable 'Auth';
Вопрос 9 из 30
Где находится первопричина возможного сбоя в коде с `$env` и `$prefix`?
PerlМаршрутизация
if($env->{PATH_INFO}=~/$prefix/){ require $env->{PATH_INFO} }
Вопрос 10 из 30
Какой риск связан именно с операциями `$current_user` и `$req`?
PerlЖизненный цикл запроса
our $current_user=$req->user;
Вопрос 11 из 30
Какой диагноз точнее всего относится к участку с ключевыми операциями?
PerlРазбор отказов
return [500,['Content-Type'=>'text/plain'],[$@]];
Вопрос 12 из 30
Какое скрытое допущение ломает контракт примера «Восстановление системы»?
PerlВосстановление системы
system('killall','perl');
Вопрос 13 из 30
Что изменилось в работе фрагмента «Протокол PSGI»?
PerlПротокол PSGI
return [200,['Content-Type'=>'text/plain; charset=utf-8'],[$body]];
Вопрос 14 из 30
Какое свойство новой версии с ключевыми операциями важно закрепить тестом?
PerlПромежуточные обработчики
enable 'Session'; enable 'Auth'; enable 'CSRFBlock';
Вопрос 15 из 30
Какое свойство новой версии с `%routes` важно закрепить тестом?
PerlМаршрутизация
my %routes=('GET /health'=>\&health,'POST /jobs'=>\&create_job);
Вопрос 16 из 30
Почему новая версия с `$ctx`, `$id` и `$user` устраняет исходный дефект?
PerlЖизненный цикл запроса
my $ctx={request_id=>$id,user=>$user}; return dispatch($ctx,$req);
Вопрос 17 из 30
Почему новая версия с `$e`, `$request_id` и `log_exception` устраняет исходный дефект?
PerlРазбор отказов
log_exception($e,$request_id); return problem(500,'internal error',$request_id);
Вопрос 18 из 30
Что именно стало надёжнее после изменения в блоке «Восстановление системы»?
PerlВосстановление системы
drain_instance(); restart_one_worker(); verify_health(); restore_traffic();
Вопрос 19 из 30
Какой вывод стоит перенести из учебного примера «Протокол PSGI» в рабочий код?
Вопрос 20 из 30
Какой вывод стоит перенести из учебного примера «Промежуточные обработчики» в рабочий код?
Вопрос 21 из 30
Какое правило связывает пять заданий блока «Маршрутизация»?
Вопрос 22 из 30
Какое правило связывает пять заданий блока «Жизненный цикл запроса»?
Вопрос 23 из 30
Что является главным ориентиром при работе с «Разбор отказов»?
Вопрос 24 из 30
Какой вывод объединяет результат, дефект и исправление в теме «Восстановление системы»?
Вопрос 25 из 30
Какой предел гарантий блока «Протокол PSGI» остаётся в силе после успешного запуска?
Вопрос 26 из 30
Какое предостережение по теме «Промежуточные обработчики» нельзя заменить включением strict и warnings?
Вопрос 27 из 30
Где проходит граница применимости правила из темы «Маршрутизация»?
Вопрос 28 из 30
Какое ограничение механизма «Жизненный цикл запроса» нужно учитывать даже при корректной работе обычного примера?
Вопрос 29 из 30
Какое утверждение о теме «Разбор отказов» не приписывает механизму лишних гарантий?
Вопрос 30 из 30
Какое различие в механизме «Восстановление системы» чаще всего теряют при обобщении?

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу