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

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

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

Сообщения об ошибках ваши друзья

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

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

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

Описание ошибки - это лучшее предположение интерпретатора Ruby о том, что пошло не так. Чаще всего описание ошибки достаточно конкретное, чтобы вы могли найти решение. Например, описание ошибки, в котором указано «undefined local variable or method 'some_word_or_phrase' for main: Object», скорее всего, приведет вас к обнаружению, что вы либо не определили это слово или фразу как переменную или метод, либо не определили правильно произнесите слово или фразу где-нибудь в коде.

Существует много разных типов ошибок, но два из самых распространенных - это ошибки имени и ошибки синтаксиса. Если интерпретатор Ruby встречает непонятное слово, он предполагает, что это переменная или метод. Если эта переменная или метод никогда не были определены в вашем коде, вы получите ошибку имени (как в примере выше). Ошибка синтаксиса выдается, когда где-то в коде используется неправильный синтаксис. Скорее всего, где-то в вашем коде отсутствует ключевое слово «end», но в любом случае интерпретатор Ruby попытается направить вас к ошибке, насколько это возможно.

Найдите свое место с помощью P and Puts

Если вы получаете сообщение об ошибке после запуска вашей программы, но вам трудно найти ошибку (-ы), используя информацию из сообщения, попробуйте поместить «p» или «put» во всем коде. Эти методы используются для вывода значений предполагаемых переменных или даже для вывода какого-либо сообщения в различных точках вашей программы. Например, если вы разместите в своем коде «вставляет« Я работаю ».», И эта фраза отображается на вашем терминале до того, как вы получите сообщение об ошибке, вы знаете, что ваш код работает до этого момента без ошибок.

Использование «p» вместо «put» может быть даже более полезным при отладке вашей программы. Поскольку «устанавливает» вызывает «to_s» (преобразование в строку) объекта, вы не можете точно знать, каков класс этого объекта. С помощью «p» вы вызываете «инспектировать» объект, поэтому вы лучше понимаете, что вы на самом деле смотрите, сразу после того, как этот результат отображается на терминале.

Хотя «p» и «put» очень полезны, если вы пытаетесь определить точную точку, в которой ваша программа «ломается», они не являются лучшими инструментами для проверки вывода предполагаемых переменных и методов, когда у вас много переменных и методы тестирования. Это подводит меня к следующему и, вероятно, самому важному инструменту для отладки в процессе написания кода.

В Pry We Trust

Pry - это рубиновый драгоценный камень, который позволяет вам заморозить ваш код и войти в среду, аналогичную IRB, где вы можете проверить свои предполагаемые переменные и методы. Основная предпосылка использования pry проста. Просто вызовите "require" pry "в начале вашей программы и поместите" binding.pry "где-нибудь в теле кода, который вы хотите протестировать. Не забудьте вызвать метод, который вы тестируете, где-нибудь в вашей программе, иначе ваша программа будет работать, не нажимая binding.pry!

После запуска программы вы войдете в сеанс pry в командной строке. Здесь вы можете вызывать различные методы и переменные, чтобы убедиться, что полученный вами результат именно такой, как вы ожидали. Binding.pry особенно полезен при написании кода. Вместо того, чтобы предполагать, что каждая переменная или метод даст точный результат, который вы ожидаете, вы можете сразу проверить эти предположения.

Если вы хотите протестировать свою программу в целом, а не тестировать отдельные методы в программе, вы можете просто поместить «Pry.start» в конец файла, который вы запускаете. Опять же, пока вы вызвали все переменные и методы, которые хотите протестировать где-нибудь в своей программе, Pry.start перейдет в сеанс pry, где вы сможете оценить и протестировать свой код.

Чтобы вернуться в командную строку из сеанса pry, просто введите «exit!» в сеанс pry и нажмите «Enter».

Последние мысли

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

Не рассматривайте сообщения об ошибках как уведомления об ошибках. Это приведет к дополнительному стрессу и разочарованию. Вместо этого прочтите сообщение об ошибке и позвольте ему найти решение. Если вы все еще не можете найти источник ошибки, используйте «p» и «put» во всем коде, чтобы помочь определить точную точку, в которой ваша программа «ломается».

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

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