• Авторизация


Особенности национального программирования. 20-03-2007 09:07 к комментариям - к полной версии - понравилось!


Опубликовал Erlong
В народ вынесли юзеры Субурбанит и Ржевский




Любой русский программист после пары минут чтения кода обязательно вскочит и произнесет, обращаясь к самому себе: переписать это все нафиг. Потом в нем шевельнется сомнение в том, сколько времени это займет, и остаток дня русский программист потратит на то, что будет доказывать самому себе, что это только кажется, что переписать - это много работы. А если взяться и посидеть немного, то все получится. Зато код будет красивый и правильный. На следующее утро русский программист свеж, доволен собой и без единой запинки докладывает начальству, что переписать этот кусок займет один день, не больше. Да, не больше. Ну, в крайнем случае, два, если учесть все риски. В итоге начальство даст ему неделю, и через полгода процесс будет успешно завершен. До той поры, пока этот код не увидит другой русский программист.



А в это время в соседних четырех кубиках ни на секунду не утихнет работа китайских программистов, непостижимым образом умудряющихся прийти раньше русского программиста, уйти позже, и при этом сделать примерно втрое меньше. Эта четверка, давно не пишет никакого кода, а только поддерживает код написанный, в свое время индусом и дважды переписанный двумя разными русскими. В этом коде не просто живут баги. Здесь их гнездо. Это гнездо постоянно воспроизводит себя при помощи любимой китайской технологии повторного использования кода - copy/paste. Отсюда баги расползаются в разные стороны посредством статических переменных и переменных, переданных по ссылке (поскольку китайский программист не может смириться с неудобствами, вызванными невозможностью изменить значение внешней переменной, переданной в его функцию модулем, который переписывает русский программист).

Вспоминая об этой функции, русский программист, как правило, на время теряет дар английской речи, и переходит на какую-то помесь русского и китайского. Он давно мечтает переписать весь кусок, над которым работают китайцы, но у него нет времени. На китайцах висят серьезные баги, о которых знает начальство и постоянно их торопит. Китайцы торопливо перевешивают баги друг на друга, поскольку знают, что попытки их починить приведут к появлению новых, еще худших. И в этом они правы. Разобраться в том, в каком порядке меняются статические переменные, и как приобретают свои значения, способен только один человек на фирме - индус. Но он пребывает в медитации.

Поэтому, когда всю четверку уволят во время сокращения... А кого еще увольнять? Русский еще не переписал свой кусок, а индус, главная ценность фирмы, редко обращает внимание на проект, но когда обращает, все понимают, что так, как он, архитектуру никто не знает. Так вот, когда китайцев увольняют, у их кода возможны две основные судьбы. Первая - он попадет к русским, и его перепишут. Вторая - он попадет к местному, американскому программисту.

О, американский программист - это особый тип. Он, ни на минуту не задумываясь, как рыцарь без страха и упрека бросится фиксить самый свирепый баг китайского кода. Этот Баг живет там уже три года, и китайцы уже четырежды (каждый по разу) сообщали начальству, что он пофиксен. Но Баг каждый раз возвращался, как Бэтмен в свой Готхэм.

Итак, американский программист сделает то, что китайцы не рисковали делать в течении трех долгих лет. Он при помощи дебаггера отследит место, где статическая переменная приняла значение -1 вместо правильного 0, и решительным движением заведет рядом вторую переменную с правильным значением. Баг погибнет в неравной схватке с американским программистом. Но победа будет достигнута тяжелой ценой. Работать перестанет все, включая только что переписанный русским программистом код. Это повергнет русского программиста в задумчивость на целых два дня, после чего он сделает, в общем-то, предсказуемый вывод о том, что дизайн с самого начала был неправильным, и все надо переписать. На это нам нужна неделя. Да, неделя, не больше.

Американский программист смело бросится налаживать все, и станет еще хуже, хотя, казалось бы... Эта суета выведет из медитации индуса, который придумает и вовсе гениальное решение - отбранчить код. Согласно его плану, мы теперь будем поддерживать две версии одного и того же кода - одну работающую, но с Багом, другую без Бага, но не работающую. Русский программист, услышав об этом плане, сломает линейку об стол и дома обзовет жену дурой, но на митинге возразить не решится.

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

Цитата дня:
Пишите свои программы так, как будто человек, который их будет поддерживать, является серийным маньяком-убийцей и знает ваш домашний адрес. (источник неизвестен)
вверх^ к полной версии понравилось! в evernote
Комментарии (4):
vasenkov 20-03-2007-13:53 удалить
Хм... Вообще-то есть такая штука, как рефакторинг.
Ваныч 20-03-2007-19:25 удалить
vasenkov, конечно есть. Только не все знают, как рефакторинг готовится: сначала обжарить до золотистой корочки, или сырым в кастрюлю?
bacy 21-12-2007-15:56 удалить
Видать vasenkov, друг Ганеша однако.


Комментарии (4): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Особенности национального программирования. | Ваныч - Дневник Славы Сэ. | Лента друзей Ваныч / Полная версия Добавить в друзья Страницы: раньше»