Метод утёнка

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Игрушечный утёнок

Метод утёнка (англ. Rubber duck debugging) — психологический метод решения задачи за счёт делегирования её мысленному помощнику. Метод описан в книге «Программист-прагматик»[1].

Аналогичный метод с использованием плюшевого медвежонка описан в книге Брайана Кернигана и Роба Пайка «Практика программирования» (1999). Медвежонок использовался в одном университетском компьютерном центре, где студенты, столкнувшиеся с загадочными багами, должны были объяснить их ему, прежде чем обращаться к наставнику[2].

Суть метода[править | править код]

Тестируемый ставит на рабочем столе игрушечного утёнка (резиновая уточка — это условность, на практике можно использовать любой предмет, символизирующий одушевлённого помощника), и когда у него возникает вопрос, на который трудно ответить, он задаёт вопрос игрушке так, словно она действительно может ответить. Автор книги предполагает, что правильная формулировка вопроса содержит половину ответа на него, при этом постановка задачи в виде вопроса воображаемому собеседнику даёт толчок мыслям, направляя их в нужное русло, переводя «поток сознания» в вид формальных терминов.

Метод также используется при отладке. Если определённая часть программы не работает, программист пытается последовательно объяснить утёнку, что делает каждая строка программы и, в процессе этого, сам находит ошибку. Такой метод отладки, по сути, представляет собой Code review, в ходе которого программист «призывает» на помощь воображаемого помощника.

В популярной культуре[править | править код]

1 апреля 2018 года Stack Exchange представила на своих сайтах новую функцию — Quack Overflow, утку, появляющуюся в правом нижнем углу окна просмотра браузера и пытающуюся помочь посетителю, слушая его проблему и отвечая. После «выслушивания» вопроса и его «обработки», утка просто производит звук «кряканья» и ссылается на статью о методе утёнка, как о мощном методе решения проблем. Смущённые посетители, увидев утку впервые, подумали, что на их компьютерах установлено вредоносное программное обеспечение прежде, чем осознать, что это первоапрельская шутка[источник не указан 1650 дней][значимость факта?].

В художественной литературе[править | править код]

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

Александр Немировский «Разговор с ослом»

См. также[править | править код]

Примечания[править | править код]

  1. The Pragmatic Programmer: From Journeyman to Master (англ.). — Addison Wesley. — ISBN 978-0201616224. Архивировано 27 сентября 2015 года. p. 95, footnote.
  2. ISBN 0-201-61586-X

Литература[править | править код]

  1. Andrew Hunt. The Pragmatic Programmer: From Journeyman to Master (англ.). — ISBN 0-201-61622-X.