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

Модернизация старого Perl-кода

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

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант. После завершения откроются общий результат, оценки по 6 тематическим шкалам и подробный разбор.
Вопрос 1 из 30
Какой прогноз для кода с `$count` выдержит пошаговую проверку?
PerlРежимы strict и warnings
use strict; use warnings;
my $count=0;
Вопрос 2 из 30
Какое утверждение точно описывает поведение фрагмента «Характеризующие тесты» с `$before`, `$fixture` и `$expected`?
PerlХарактеризующие тесты
my $before=run_legacy($fixture);
is_deeply normalize($before),$expected,'invoice behavior';
Вопрос 3 из 30
Как ведёт себя участок «Декомпозиция» при выполнении?
PerlДекомпозиция
sub process { parse(); validate(); enrich(); save(); notify(); }
Вопрос 4 из 30
Что непосредственно следует из показанного кода с `%CONFIG`, `$DBH` и `$CURRENT_USER`?
PerlЗамена глобального состояния
our %CONFIG; our $DBH; our $CURRENT_USER;
Вопрос 5 из 30
Какую скрытую зависимость создают позиции `$row->[7]` и `$row->[12]`?
PerlКачество данных
my $amount=$row->[7]; my $date=$row->[12];
Вопрос 6 из 30
Как завершится этот код по правилам Perl 5.40?
PerlВоспроизводимость результата
my $json=JSON::MaybeXS->new(canonical=>1);
print $json->encode($result);
Вопрос 7 из 30
Какой диагноз точнее всего относится к участку с ключевыми операциями?
PerlРежимы strict и warnings
no warnings 'uninitialized';
Вопрос 8 из 30
Какой риск связан именно с операциями `rewrite_all` и `then_add_tests`?
PerlХарактеризующие тесты
rewrite_all(); then_add_tests();
Вопрос 9 из 30
Почему участок с ключевыми операциями ненадёжен на пограничном входе?
PerlДекомпозиция
sub process { goto &legacy_process }
Вопрос 10 из 30
Какой отказ объясняется показанным кодом, а не внешней системой?
PerlЗамена глобального состояния
local %CONFIG=%test;
Вопрос 11 из 30
Что в этом коде нарушает ожидаемое поведение?
PerlКачество данных
my %r; @r{@headers}=@fields;
Вопрос 12 из 30
Что нужно заметить при ревью фрагмента «Воспроизводимость результата»?
PerlВоспроизводимость результата
my %seen = map { $_ => 1 } qw(alpha beta gamma);
print join ',', keys %seen;
Вопрос 13 из 30
Почему новая версия с `$value` и `$row` устраняет исходный дефект?
PerlРежимы strict и warnings
my $value=$row->{x};
die 'missing x' unless defined $value;
Вопрос 14 из 30
Какую гарантию добавляет правка «Характеризующие тесты» с `capture_inputs_outputs_side_effects`, `change_one_seam` и `compare_results`?
PerlХарактеризующие тесты
capture_inputs_outputs_side_effects();
change_one_seam();
compare_results();
Вопрос 15 из 30
Какой вывод точнее всего объясняет пользу правки «Декомпозиция»?
PerlДекомпозиция
sub process { my($deps,$input)=@_; my $v=parse($input); validate($v); return save($deps->{db},$v) }
Вопрос 16 из 30
Что именно стало надёжнее после изменения в блоке «Замена глобального состояния»?
PerlЗамена глобального состояния
sub new { bless {config=>$cfg,db=>$dbh},shift }
Вопрос 17 из 30
Как правка с `$record`, `$line` и `parse_row` меняет поведение на неудобном входе?
PerlКачество данных
my $record=parse_row($line); validate_record($record);
Вопрос 18 из 30
Что отличает это исправление от маскировки симптома?
PerlВоспроизводимость результата
sort_records(); set_locale('C'); freeze_versions();
Вопрос 19 из 30
На что следует опираться при ревью кода по теме «Режимы strict и warnings»?
Вопрос 20 из 30
Какой принцип объясняет три кодовых примера блока «Характеризующие тесты»?
Вопрос 21 из 30
Какую закономерность проверяют задания темы «Декомпозиция»?
Вопрос 22 из 30
Какой принцип объясняет три кодовых примера блока «Замена глобального состояния»?
Вопрос 23 из 30
Какой общий принцип темы «Качество данных» переносится на другие программы?
Вопрос 24 из 30
Какую закономерность проверяют задания темы «Воспроизводимость результата»?
Вопрос 25 из 30
Какое ограничение механизма «Режимы strict и warnings» нужно учитывать даже при корректной работе обычного примера?
Вопрос 26 из 30
Какое предостережение по теме «Характеризующие тесты» нельзя заменить включением strict и warnings?
Вопрос 27 из 30
Что остаётся верным о теме «Декомпозиция», если учитывать контекст, отказ и побочный эффект?
Вопрос 28 из 30
Какое ограничение блока «Замена глобального состояния» следует проверять отдельным примером?
Вопрос 29 из 30
Что остаётся верным о теме «Качество данных», если учитывать контекст, отказ и побочный эффект?
Вопрос 30 из 30
Как точнее всего обозначить границу безопасного использования приёма «Воспроизводимость результата»?

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

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

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

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