Метод «уточки» (rubber duck debugging)

Меня зовут Максим Князев. На канале я пишу об Интернете вещей, информационной безопасности и технологиях так, чтобы было понятно и полезно. Разбираю Edge AI, стандарты, уязвимости и инструменты безопасной разработки, делюсь практическим опытом и вдохновляющими кейсами.

уточкаrubber duck debuggingотладка

Привет всем айотовчанам этого канала 👋

Я тут в одном из постов обещал рассказать про "уточку" (в оригинале она называется rubber duck debugging). Чувствую, сегодня отличный день для этого. Немного истории 🤓

Вообще, выражение «расскажи это резиновой уточке» пришло из книги «The Pragmatic Programmer», опубликованной в 1999 году Эндрю Хантом и Дэвидом Томасом. Авторы описали простой, но невероятно эффективный способ для отладки кода. Нужно просто объяснить свой код и логику работы программы маленькому неодушевленному объекту. Звучит немного странно, согласен. Но давайте разберёмся, почему это работает

Представьте такую ситуацию: вы часами бьётесь над каким-то багом, строчка за строчкой просматриваете код, но никак не можете понять, где ошибка. Вот тут-то и наступает момент истины. Вы берёте резиновую уточку (хотя в роли утки может выступать любой предмет — кружка, кактус или даже фото кота) и начинаете вслух объяснять ей, как работает ваш код. Важное условие — говорить именно вслух и максимально детально, шаг за шагом, будто вы действительно объясняете свой код кому-то (нигде не указано, что это не может быть несчастный стажер, которого вы поймали и держите у себя за рабочим местом) 🤝

Именно этот процесс помогает вашему мозгу перестроиться и взглянуть на проблему с новой стороны. Дело в том, что когда мы объясняем что-то другому, даже если это безмолвная уточка, мы начинаем мыслить чётче и структурированнее. Вдруг в процессе вашего рассказа вы неожиданно останавливаетесь на какой-то строчке кода и понимаете: «А вот тут-то я и ошибся!» 🧐

Почему же именно уточка? Это отчасти шутка, отчасти маркетинг. В то время на рабочих столах программистов часто стояли забавные игрушки, которые немного разряжали обстановку и помогали отвлечься. Так резиновая уточка, простая и весёлая игрушка, стала символом того самого момента прозрения

К слову, такой метод давно стал частью профессиональной культуры разработчиков и даже получил своё место в офисах многих крупных IT-компаний, где новичкам иногда прямо выдают уточку как своего рода талисман и помощника в первые дни работы (повторюсь, в роли уточки может выступать стажер) 🦆

Если у вас на столе до сих пор нет уточки (или её аналога), самое время исправить это упущение. У меня такая уточка тоже есть (нам одногруппницы дарили на 23 февраля, когда я еще высшее образование получал)

Делитесь в комментариях своими уточками или любыми другими милыми вещами, которые стоят у вас на рабочем столе 😎

Резиновая жёлтая уточка на крышке и клавиатуре ноутбука в коллаже; визуальная иллюстрация метода «уточки» при отладке кода.
Коллаж: уточка на ноутбуке — иллюстрация метода «уточки» при отладке.

Дискуссия

Алексей Дылдин
да, несколько раз такая уточка помогала оставаться на плаву и не утонуть в тасках. наверно еще у Архимеда в его ванной была своя уточка.
M
Алексей Дылдин
да, несколько раз такая уточка помогала оставаться на плаву и не утонуть в тасках. наверно еще у Архимеда в его ванной была своя уточка.
Про Архимеда практически полностью уверен. Уточка, небось, была из пемзы
luckovka
У меня лемур:)
M
luckovka
У меня лемур:)
Очень мило)
Присоединиться к обсуждению →

Читайте так же