В программной инженерии отладка с помощью резиновой утки (или rubberducking ) — это метод отладки кода путем формулирования проблемы на устном или письменном естественном языке . Название является отсылкой к истории в книге «Прагматичный программист» , в которой программист носил с собой резиновую утку и отлаживал свой код, заставляя себя объяснять его утке, строка за строкой. [1] Для этой техники существует много других терминов, часто включающих различные (обычно) неодушевленные предметы или домашних животных, таких как собака или кошка. Также широко используются плюшевые мишки . [2] Когда в процесс вовлечены люди, это известно как исповедальное программирование. [3]
Многие программисты имели опыт объяснения проблемы кому-то другому, возможно, даже тому, кто ничего не знает о программировании, а затем находили решение в процессе объяснения проблемы. При описании того, что должен делать код, и наблюдении за тем, что он на самом деле делает, любое несоответствие между этими двумя становится очевидным. [4] В более общем плане, преподавание предмета заставляет оценивать его с разных точек зрения и может обеспечить более глубокое понимание . [5] Используя неодушевленный предмет, программист может попытаться достичь этого, не прерывая никого другого, и с лучшими результатами, чем те, которые наблюдались при простом размышлении вслух без аудитории. [6] Этот подход преподавался на курсах по информатике и программной инженерии. [7] [8]
1 апреля 2018 года Stack Exchange представил на своих сайтах аватар резиновой утки в качестве новой «функции» под названием Quack Overflow в качестве шутки на День дурака . Утка появилась в правом нижнем углу окна просмотра браузера и попыталась помочь посетителям, выслушав их проблемы и ответив решениями. Однако утка просто издала звук кряканья после того, как, по-видимому, подумала и набрала текст. Она ссылалась на резиновую утку как на мощный метод решения проблем. [9]