Классика: мэйн говнокод

Feb 04, 2011 10:14

Известная мысль:
"Существует два способа, позволяющие понять, что программа - полное говно. Первый способ сложный, второй - простой.
Сложный способ - это анализ кода на наличие антипаттернов, анализ соотношения строк кода к количеству функциональных точек, анализ стиля на единообразие, анализ семантики на достоверность и полноту, и так далее.
Простой способ - это функция 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

c++, programming

Previous post Next post
Up