Известная мысль:
"Существует два способа, позволяющие понять, что программа - полное говно. Первый способ сложный, второй - простой.
Сложный способ - это анализ кода на наличие антипаттернов, анализ соотношения строк кода к количеству функциональных точек, анализ стиля на единообразие, анализ семантики на достоверность и полноту, и так далее.
Простой способ - это функция main, не влезающая в экран."
http://cd-riper.livejournal.com/101239.html Для этой мысли я снова и снова нахожу множество подтверждений в реальной жизни.
В рабочем проекте мы используем плюсовую библиотеку для работы с SIP -- reSIProcate.
На ее основе есть реализация SIP прокси под названием Repro SIP Proxy.
Заглянул я одним недобрым утром в файл с main() этого проекта и упал на жопу.
Функция состоит из полтысячи строчек кода!
Более двух десятков раз встречается директива #if!
Куча голых указателей и ручного управления памятью, при том, что рядом же есть использование auto_ptr! Для функции, тело которой занимает много-много экранов, использование ручного new/delete выглядит особо цинично.
Про всякие мелочи, вроде "if (p) delete p" я даже не заикаюсь.
В общем, гавнокод в лучшем его проявлении!
http://dl.dropbox.com/u/490401/src/repro.cxx