?

Log in

No account? Create an account

Заповедник репрессивной психиатрии

Отладка обработки ошибок
metaclass
Если отладить нормальную работу программы это еще куда ни шло, то отладить работу программы в случае когда ей пришел трындец - это что-то достаточно трудоемкое. Потому что обычно нормальная работа хорошо разбивается на отдельные тесты, если у программы кошерная модульная архитектура, а вот сломаться программа может во всех мыслимых и немыслимых комбинациях.

Особо хорошо таким заниматься в ISAPI фильтре для IIS, написанном на чистом С. Там даже вывод в лог и то ломается от малейшего чиха, а компилятор спокойно без ворнингов и ошибок компилирует такую херь, что смотреть страшно.
Например, в функцию передается указатель на функцию, а я передал указатель на структуру, где эти указатели лежат - компилятору пофиг.
Или десятки вариаций функций с именем типа (_)(s,w)print(f,w) - безопасные и небезопасные, виндовские и от С-рунтайма, одни возвращают код ошибки, другие валятся с исключением при переполнении буфера, грохая весь w3wp.exe. А всего-то хотелось вывести сообщение об другой ошибке, да.

Программистское мракобесие
metaclass
Я почему-то думал, что когда 10 лет толпой людей разрабатывают сложные системы, там не делают так, как я - держа все знания по проекту только в виде кратких текстовых набросок по поводу архитектуры, часть информации в голове(чтобы можно было проектировать в уме в любое время), и основную часть - в виде структуры проектов и кода в системе контроля версий.

А вот оказывается, что так и делают:
К этому моменту я выкинул все свои диаграммы классов, за ненадобностью – зачем на них смотреть, если они давно уже в голове?