Информатика

Тема 4: Решение практических задач

Урок 3: Чтение кода и исправление ошибок

  • Видео
  • Тренажер
  • Теория
Заметили ошибку?

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

Как же это правильно читать код? 

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

Такой подход поможет и в поиске ошибок в вашей собственной программе.

А чтобы улучшить навык поиска ошибок, оставляйте комментарии в своем коде. Также комментарии нужны для того, чтобы: 

  • другие могли в быстро разобраться в коде;
  • тренировать насмотренность и быстро схватывать логику работы любой программы;
  • быстро находить ошибки в неработающей программе и ориентироваться в ней.

 

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

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

В современных средах разработки есть отладчики (debugger) — средство разработки для проверки кода. В процессе отладки используются контрольные точки (брейкпоинты).

 

  • Контрольные точки (англ. breakpoint) — функционал, предназначенный для того, чтобы заставить программу остановить выполнение на выбранной вами строке кода.

 

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

1. Синтаксические ошибки — вы нечаянно пропустили запятую или скобку, написали не тот знак, в общем, нарушили синтаксические правила языка программирования. 

2. Логические ошибки — например, вы некорректно используете переменные, типы данных, условий и алгоритмов.

 

 

 Для небольших программ хорошо работает метод обратного прослеживания. 

  1. Найдите точку вывода неправильного результата.
  2. Предположите, какие значения были у основных переменных в предыдущей точке их использования.
  3. Проверьте значение переменных в этой точке.
  4. Повторяйте до тех пор, пока не найдете ошибку.

Чаще всего при поиске решения задачи вы будете натыкаться на обсуждения на форуме программистов StackOverflow, где кто-то уже задавался похожим вопросом. Но не стоит сразу копировать ответ с наибольшим количеством голосов — посмотрите варианты и поймите, как работает их код, в чём их отличия. Убедитесь, что выбранный вариант не устарел — иногда можно найти ответы за 2012 год, которые уже неактуальны для вашей версии языка программирования.

Чтобы использовать весь потенциал StackOverflow, ищите ответы на английском. На русском StackOverflow около 300 000 тем, а на английском — более 19 миллионов, примерно в 60 раз больше.

Чем быстрее вы читаете и понимаете чужой код, тем проще работать с StackOverflow. Этот ресурс очень упростит вашу жизнь, но помните, что нельзя вслепую стащить все с StackOverflow. Если на интервью вы покажете свою программу, но не сможете объяснить её код, вас вряд ли возьмут на работу.

Ну и, конечно, лучшая профилактика ошибок и тренировка чтения кода — это написание кода. Ничто не заменит регулярную практику.