Rubber ducking

Объяснить задачу вслух, чтобы самому понять проблему

В этом разборе

Rubber ducking — подробное объяснение проблемы слушателю, чтобы самому заметить пробел или несоответствие. В программировании полное название приёма — rubber duck debugging.

Зачем объяснять код утке

Разработчик рассказывает, что код должен делать, и проходит по его действиям шаг за шагом. При объяснении может обнаружиться разница между намерением и тем, что программа делает на самом деле.

В классическом образе слушатель — резиновая утка на столе. Она не отвечает и не предлагает исправление. Смысл приёма в том, что автору приходится сформулировать рассуждение, которое до этого оставалось у него в голове.

Can I use you as a rubber duck for a minute?

Можно я минутку проговорю тебе проблему, чтобы разобраться?

Эта рабочая реплика может приглашать коллегу прежде всего послушать. Она не обязательно означает «реши задачу за меня». Человек в данном случае используется для того, чтобы легче было говорить, обращаясь адресно к кому-то.

Когда выражение встречается вне программирования

Название переносят и на другие задачи, где помогает уточнить собственное объяснение. Например, человек ищет английскую формулировку, подробно описывает, что хочет сказать, и замечает, что в описании уже получилось удачное предложение.

Здесь «уткой» становится тот, кому объясняют вопрос. Это пример переноса профессионального образа, а не утверждение, что говорящий занимается отладкой программы. Разговор с игрушкой для практики языка тоже встречается в советах сообществ.

Проверьте себя

Подумайте над ответом и откройте объяснение.

1. Что может понадобиться от слушателя?

Разработчик хочет проговорить последовательность работы кода.

Can I use you as a rubber duck for a minute?

  1. Выслушать объяснение, пока автор проверяет собственный ход мысли.
  2. Обязательно сразу написать исправленный код вместо автора.
Показать ответ

Верный ответ — 1. В этом приёме слушатель может не предлагать решения. Когда ожидаемый результат и шаги сформулированы вслух, автор иногда сам замечает несоответствие.

2. Нужна ли именно игрушка?

Коллега спокойно слушает объяснение задачи и не перебивает.

I spotted the problem while explaining it to you.

  1. Без резиновой утки такой принцип невозможен.
  2. Коллега может выполнять роль слушателя; важен ход объяснения.
Показать второй ответ

Верный ответ — 2. Резиновая утка — образ пассивного слушателя. Содержание объяснения и поиск несоответствия важнее конкретного предмета; обнаружение ошибки при этом не гарантировано.

Источники

  1. Rubber Duck Debugging: описание приёма и роль коллеги
  2. Jeff Atwood: Rubber Duck Problem Solving
  3. Поиск формулировки и rubber duck method — Reddit grammar
  4. Разговор с предметом: вопрос и советы сообщества — Reddit languagelearning
Сообщить об ошибке