Игрушечный утёнок

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

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

Суть метода

править

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

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

В популярной культуре

править

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

В художественной литературе

править

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

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

См. также

править

Примечания

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

Литература

править

📚 Artikel Terkait di Wikipedia

Синий экран смерти

драйверов для более детального определения причин ошибки (с помощью Microsoft Debugging Tools). В рамках Windows Resource Kit[англ.] синие экраны смерти называются

Visual Studio Code

https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005 Debugging in Visual Studio Code (англ.). Архивировано 7 октября 2017. Дата обращения:

Программная ошибка

разу не наблюдалась в реальных условиях. Для отладки программы (англ. debugging) разработчиками ПО используются специальные программы-отладчики (англ

Отладчик

Android SDK и Android Studio (Android). Inside Windows Debugging: Inside Windows Debugging_p1 - Tarik Soulami - Google Книги (англ.). Дата обращения:

C++

(although this has significantly improved in the last few years), lack of debugging support or IO during template instantiation, long compilation times, long

Трассировка (программирование)

отладчиков. В некоторых системах реализуется также шаг назад (reverse debugging). Трассировка появилась вместе с первыми системами отладки в 1960-х годах

DNS

Configuration Errors RFC 1591 — Domain Name System Structure and Delegation RFC 1713 — Tools for DNS Debugging RFC 2606 — Reserved Top Level DNS Names

Крис Касперски

Protection Against Unsanctioned CD Copying, ISBN 978-1-931769-33-4 Hacker Debugging Uncovered, ISBN 978-1-931769-40-2 Code Optimization: Effective Memory