May. 3rd, 2009

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

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

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

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 6th, 2025 05:34 am
Powered by Dreamwidth Studios