TGViewer
IRON PROGRAMMER IRON PROGRAMMER @csharp_publics · 3.05K subscribers
Post #2694 1.25K
Главное правило детектива — знай, что ты ищешь!

Ты проверил снаряжение: режим Debug включен, запускаешься по F5. Ты поставил точку останова, запустил код, и... программа замерла. Строка подсвечена желтым.

И что дальше? 🤔

Вот тут и происходит разделение на новичков и опытных разработчиков. Новичок начинает бесцельно нажимать F10, просто наблюдая, как меняются цифры, в надежде, что ошибка сама выпрыгнет ему в лицо с криком «Это я!»😜

Опытный разработчик делает иначе. Потому что он знает главное, золотое правило отладки.

Отладчик — это не волшебная палочка, которая находит ошибку. Это инструмент, который помогает ТЕБЕ найти ошибку, проверяя твои ГИПОТЕЗЫ.

Прежде чем нажать F5, ты должен сделать самую важную вещь: остановиться и подумать.

Шаг 0. Сформулируй ожидания (ты же знаешь, что программисты считают с нуля?🙈)

Представь себя не просто детективом, а прокурором, который уже знает, как должно было пройти «идеальное преступление» (т.е. как должен был правильно выполниться твой код).

Прежде чем лезть в отладчик, ответь себе на простой вопрос:
Что я ожидаю увидеть в этой точке кода?

— На третьей итерации этого цикла переменная counter должна быть равна 3
— После выполнения этой строки объект user должен иметь непустое поле email
— Когда я дойду до этого if, условие isReady должно быть true

Ты должен понимать эталонное, правильное поведение программы. Иначе как ты поймешь, что что-то пошло не так?

> Отладка — это процесс сравнения ожиданий с реальностью. Нет ожиданий — нет отладки. Есть только бесцельное блуждание по коду.

Как это выглядит на практике?

Давай возьмем простой пример. Код должен посчитать итоговую цену товара со скидкой:
// Цель: применить скидку 20% к цене 150
double price = 150;
double discountPercent = 20;
double finalPrice = 0;

// Расчет
double discountAmount = price / discountPercent;
finalPrice = price - discountAmount;

Console.WriteLine($"Итоговая цена: {finalPrice}"); // Ожидаем 120, но получаем 142.5. Почему?


Плохой подход (новичок):
Так, что-то не то. Поставлю-ка я точку останова на double discountAmount и буду жать F10, пока не пойму, что не так. *...проходит 5 минут бессмысленных шагов...*

Хороший подход (детектив с гипотезой):
1. Ожидание. Цена 150, скидка 20%. Я ожидаю, что finalPrice будет равен 120 (150 - (150 * 0.20))

2. Гипотеза. Проблема, скорее всего, в расчете discountAmount. Я думаю, что он рассчитывается неправильно. Он должен быть 30, а он, видимо, какой-то другой

3. Проверка с помощью отладчика:
— Ставлю точку останова ПОСЛЕ строки double discountAmount = price / discountPercent;. Мне не нужно смотреть, как она считается, мне нужно увидеть результат.
— Запускаю отладку (F5). Программа останавливается.
— Навожу мышку на discountAmount.
— Реальность: discountAmount равен 7.5 (150 / 20).
— Сравнение: Моя гипотеза верна! Переменная не равна 30. Ошибка в этой строке. Теперь я могу сфокусироваться на исправлении одной конкретной формулы (price * (discountPercent / 100)), а не перечитывать весь код.

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

❗️Запомни навсегда
Прежде чем погрузиться в отладку, задай себе главный вопрос:
Что я ожидаю здесь увидеть и почему я думаю, что этого не происходит?

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

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

Ставьте реакцию:

🔥 — Спасибо, теперь я всегда буду думать перед отладкой. Это мой новый ритуал!
👀 — Еще сложно, но интересно... Поделись в комментах. Помогу❤️‍🩹
👍 — Если ты уже применил это и нашел баг за 2 минуты. Расскажи, как!

#полезные_материалы
  • 👍 8
  • 👀 2
  • 🔥 1
More from @csharp_publics
  1. Oct 11, 2026Ребята, пришли вас успокоить. 😻 Мы прекрасно понимаем что с решением задач на степике сей…
  2. Oct 10, 2026Post #3168
  3. Oct 9, 2026Отладчик C# теперь на платформе Я фанат отладки, и не сделать отладчик на платформе я прос…
  4. Oct 8, 2026Съездил на Stepicon 2026 2 и 3 октября был в Москве на конференции Stepik для авторов онла…
  5. Oct 6, 2026Post #3165
  6. Oct 5, 2026Минус 10% на два курса до 31 октября На пути в C# чаще всего буксуют в двух местах. Когда…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →