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

Рефлексия и устройство модели объектов

Тест «Рефлексия и устройство модели объектов» проверяет чтение кода, объяснение причин, поиск скрытых рисков, выбор исправления и работу с граничными сценариями. В нём 30 вопросов, 18 заданий с Ruby-кодом и 6 тематических шкал.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. Время — 85 минут. У каждого задания ровно один правильный вариант. Фрагменты рассчитаны на Ruby 4.0.6; задания Rails — на Rails 8.1.3. После завершения откроются общий процент, 6 тематических результатов и разбор всех ответов.
Вопрос 1 из 30
Какое описание результата точно соответствует показанному коду «Class и Module»? Правильным считается только полностью согласованное утверждение.
RubyRuby — Class и Module
# Проследите выполнение и выберите точный результат.
p Class < Module
p String.class
p Enumerable.class
mod = Module.new { def marker = :ok }
klass = Class.new { include mod }
p klass.new.marker
Вопрос 2 из 30
Что произойдёт после последней строки в примере по теме «Синглтон-класс объекта»? Верный вариант не содержит частично правильной подмены причины или следствия.
RubyRuby — Синглтон-класс объекта
# Проследите выполнение и выберите точный результат.
item = Object.new
def item.label = 'special'
other = Object.new
p item.singleton_class
p [item.label, other.respond_to?(:label)]
Вопрос 3 из 30
Что покажет выполнение этого фрагмента из раздела «Контекст выполнения Binding»? Правильным считается только полностью согласованное утверждение.
RubyRuby — Контекст выполнения Binding
# Проследите выполнение и выберите точный результат.
price = 10
context = binding
p context.local_variable_get(:price)
p eval('price * 2', context)
Вопрос 4 из 30
Какое описание результата точно соответствует показанному коду «Исследование объектов через ObjectSpace»? Не выбирайте ответ по одному точному фрагменту: вся формулировка должна выдерживать проверку.
RubyRuby — Исследование объектов через ObjectSpace
# Проследите выполнение и выберите точный результат.
require 'objspace'
GC.start
count = ObjectSpace.each_object(String).count
p count
p ObjectSpace.memsize_of('ruby')
Вопрос 5 из 30
Проследите выполнение фрагмента. Какой результат верен для темы «Совместимость и переносимость»? Верный вариант не содержит частично правильной подмены причины или следствия.
RubyRuby — Совместимость и переносимость
# Проследите выполнение и выберите точный результат.
p [RUBY_ENGINE, RUBY_VERSION, RUBY_PLATFORM]
feature = Fiber.respond_to?(:scheduler)
p feature
Вопрос 6 из 30
Проследите выполнение фрагмента. Какой результат верен для темы «Стратегия тестирования»? Правильным считается только полностью согласованное утверждение.
RubyRuby — Стратегия тестирования
# Проследите выполнение и выберите точный результат.
klass = Class.new do
  define_method(:call) { |input:, strict: false| [input, strict] }
end
method = klass.instance_method(:call)
p [method.parameters, klass.public_instance_methods(false).include?(:call)]
Вопрос 7 из 30
Что в реализации по теме «Class и Module» требует исправления прежде всего? Верный вариант не содержит частично правильной подмены причины или следствия.
RubyRuby — Class и Module
# Обычный запуск проходит. Найдите скрытый риск.
p Class < Module
p String.class
p Enumerable.class
mod = Module.new { def marker = :ok }
klass = Class.new { include mod }
p klass.new.marker
Вопрос 8 из 30
Какое допущение делает этот код по теме «Синглтон-класс объекта» ненадёжным? Оценивайте ответ целиком: обе части утверждения должны быть точными.
RubyRuby — Синглтон-класс объекта
# Обычный запуск проходит. Найдите скрытый риск.
item = Object.new
def item.label = 'special'
other = Object.new
p item.singleton_class
p [item.label, other.respond_to?(:label)]
Вопрос 9 из 30
Что в реализации по теме «Контекст выполнения Binding» требует исправления прежде всего? Не выбирайте ответ по одному точному фрагменту: вся формулировка должна выдерживать проверку.
RubyRuby — Контекст выполнения Binding
# Обычный запуск проходит. Найдите скрытый риск.
price = 10
context = binding
p context.local_variable_get(:price)
p eval('price * 2', context)
Вопрос 10 из 30
Какое допущение делает этот код по теме «Исследование объектов через ObjectSpace» ненадёжным? Верный вариант не содержит частично правильной подмены причины или следствия.
RubyRuby — Исследование объектов через ObjectSpace
# Обычный запуск проходит. Найдите скрытый риск.
require 'objspace'
GC.start
count = ObjectSpace.each_object(String).count
p count
p ObjectSpace.memsize_of('ruby')
Вопрос 11 из 30
Какой отказ связан с причиной в коде, а не с внешним шумом, в теме «Совместимость и переносимость»? Одного совпавшего вывода недостаточно — проверьте также вторую часть ответа.
RubyRuby — Совместимость и переносимость
# Обычный запуск проходит. Найдите скрытый риск.
p [RUBY_ENGINE, RUBY_VERSION, RUBY_PLATFORM]
feature = Fiber.respond_to?(:scheduler)
p feature
Вопрос 12 из 30
Обычный сценарий проходит. Какой риск остаётся в теме «Стратегия тестирования»? Сопоставьте не только итог, но и правило, риск или проверку, которые с ним связаны.
RubyRuby — Стратегия тестирования
# Обычный запуск проходит. Найдите скрытый риск.
klass = Class.new do
  define_method(:call) { |input:, strict: false| [input, strict] }
