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++. Задача была выяснить почему предмет: яблоко не берется
персонажем, хотя аналогичный функционал уже реализован, проверен и работает на
столкновениях с другими персонажами.
Ошибка в целом служит хорошей демонстрацией того, как лучше подходить к подобным
ситуациям: выявлению, анализу и исправлению ошибок.
- 12 марта 2020, 13:58
Комментариев пока нет