ria pc game - лайфхак: поиск ошибок в приложении

Данный пост посвящен двум вещам:

1) Тому что проект ria pc game не заброшен и понемногу развивается.

2) Интересному лайфхаку.

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

Кратко поясню в чем суть. У вас есть какое-то приложение, неважно на чем — c++ (как у меня в моем примере), delphi, java (для android), приложение для ios, php скрипт для сайта или javascript,
python скрипт, node.js скрипт или что угодно еще — что содержит исполняемый код.

Вам нужно добавить в приложение элемент нового функционала, но по какой-то причине
функционал не работает.

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

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

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

Эти 3 простых правила и позволят вам облегчить поиск и исправление ошибки. Чтобы
не говорить абстрактно я показал это на реальном примере реального приложения (игры)
ria pc game написанной на c++. Задача была выяснить почему предмет: яблоко не берется
персонажем, хотя аналогичный функционал уже реализован, проверен и работает на
столкновениях с другими персонажами.

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

Был ли данный пост и видео полезны для вас ?

Empty Vote