Education

Стать хорошим разработчиком — это как научиться свистеть. Многие умеют, но лишь единицы могут обучить этому других. Большинство же будет говорить вам что-то из серии: «Просто прижмите язык к небу и начинайте дуть». Но только вдумайтесь — сколько всего осталось за кадром!

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

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

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


1. Синтаксические ошибки

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

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

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

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

2. Консоль

Вне зависимости от изучаемого языка, вы получаете доступ к методу вывода console.log() для JavaScript или print() для Python, который может вывести в консоль практически все, что угодно.

Я никогда не устану повторять это всем новичкам, застрявшим в неработающей части кода: ПОЛЬЗУЙТЕСЬ КОНСОЛЬЮ!

Зачем? Да потому что ваше видение ситуации, скорее всего, сильно отличается от происходящего «за кулисами». Особенно, если речь идет о более сложных языках. Если вы застряли в коде, то выведите в консоль как можно больше скрытых процессов и проверьте, насколько они совпадают с вашими предположениями. Иначе вы можете заняться поиском решения того, что изначально проблемой и не было. То есть, еще больше усугубите ситуацию.

3. Мысленно выполняйте код

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

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

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

4. Самосознание

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

Первый шаг — практикуйте и укрепляйте самосознание.

Большая часть программирования сводится к тому, чтобы находиться «здесь и сейчас», в ясном состоянии ума, и при необходимости успешно забывать о старых подходах в угоду новым. Перед вами, абсолютными новичками, стоит соблазн обвинить в неработающем коде всех и все. Различные отговорки быстро заполонят ваш разум, как Ниагарский водопад.

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

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

5. Шаг назад

Если ничего не помогает, то просто отойдите от компьютера.

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

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

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

Поэтому возьмите паузу, заточите меч и возвращайтесь на поле битвы обновленным!

Перевод статьи Michael Boegner: Debugging for Absolute Beginners