end
method = klass.instance_method(:call)
p [method.parameters, klass.public_instance_methods(false).include?(:call)]
Вопрос 13 из 30
Почему показанный фрагмент «Class и Module» ведёт себя именно так? Верный вариант не содержит частично правильной подмены причины или следствия.
Вопрос 14 из 30
Какое свойство Ruby или Rails определяет результат примера «Синглтон-класс объекта»? В правильном ответе вторая часть действительно объясняет или проверяет первую.
Вопрос 15 из 30
Какой механизм отделяет верный разбор от похожего, но ошибочного объяснения «Контекст выполнения Binding»? Выберите связку, в которой верны и основной вывод, и его обоснование.
Вопрос 16 из 30
Какое общее правило связывает результат и риск в разделе «Исследование объектов через ObjectSpace»? Оценивайте ответ целиком: обе части утверждения должны быть точными.
Вопрос 17 из 30
Какой механизм объясняет и обычный, и граничный сценарий «Совместимость и переносимость»? Одного совпавшего вывода недостаточно — проверьте также вторую часть ответа.
Вопрос 18 из 30
Какое правило Ruby или Rails объясняет поведение в теме «Стратегия тестирования»? Правильным считается только полностью согласованное утверждение.
Вопрос 19 из 30
Какое изменение устраняет причину проблемы в теме «Class и Module», а не маскирует симптом? Нужен вариант без логического разрыва между первой и второй частью.
RubyRuby — Class и Module
# Выберите изменение, которое исправляет причину.
p Class < Module
p String.class
p Enumerable.class
mod = Module.new { def marker = :ok }
klass = Class.new { include mod }
p klass.new.marker
Вопрос 20 из 30
Какое изменение устраняет причину проблемы в теме «Синглтон-класс объекта», а не маскирует симптом? Ищите не знакомые слова, а технически непротиворечивую пару утверждений.
RubyRuby — Синглтон-класс объекта
# Выберите изменение, которое исправляет причину.
item = Object.new
def item.label = 'special'
other = Object.new
p item.singleton_class
p [item.label, other.respond_to?(:label)]
Вопрос 21 из 30
Какой вариант правки выдержит граничный сценарий темы «Контекст выполнения Binding»? Правильным считается только полностью согласованное утверждение.
RubyRuby — Контекст выполнения Binding
# Выберите изменение, которое исправляет причину.
price = 10
context = binding
p context.local_variable_get(:price)
p eval('price * 2', context)
Вопрос 22 из 30
Что нужно поменять, чтобы ошибка «Исследование объектов через ObjectSpace» не возвращалась при следующем изменении? Одного совпавшего вывода недостаточно — проверьте также вторую часть ответа.
RubyRuby — Исследование объектов через ObjectSpace
# Выберите изменение, которое исправляет причину.
require 'objspace'
GC.start
count = ObjectSpace.each_object(String).count
p count
p ObjectSpace.memsize_of('ruby')
Вопрос 23 из 30
Какое исправление уменьшает риск, не скрывая исходное поведение «Совместимость и переносимость»? Верный вариант не содержит частично правильной подмены причины или следствия.
RubyRuby — Совместимость и переносимость
# Выберите изменение, которое исправляет причину.
p [RUBY_ENGINE, RUBY_VERSION, RUBY_PLATFORM]
feature = Fiber.respond_to?(:scheduler)
p feature
Вопрос 24 из 30
Какое изменение устраняет причину проблемы в теме «Стратегия тестирования», а не маскирует симптом? Проверьте обе половины ответа: частично верный вариант остаётся неверным.
RubyRuby — Стратегия тестирования
# Выберите изменение, которое исправляет причину.
klass = Class.new do
  define_method(:call) { |input:, strict: false| [input, strict] }
end
method = klass.instance_method(:call)
p [method.parameters, klass.public_instance_methods(false).include?(:call)]
Вопрос 25 из 30
Какую проверку стоит добавить, чтобы не ограничиться счастливым путём «Class и Module»? Проверьте обе половины ответа: частично верный вариант остаётся неверным.
Вопрос 26 из 30
Какую проверку стоит добавить, чтобы не ограничиться счастливым путём «Синглтон-класс объекта»? Ищите не знакомые слова, а технически непротиворечивую пару утверждений.
Вопрос 27 из 30
Какой сценарий должен падать на старой реализации и проходить после исправления «Контекст выполнения Binding»? Правильным считается только полностью согласованное утверждение.
Вопрос 28 из 30
Какую проверку стоит добавить, чтобы не ограничиться счастливым путём «Исследование объектов через ObjectSpace»? Смотрите на всю причинную связку, а не только на знакомую формулировку.
Вопрос 29 из 30
Какой граничный сценарий лучше всего проверит решение по теме «Совместимость и переносимость»? Нужен вариант без логического разрыва между первой и второй частью.
Вопрос 30 из 30
Какую проверку стоит добавить, чтобы не ограничиться счастливым путём «Стратегия тестирования»? Смотрите на всю причинную связку, а не только на знакомую формулировку.

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

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

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

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