Я использую отладчик, когда:
- Я почти уверен, что это что-то глупое, что я где-то пропустил (переменная не инициализирована, условия теста инвертированы или какой-то другой удар по лбу, боже, я тупой кинна)
- Тест все еще не пройден, и я просто не могу понять, почему
- Трудно отследить журналы из-за частых скачков контекста (слушатели, обратные вызовы и т. Д.), А регистраторы не контекстуализированы (названы в честь класса, а не в контексте)
В целом это баланс между скоростью и точностью. Однако по опыту, если я потрачу много времени на кусок кода, есть большая вероятность, что мне придется вернуться к нему, поэтому я добавляю журналы и добавляю тесты, чтобы мне не приходилось возвращаться к нему, или это я делаю всю работу, которую я сделал, чтобы понять, что код остается, и я могу построить на вершине.
Одна из причин, по которой я не люблю отладчики, заключается в том, что вся работа, которую я выполняю, выясняя, как она работает, теряется, когда отладчик выключен. Если я трачу время на изучение фрагмента кода, я хочу, чтобы эти знания были доступны в следующий раз, когда я (или кто-то еще) доберусь до него. Добавление кода трассировки - это очень хороший способ иметь «Динамические комментарии», которые всегда есть и могут быть вызваны в любое время.
В целом ... почти все, что удалено перед отправкой клиенту, от которого я уклоняюсь. Если я размещаю систему безопасности вокруг моей системы, то нет причин, по которым мой клиент не может извлечь из этого пользу, используя ее, как я это делал при программировании. Это особенно верно, если я тот, кто должен поддержать его потом ... Я ненавижу поддерживать, поэтому я хочу сделать его настолько безболезненным, насколько это возможно с человеческой точки зрения.