RB Ruby  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Строки, символы и кодировки

Тест «Строки, символы и кодировки» проверяет чтение кода, объяснение причин, поиск скрытых рисков, выбор исправления и работу с граничными сценариями. В нём 20 вопросов, 10 заданий с Ruby-кодом и 4 тематических шкал.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. Время — 55 минут. У каждого задания ровно один правильный вариант. Фрагменты рассчитаны на Ruby 4.0.6; задания Rails — на Rails 8.1.3. После завершения откроются общий процент, 4 тематических результатов и разбор всех ответов.
Вопрос 1 из 20
Проследите выполнение фрагмента. Какой результат верен для темы «Интерполяция»? Верный вариант не содержит частично правильной подмены причины или следствия.
RubyRuby — Интерполяция
# Проследите выполнение и выберите точный результат.
calculated = "total=#{2 * 3}"
literal = 'total=#{2 * 3}'
p [calculated, literal]
Вопрос 2 из 20
Что покажет выполнение этого фрагмента из раздела «Символы Symbol»? Не выбирайте ответ по одному точному фрагменту: вся формулировка должна выдерживать проверку.
RubyRuby — Символы Symbol
# Проследите выполнение и выберите точный результат.
a = :ready
b = 'ready'.to_sym
p [a == b, a.object_id == b.object_id]
state = { ready: true }
p state[a]
Вопрос 3 из 20
Какое описание результата точно соответствует показанному коду «Кодировка»? Выберите связку, в которой верны и основной вывод, и его обоснование.
RubyRuby — Кодировка
# Проследите выполнение и выберите точный результат.
text = "é"
p text.encoding
p [text.length, text.bytesize, text.bytes]
p text.valid_encoding?
Вопрос 4 из 20
Как следует прочитать результат показанного примера «Изменение строк»? Одного совпавшего вывода недостаточно — проверьте также вторую часть ответа.
RubyRuby — Изменение строк
# Проследите выполнение и выберите точный результат.
text = +'RUBY'
changed = text.upcase!
p [text, changed]
text << '!'
p text
Вопрос 5 из 20
Почему успешный пример ещё не доказывает надёжность решения «Интерполяция»? Ищите не знакомые слова, а технически непротиворечивую пару утверждений.
RubyRuby — Интерполяция
# Обычный запуск проходит. Найдите скрытый риск.
calculated = "total=#{2 * 3}"
literal = 'total=#{2 * 3}'
p [calculated, literal]
Вопрос 6 из 20
Какой дефект может проявиться на границе показанного сценария «Символы Symbol»? Смотрите на всю причинную связку, а не только на знакомую формулировку.
RubyRuby — Символы Symbol
# Обычный запуск проходит. Найдите скрытый риск.
a = :ready
b = 'ready'.to_sym
p [a == b, a.object_id == b.object_id]
state = { ready: true }
p state[a]
Вопрос 7 из 20
Где в показанном решении «Кодировка» скрыт дефект, который проявится не на каждом входе? Смотрите на всю причинную связку, а не только на знакомую формулировку.
RubyRuby — Кодировка
# Обычный запуск проходит. Найдите скрытый риск.
text = "é"
p text.encoding
p [text.length, text.bytesize, text.bytes]
p text.valid_encoding?
Вопрос 8 из 20
Какое допущение делает этот код по теме «Изменение строк» ненадёжным? Нужен вариант без логического разрыва между первой и второй частью.
RubyRuby — Изменение строк
# Обычный запуск проходит. Найдите скрытый риск.
text = +'RUBY'
changed = text.upcase!
p [text, changed]
text << '!'
p text
Вопрос 9 из 20
Какой контракт нужно помнить при ревью кода по теме «Интерполяция»? Правильным считается только полностью согласованное утверждение.
Вопрос 10 из 20
Какой принцип темы «Символы Symbol» переносится на другие примеры того же типа? Сопоставьте не только итог, но и правило, риск или проверку, которые с ним связаны.
Вопрос 11 из 20
Какой принцип темы «Кодировка» переносится на другие примеры того же типа? Смотрите на всю причинную связку, а не только на знакомую формулировку.
Вопрос 12 из 20
Какое правило остаётся верным, даже если вход и порядок вызовов изменятся, в теме «Изменение строк»? Не выбирайте ответ по одному точному фрагменту: вся формулировка должна выдерживать проверку.
Вопрос 13 из 20
Какой вариант решения «Интерполяция» останется понятным при сопровождении? Сопоставьте не только итог, но и правило, риск или проверку, которые с ним связаны.
RubyRuby — Интерполяция
# Выберите изменение, которое исправляет причину.
calculated = "total=#{2 * 3}"
literal = 'total=#{2 * 3}'
p [calculated, literal]
Вопрос 14 из 20
Какое исправление уменьшает риск, не скрывая исходное поведение «Символы Symbol»? Одного совпавшего вывода недостаточно — проверьте также вторую часть ответа.
RubyRuby — Символы Symbol
# Выберите изменение, которое исправляет причину.
a = :ready
b = 'ready'.to_sym
p [a == b, a.object_id == b.object_id]
state = { ready: true }
p state[a]
Вопрос 15 из 20
Какой рефакторинг переводит правило «Кодировка» из договорённости в проверяемый контракт? Оценивайте ответ целиком: обе части утверждения должны быть точными.
Вопрос 16 из 20
Что нужно поменять, чтобы ошибка «Изменение строк» не возвращалась при следующем изменении? Верный вариант не содержит частично правильной подмены причины или следствия.
Вопрос 17 из 20
Какой тест даст новую информацию о надёжности решения «Интерполяция»? Оценивайте ответ целиком: обе части утверждения должны быть точными.
Вопрос 18 из 20
Что нужно воспроизвести отдельно перед выпуском изменения «Символы Symbol»? Нужен вариант без логического разрыва между первой и второй частью.
Вопрос 19 из 20
Что следует добавить в набор проверок по теме «Кодировка», чтобы поймать редкий отказ? Ищите не знакомые слова, а технически непротиворечивую пару утверждений.
Вопрос 20 из 20
Какой сценарий проверит не только результат, но и побочный эффект решения «Изменение строк»? В правильном ответе вторая часть действительно объясняет или проверяет первую.

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

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

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

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