pashar: (Default)
pashar ([personal profile] pashar) wrote2007-02-25 10:48 pm
Entry tags:

Найдено на просторах интернета

Посвящается [livejournal.com profile] kot_shred.


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

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

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

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

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

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

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

[identity profile] kot-shred.livejournal.com 2007-02-25 08:56 pm (UTC)(link)
Интересно кто я в в этой картинке. Правда собаку сукой обзывать не буду

[identity profile] pashar.livejournal.com 2007-02-25 08:59 pm (UTC)(link)
В принципе, тип израильского программиста тут не выведен. Но ты, видимо, ближе всего к канадскому программисту :)

[identity profile] kot-shred.livejournal.com 2007-02-25 09:15 pm (UTC)(link)
спасибо, я тебя тоже люблю

[identity profile] pashar.livejournal.com 2007-02-26 07:06 am (UTC)(link)
Собаку котенком обзовешь?

[identity profile] zyama-krendel.livejournal.com 2007-02-25 09:22 pm (UTC)(link)
Очень, очень хороший текст. Я его прочитал ещё в Австралии, и просто плакал над ним - настолько всё верно, с точностью до национальности персонажей...

[identity profile] kot-shred.livejournal.com 2007-02-25 10:14 pm (UTC)(link)
Обиженно: а меня канадским программистом обозвал
Уйду я, злые все

[identity profile] zyama-krendel.livejournal.com 2007-02-26 07:28 am (UTC)(link)
Я думаю, он уже осознал глубину своего заблуждения...

[identity profile] pashar.livejournal.com 2007-02-26 07:02 am (UTC)(link)
Да, мне тоже приходилось сталкиваться. Очень похоже.

[identity profile] chele-sta.livejournal.com 2007-02-25 09:55 pm (UTC)(link)
Знакомый мужик работает в Силиконовой Долине, не программист. Он приезжал сюда к родным, и я спросила его, кто как котируется там у них в смысле головастости.
Его ответ: на первом месте - израильтяне, на втором - евреи из России, на третьем - индусы, потом уже китайцы, а дальше я не запомнила.
Это так, к слову.

как не надо программировать

[identity profile] shevach.livejournal.com 2007-02-25 09:55 pm (UTC)(link)
- А это чего то у вас тут на экране, срань какая-то!?
- Ну как же вы нам сказали что без этого низзя
- Хто? Мы?
- Ну эта, ну юзеры...
- Какие такие юзеры!?
- Ну обнакновенные. Вон там стояли
- Да это не наши юзеры. Эта с другого департамента...

http://gazeta.ru/techzone/2005/12/28_e_508171.shtml

[identity profile] otlichnitza.livejournal.com 2007-02-26 06:22 am (UTC)(link)
Во-во! Переписать все нафиг! Я это через день говорю. Начальник сказал: "не трожь! Времени нет переписывать, будем подгонять новый код под существующий"
Вот теперь мучаемся со второй неработающей как надо версией :(((