Меня в гугле забанили, что делать?

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

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

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

Дисклеймер: Я веду разработку на движке Unity 3d, для написания кода использую Visual Studio, язык программирования C#. Разумеется, список фильтрует довольно тривиальные ошибки и расчитан на таких же начинающих программистов, как и я.

Все пункты основаны на реальных событиях так сказать. Итак, у нас есть код и он работает не так как нужно. С чего стоит начать?

Техосмотр

Самое очивидное. Совет из разряда "а вы пробовали перезагрузить компьютер?", но все же стоит проверить все ли впорядке с ПК. Иногда проседающий фпс из-за прегруженного браузера может создать впечатление, что код выполняется неправильно. Также стоит проверить, не отключены ли уведомления о красных ошибках в Unity (это глупо, но я очень часто забывал проверять консоль).

Debug.Log("I hate my life");

Простой и быстрый способ узнать выполнился ли тот или иной участок кода. Можно внедрить в этот участок Debug.Log() и указать полезные значения внутри него, чтобы получить больше информации во время теста. Если в консоли и так много сообщений, то можно просто выводить любимое матерное словцо, чтобы наверняка его не пропустить. Надо сказать, что данный способ не является самым удобным в использовании, и к тому же создает большое количество мусора. Обязательно стоит подчищать все Debug.Log() после тестов, так как это сильно бьет по производительности.

Жалобы окружающим

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

Комментирование кода

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

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

Отладчик Visual Studio

Когда я уже пречитал код по буквам и прокомментировал все вдоль и поперек, можно подключить тяжелую артиллерию - отладчик Visual Studio. Лично я узнал о нем сравнительно недавно, а жаль, потому что при помощи этого инструмента можно очень гибко и точно разбирать ход выполнения кода. Можно пошагово выполнять код и следить за изменением переменных, останавливать выполнение кода на определенной строчке, собирать значения переменных в отдельной таблице и многое другое. Достаточно подробно о том как им пользоваться написано здесь, но даже и без знания английского интерфейс Visual Studio довольно понятный, можно смекнуть что к чему методом тыка. Я не работал с другими IDE, но наверняка у них тоже есть возможность интеграции с Unity.

Ну и на последок - гугл

Если вас не забанили в гугле, тогда перед вами широкий выбор информации на любой вкус. Рассказывать о том, как пользоваться строкой поиска я не буду, однако хочу рассказать об одном наблюдении. Об этом я писал еще в посте на Пикабу, никаких опять же откровений, однако это очень помогало мне на первых порах. Каждый раз, когда у меня повлялся вопрос по языку, IDE или просто по теории написания кода я дописывал в строку поиска слово "unity". Из-за популярности движка абсолютно любой контент по нему всегда простой, понятный и актуальный. И даже тот контент, который прямо никак не связан с самим движком, например видео по тому же C#

Форумы

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

Спасибо, что дочитали до конца! Буду рад узнать о ваших способах устранения багов в комментариях

3636
44 комментария

Автор открыл для себя дебаггинг алертами и метод утёнка.

37

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

26

Как часто ты пишешь идеальный код, особенно если в условиях когда реальный проект, а не для души?

2

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

2

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

Комментарий недоступен

Комментарий недоступен