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

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

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

Вот три вещи, которые вы всегда должны делать, когда ваше приложение не работает.

Чтение трассировки стека

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

Вот пример трассировки стека для ошибки на этом сайте. Сам след находится слева. Это определенно пугает, когда вы впервые видите это, но профессиональные разработчики постоянно имеют дело с такими экранами. Самое важное, о чем следует помнить, это то, что трассировка почти всегда будет включать строки кода, которые вы не трогали и о которых можете ничего не знать. В 99,9% случаев вы можете игнорировать эти строки. Проблема почти всегда связана с написанным вами кодом, а не с какой-то другой библиотекой, которую вы используете. Так что найдите в трассировке строки, указывающие на код, который вы уже написали, и начните исследование с этого!

Приостановить выполнение кода

Когда люди впервые изучают JavaScript, они любят вставлять в свой код операторы console.log для проверки значений определенных переменных во время работы их программ. Это не обязательно плохой способ отладки вашего кода, но он не очень хорошо масштабируется: если вы поместите в свой код множество операторов console.log, ваш журнал может быстро запутаться, и вам может быть трудно вспомнить, где именно зарегистрированные выражения поступают из.

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

Искать в Интернете

Когда ничего не помогает, используйте коллективный разум! Маловероятно, что вы первый человек, столкнувшийся с ошибкой, которая вас блокирует. Так что зайдите в Google, перейдите на Stack Overflow и посмотрите, что другие люди говорят о связанных проблемах.

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

Но это нормально! Гораздо лучше спросить: «Эй, я застрял на этой ошибке, вот что я пробовал, и я не совсем уверен, что искать в Google. Можете ли вы дать мне несколько предложений?» чем спросить: «Эй, я застрял на этой ошибке, вот что я пробовал, вы можете это исправить?» Когда вы пытаетесь обрести уверенность в себе, ищите вопрос, который поможет вам решить текущую проблему и даст вам преимущество в любых будущих проблемах.

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

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