При разработке приложений часто возникает ситуация: ты временно меняешь поведение рабочего метода, чтобы разобраться с ошибкой, что-то проверить или обойти проблему на время. Сколько раз потом приложение с такими правками было собрано? Когда включается человечески фактор, вопрос ошибки становится вопросом времени.
Вот сегодня я искал баг в приложении, которое год назад сделал. Ошибка была из серии, что сразу и не определишь, в чем дело. Взяв максимум данных у клиента начал воспроизводить ошибку.
Для работы с собранными данными, а не теми, которые апп должен был получить по рабочему сценарию, нужно было подменить их. А после тестов и правок не забыть вернуть обратно!
Один из простых и надёжных способов защитить себя от этого — использовать директивы препроцессора и #error
#if RELEASE
#error TEMPORARY TEST CODE DISABLED – REMOVE BEFORE PUBLISH
#endif
Теперь студия ведет себя так:
- в Debug всё компилируется и работает
- В Release — сборка гарантированно падает
- Опубликовать приложение с этим кодом невозможно
- Visual Studio подсветит ошибку красным на этапе компиляции
Раньше я часто добавлял комментарии типа // TODO, но они только проскакивали в консоли при сборке, ничего не блокируя. Про них я забывал и забивал 🙂

