Почти каждый раз, когда разработчик открывает интегрированную среду разработки, он каким-либо образом отлаживает свой код. Граница между написанием кода и его отладкой все больше и больше размывается. Например, редактор кода помогает устранять ошибки вашего кода прямо в процессе его написания. Он выделяет элементы с ошибками и позволяет вам исправлять их. То есть вы одновременно пишете и отлаживаете.
Кроме того, компилятор работает как еще один инструмент отладки. Когда вы в первый раз нажимаете кнопку Run, то компилятор проверяет ваш код и выдает вам список ошибок для их устранения. Это отладка.
Шаги (или фазы) процесса отладки включают в себя:
□ кодирование — редактор помогает вам, указывая на проблемы и предлагая возможные пути их решения;
□ компиляцию — компилятор проверяет ваш код и сообщает об ошибках перед тем, как двигаться дальше;
□ самопроверку— вы запускаете приложение в режиме отладки и проходите по шагам его код и экраны (для проверки функциональности);
□ модульное тестирование— вы пишете и прогоняете модульные тесты для проверки вашего приложения;
□ анализ кода — вы запускаете анализатор Static Code Analyzer для проверки соответствия вашего приложения стандартам проекта;
□ экспертиза кода— ваш код проверяется вашим сослуживцем или архитектором программного обеспечения и имеющиеся проблемы регистрируются;
□ реакция на ошибку— когда в коде зарегистрирована ошибка, вы должны воссоздать ее и отладить конкретный сценарий.
В этой главе мы сконцентрируемся на двух из этих фаз: самопроверка и реакция на ошибку.
Это те две фазы, на которых разработчик получит максимальную отдачу от инструментов
отладки, встроенных в Visual Studio. Поэтому мы предположим, что код уже написан и компилируется. Давайте начнем с самопроверки кода.
Примечание
Экспертиза кода — это еще один очень важный инструмент отладки вашего приложения. Она помогает обеспечить соответствие стандартам и гарантировать выполнение вами рефакторинга таких вещей, как дублированный код. Здесь может помочь анализатор Static Code Analyzer в Visual Studio. Этот инструмент описывается в главе 26.