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

Событийное и асинхронное программирование

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

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант. После завершения откроются общий результат, оценки по 6 тематическим шкалам и подробный разбор.
Вопрос 1 из 30
Какое описание не теряет важный побочный эффект участка с `$loop`, `add` и `new`?
PerlЦикл событий
my $loop=IO::Async::Loop->new;
$loop->add(IO::Async::Timer::Periodic->new(interval=>1,on_tick=>sub{poll_once()})->start);
$loop->run;
Вопрос 2 из 30
Как ведёт себя участок «Обещания и отложенные результаты» при выполнении?
PerlОбещания и отложенные результаты
my $f=$client->GET($url);
$f->then(sub{ decode($_[0]) })->then(sub{ store($_[0]) })->retain;
Вопрос 3 из 30
Какое утверждение точно описывает поведение фрагмента «Неблокирующий ввод-вывод» с `$loop`, `$fh` и `$s`?
PerlНеблокирующий ввод-вывод
$loop->add(IO::Async::Stream->new(handle=>$fh,on_read=>sub{ my($s,$buffref,$eof)=@_; consume_frames($buffref); return 0 }));
Вопрос 4 из 30
Что в этом примере с `$f`, `$timer` и `long_job` происходит на самом деле?
PerlОтмена
my $f=long_job();
$timer->on_expire(sub{ $f->cancel });
Вопрос 5 из 30
Какое описание не теряет важный побочный эффект участка с `$r`, `fetch` и `decode`?
PerlСовместимость и переносимость
use Future::AsyncAwait;
async sub load { my $r=await fetch(); return decode($r) }
Вопрос 6 из 30
Какое утверждение точно описывает поведение фрагмента «Стратегия тестирования» с `$clock`, `$test_loop` и `$f`?
PerlСтратегия тестирования
my $clock=$test_loop->time;
my $f=operation(timeout=>5);
$test_loop->advance_time(5);
Вопрос 7 из 30
Какой риск связан именно с операциями `fetch_sync`?
PerlЦикл событий
on_tick=>sub{ sleep 10; fetch_sync() }
Вопрос 8 из 30
Что в этом коде нарушает ожидаемое поведение?
PerlОбещания и отложенные результаты
$future->on_done(sub { handle_result(@_) });
$future->on_fail(sub { warn "request failed: @_" });
Вопрос 9 из 30
Что нужно заметить при ревью фрагмента «Неблокирующий ввод-вывод»?
PerlНеблокирующий ввод-вывод
my $n=sysread($fh,my $buf,1_000_000); process($buf);
Вопрос 10 из 30
Какое скрытое допущение ломает контракт примера «Отмена»?
PerlОтмена
$future=undef;
Вопрос 11 из 30
Какое скрытое допущение ломает контракт примера «Совместимость и переносимость»?
PerlСовместимость и переносимость
await blocking_db_call();
Вопрос 12 из 30
Какое скрытое допущение ломает контракт примера «Стратегия тестирования»?
PerlСтратегия тестирования
sleep 6; ok $f->is_failed;
Вопрос 13 из 30
Почему новая версия с `$timer`, `@_` и `new` устраняет исходный дефект?
PerlЦикл событий
my $timer = IO::Async::Timer::Periodic->new(
    interval => 1,
    on_tick => sub {
        start_async_fetch()->on_done(sub { handle_result(@_) });
    },
);
Вопрос 14 из 30
Как правка с `$next`, `$future` и `@_` меняет поведение на неудобном входе?
PerlОбещания и отложенные результаты
my $next = $future
    ->then(sub { transform(@_) })
    ->else(sub { recover($_[0]) });
Вопрос 15 из 30
Как исправленный код с `$frame`, `$buffer` и `extract_complete_frame` сохраняет исходное назначение?
PerlНеблокирующий ввод-вывод
while(my $frame=extract_complete_frame($buffer)){ process($frame) }
Вопрос 16 из 30
Какое свойство новой версии с `$f`, `$socket` и `$pid` важно закрепить тестом?
PerlОтмена
$f->on_cancel(sub{ close $socket; kill TERM=>$pid });
Вопрос 17 из 30
Что отличает это исправление от маскировки симптома?
PerlСовместимость и переносимость
my $f=$adapter->call_async(@args); await $f;
Вопрос 18 из 30
Почему исправленная версия «Стратегия тестирования» устраняет первопричину?
PerlСтратегия тестирования
inject_loop_and_clock(); simulate_read_chunks(); simulate_cancel();
Вопрос 19 из 30
Какой принцип объясняет три кодовых примера блока «Цикл событий»?
Вопрос 20 из 30
Какой принцип объясняет три кодовых примера блока «Обещания и отложенные результаты»?
Вопрос 21 из 30
Какой принцип объясняет три кодовых примера блока «Неблокирующий ввод-вывод»?
Вопрос 22 из 30
Как сформулировать основное правило блока «Отмена» без лишних обещаний?
Вопрос 23 из 30
Какое правило отделяет семантику Perl от случайно удачного запуска?
Вопрос 24 из 30
Как сформулировать общий контракт механизма «Стратегия тестирования»?
Вопрос 25 из 30
Какую оговорку нужно добавить к основному правилу темы «Цикл событий»?
Вопрос 26 из 30
Какую оговорку нужно добавить к основному правилу темы «Обещания и отложенные результаты»?
Вопрос 27 из 30
Какое ограничение механизма «Неблокирующий ввод-вывод» нужно учитывать даже при корректной работе обычного примера?
Вопрос 28 из 30
Какое различие в механизме «Отмена» чаще всего теряют при обобщении?
Вопрос 29 из 30
Какое ограничение блока «Совместимость и переносимость» следует проверять отдельным примером?
Вопрос 30 из 30
Какое различие в механизме «Стратегия тестирования» чаще всего теряют при обобщении?

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

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

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

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