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

Объекты, значения и переменные Ruby

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. Время — 55 минут. У каждого задания ровно один правильный вариант. Фрагменты рассчитаны на Ruby 4.0.6; задания Rails — на Rails 8.1.3. После завершения откроются общий процент, 4 тематических результатов и разбор всех ответов.
Вопрос 1 из 20
Разберите выражения по порядку. Как завершится фрагмент из раздела «Модель объектов»? Нужен вариант без логического разрыва между первой и второй частью.
RubyRuby — Модель объектов
# Проследите выполнение и выберите точный результат.
value = 7
report = [value.class, value.next, nil.nil?]
p report
Вопрос 2 из 20
Как следует прочитать результат показанного примера «Локальные переменные»? Выберите связку, в которой верны и основной вывод, и его обоснование.
RubyRuby — Локальные переменные
# Проследите выполнение и выберите точный результат.
if false
  token = 1
end
p defined?(token)
p token
Вопрос 3 из 20
Проследите выполнение фрагмента. Какой результат верен для темы «Константы»? В правильном ответе вторая часть действительно объясняет или проверяет первую.
RubyRuby — Константы
# Проследите выполнение и выберите точный результат.
LIMITS = [10, 20]
LIMITS << 30
p LIMITS
p LIMITS.object_id
Вопрос 4 из 20
Какой фактический результат даст этот фрагмент по теме «Изменяемость»? Одного совпавшего вывода недостаточно — проверьте также вторую часть ответа.
RubyRuby — Изменяемость
# Проследите выполнение и выберите точный результат.
name = +'Ruby'
alias_name = name
alias_name.upcase!
p [name, alias_name, name.equal?(alias_name)]
Вопрос 5 из 20
Обычный сценарий проходит. Какой риск остаётся в теме «Модель объектов»? Оценивайте ответ целиком: обе части утверждения должны быть точными.
RubyRuby — Модель объектов
# Обычный запуск проходит. Найдите скрытый риск.
value = 7
report = [value.class, value.next, nil.nil?]
p report
Вопрос 6 из 20
Базовый пример выглядит корректно. Что всё же нарушает контракт в блоке «Локальные переменные»? Верный вариант не содержит частично правильной подмены причины или следствия.
RubyRuby — Локальные переменные
# Обычный запуск проходит. Найдите скрытый риск.
if false
  token = 1
end
p defined?(token)
p token
Вопрос 7 из 20
Что может сломаться при переносе этого решения «Константы» в рабочую систему? Правильным считается только полностью согласованное утверждение.
RubyRuby — Константы
# Обычный запуск проходит. Найдите скрытый риск.
LIMITS = [10, 20]
LIMITS << 30
p LIMITS
p LIMITS.object_id
Вопрос 8 из 20
Базовый пример выглядит корректно. Что всё же нарушает контракт в блоке «Изменяемость»? Смотрите на всю причинную связку, а не только на знакомую формулировку.
RubyRuby — Изменяемость
# Обычный запуск проходит. Найдите скрытый риск.
name = +'Ruby'
alias_name = name
alias_name.upcase!
p [name, alias_name, name.equal?(alias_name)]
Вопрос 9 из 20
Какое правило Ruby или Rails объясняет поведение в теме «Модель объектов»? Ищите не знакомые слова, а технически непротиворечивую пару утверждений.
Вопрос 10 из 20
Какой принцип темы «Локальные переменные» переносится на другие примеры того же типа? Одного совпавшего вывода недостаточно — проверьте также вторую часть ответа.
Вопрос 11 из 20
Какой принцип темы «Константы» переносится на другие примеры того же типа? Ищите не знакомые слова, а технически непротиворечивую пару утверждений.
Вопрос 12 из 20
Что является технической причиной наблюдаемого поведения «Изменяемость»? Нужен вариант без логического разрыва между первой и второй частью.
Вопрос 13 из 20
Что нужно поменять, чтобы ошибка «Модель объектов» не возвращалась при следующем изменении? Проверьте обе половины ответа: частично верный вариант остаётся неверным.
RubyRuby — Модель объектов
# Выберите изменение, которое исправляет причину.
value = 7
report = [value.class, value.next, nil.nil?]
p report
Вопрос 14 из 20
Какой рефакторинг переводит правило «Локальные переменные» из договорённости в проверяемый контракт? Оценивайте ответ целиком: обе части утверждения должны быть точными.
RubyRuby — Локальные переменные
# Выберите изменение, которое исправляет причину.
if false
  token = 1
end
p defined?(token)
p token
Вопрос 15 из 20
Какое действие добавляет недостающую гарантию в блоке «Константы»? Нужен вариант без логического разрыва между первой и второй частью.
Вопрос 16 из 20
Что нужно поменять, чтобы ошибка «Изменяемость» не возвращалась при следующем изменении? Выберите связку, в которой верны и основной вывод, и его обоснование.
Вопрос 17 из 20
Какую проверку стоит добавить, чтобы не ограничиться счастливым путём «Модель объектов»? Одного совпавшего вывода недостаточно — проверьте также вторую часть ответа.
Вопрос 18 из 20
Какой случай покажет, что исправление «Локальные переменные» не держится на удачном входе? Оценивайте ответ целиком: обе части утверждения должны быть точными.
Вопрос 19 из 20
Какой сценарий должен падать на старой реализации и проходить после исправления «Константы»? В правильном ответе вторая часть действительно объясняет или проверяет первую.
Вопрос 20 из 20
Что следует добавить в набор проверок по теме «Изменяемость», чтобы поймать редкий отказ? Смотрите на всю причинную связку, а не только на знакомую формулировку.

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

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

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

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