Что такое отладка Rubber Duck?

Мало что может быть хуже, чем запускать вашу программу в сотый раз только для того, чтобы узнать, что она по-прежнему не запускается. Даже лучшие программисты знают, на что это похоже.

Вы смотрите на блок кода, над которым вы работали часами. Этот синтаксис выглядит правильным, ваш интервал согласован, вы правильно назвали свои переменные … и что дает?

Возможно, вам нужен новый метод отладки. И вы были бы удивлены, обнаружив, что один из проверенных способов сделать это, как ни странно, связан с игрушкой в ​​виде ванн.

Что такое отладка Rubber Duck?

Это лучше всего объяснить в небольшом рассказе. Представьте себе: вы программист, работающий с командой людей. Вы занимаетесь своей повседневной работой, кодируете все, что вам нужно для кодирования, а затем сталкиваетесь с проблемой. По какой-то причине программа работает не так, как должна.

Итак, вы решили пройти по коридору и сказать своему коллеге, что имеете дело с устойчивой ошибкой. Они соглашаются помочь вам и спрашивают, что именно не так. Вы начинаете подробно объяснять проблему и обнаруживаете, что в середине своего объяснения вы нашли решение.

На самом деле это происходит в реальном мире чаще, чем вы думаете. Вам может быть интересно, какое отношение все это имеет к резиновым уткам. Что ж, вы могли бы довериться пластиковому желтому приятелю (или любому неодушевленному предмету), вместо того, чтобы беспокоить кого-то еще.

Самое приятное? Вы можете найти утешение, зная, что ваша утка не будет судить вас за вашу многословную болтовню. Если вам нужно часто отлаживать, просмотрите этот список наиболее распространенных ошибок программирования и кодирования.

Откуда взялся термин «отладка с резиновой уткой»?

«Отладка с резиновой уткой» — это отсылка к истории из книги по программированию под названием «Прагматичный программист»: От подмастерья к мастеру Эндрю Хант и Дэвид Томас. В нем программист будет носить с собой резиновый утенок и отлаживать свой код, заставляя себя объяснять его построчно.

Почему работает отладка Rubber Duck?

Часто, описывая, что должен делать код, вы наблюдаете, что код действительно делает, и впоследствии находите, где вещи не совпадают. Вот почему говорят, что преподавание предмета — один из лучших способов его выучить.. Вы должны оценивать проблемы с разных точек зрения, чтобы помочь кому-то понять, а это поможет вам понять.

Самая важная часть использования этого метода — это ваша приверженность ему. Да, может показаться крайне глупым вести такой обстоятельный односторонний разговор. Но вложить столько усилий в то, чтобы пройти через вашу проблему с другим человеком (реальным, воображаемым или созданным из резины), — это именно то, что заставит проблему, казалось бы, решить саму себя.

Этот метод работает так хорошо, потому что большинство ошибок в коде вызвано отсутствием предоставления явной информации и инструкций для программного обеспечения. Компьютеры не понимают расплывчатых инструкций. Предполагая, что ваша утка вообще ничего не знает о вашей проблеме, вы вынуждены описывать все мельчайшие детали. Оказывается, вы не все поняли так хорошо, как думали.

Как использовать метод резиновой утки?

Есть только три простых шага, чтобы научиться делать резиновую утку:

  1. Предположим, ваша утка знает абсолютно ничего о вашей проблеме. Сформулируйте проблему, как обстоят дела в данный момент и чего вы вместо этого пытаетесь достичь.
  2. Объясняйте поток вещей. Что случилось? Просмотрите каждый шаг процесса, не упуская ни одной детали.
  3. Приходите к прозрению.

Применение метода к реальной проблеме

Этот удобный метод был придуман программистами, но его определенно можно применить к проблемам вне программирования. . Как? Давайте построим еще один воображаемый сценарий: вы только что купили новый холодильник для своего дома.

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

Вы, конечно, в ярости, и начинаете говорить члену семьи. «Как такое могло случиться? Я заплатил за это, принес обратно и переместил все внутри этой штуки, которая при включении должна иметь невероятный температурный контроль…»

Ох. Вы забыли воткнуть эту чертову штуку в розетку.

Это немного смущает, но, по крайней мере, теперь вы знаете проблему. Это потому, что вы нашли время, чтобы обдумать всю ситуацию от начала до конца. Иногда, когда вы так глубоко и хорошо знакомы с процессом, вы не замечаете, что самые очевидные проблемы подкрадываются прямо к вам.

Применение метода к коду

Для примера, мы рассмотрим пример кода Python. Однако, как мы продемонстрировали, вы можете использовать свою верную резиновую уточку для решения самых разных проблем.. Метод может быть применен к любому языку программирования, на котором вы работаете.

Мы хотим вывести числа один до пяти. Итак, вы набираете весь этот код:

  для x в диапазоне (5): 
print (x, end = "")
Вывод: 0 1 2 3 4

Ага. Это странно. Вы попросили компилятор вывести диапазон из пяти чисел. В чем проблема? Давайте рассмотрим все возможности. Ваш синтаксис правильный, поскольку код работал без ошибок. Дело не в том, что вам не хватает каких-либо аргументов, потому что аргументы start и step необязательны …

Подождите. Функция range возвращает последовательность чисел с приращением на единицу (по умолчанию) и останавливается перед установленным вами верхним пределом. Но где начинаются диапазоны? В Python диапазоны начинаются с нуля, если не указано иное.

Теперь вы знаете, что должны писать.

  для x в диапазоне (5): 
print (x + 1, end = "")
Вывод: 1 2 3 4 5

По теме: 5 лучших веб-сайтов для изучения программирования на Python

Ваш маловероятный приятель по программированию

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

Кто бы мог подумать, что резиновые утки могут быть чем-то большим, чем просто игрушкой для ванны?

Оцените статью
cuterful.ru
Добавить комментарий