4 основных совета по отладке любого кода
«Если отладка - это процесс устранения ошибок программного обеспечения, тогда программирование должно быть процессом их создания» — Edsger W. Dijkstra.
Ошибки — естественный побочный эффект программирования. К сожалению, это не делает процесс устранения указанных ошибок менее неприятным, особенно если они несут ответственность за полное нарушение работы вашей программы. Существуют методы отладки, которые помогают сделать процесс немного более плавным и простым. Большинство из приведенных ниже советов взято из учебника Дэвида Дж. Аганса «Отладка: 9 обязательных правил для поиска даже самых неуловимых программных и аппаратных проблем».
1. Сумейте повторить ошибку
Надежное воспроизведение ошибок — это половина дела. У вас будет гораздо больше шансов идентифицировать и исправить ошибку, если вы сможете воспроизводить ее каждый раз одинаково. Когда вы обнаружили ошибку, даже не думайте о коде, в котором может быть проблема. Просто представьте код как черный ящик и выясните, какие входные данные могли вызвать ошибку. Как только вы сможете воспроизвести ее, сократите шаги, необходимые для ее воспроизведения. Подумайте о самом простом, что вы можете сделать, чтобы ошибка появилась. Это помогает уменьшить количество переменных, когда вы пытаетесь исправить ошибки
2. Разделяй и властвуй
Учитывая, что вы можете последовательно воспроизводить ошибку, теперь вам нужно выяснить, какая часть кода ее вызывает . Здесь вы должны попытаться углубиться в конкретную область кода. От одной до пяти строк кода — это уровень точности, которого вы должны стремиться достичь.
3. Изучите ландшафт
После сужения общей области поиска, просмотрите код в этой области. Тщательное понимание того, что делает код, позволяет вам вносить хорошо информированные изменения, чтобы не вызывать новые ошибки, пока вы пытаетесь исправить старую. Так что не забудьте внимательно прочитать код и найти ответы на вопросы, которые могут возникнуть у вас в голове. Почему так написано? Когда запускается конкретная строка кода? Почему эта переменная или функция необходима в этой реализации? Если появилось сообщение об ошибке, внимательно прочтите и его. Ставьте под сомнение свои предположения.
4. Вносите изменения поэтапно
Скорость и эффективность — хорошие качества, которыми должен обладать программист. Однако, когда дело доходит до работы с ошибками, нужно быть внимательным.
Если возможно, создайте песочницу для кода. Посмотрите, сможете ли вы воспроизвести ту же ошибку, превратив эту часть кода во что-нибудь несложное. Это может быть отдельная программа, приложение, класс или что-то еще, что схоже вашей среде. Это избавляет от всех других переменных. Это поможет вам сосредоточиться на этой части кода и упростит изменение только одного элемента за раз, избавившись от всех других отвлекающих факторов.