Any Key

12 февраль, 2003 - 00:00КО
Да уж, и не говорите: давненько, давненько мы не появлялись. Ну, знаете ли, конец года, отчеты там всякие и пр., потом, ну сами понимаете, Новый год, Рождество, каникулы, то да се, все как-то не до шуточек. Потом этот, как его, ну да -- китайский Новый год на голову свалился. А как откажешь тайваньским товарищам? Еле-еле вот закончили на днях отмечать. Но ничего-ничего, наверстаем, потихоньку, конечно, не сразу, как же сразу, можно ведь и надорваться. Так что... Тут мне, правда, что-то про 23 февраля, 8 Марта и Пасху говорят... Нет, ну надо ведь и совесть иметь, ну что вы, в конце-то концов. Так что сегодня предлагаем вам легенький вариант, немножечко не в традиционном формате, но зато весело. Товарищу Unknown, в случае, если заглянет в редакцию и докажет авторство опуса, гарантируем выплату гонорара. Ну а Медведев Руслан (Киев) за присланный скриншотик, обнаруженный три года назад в Windows Me, как он сам пишет, получает нашу традиционную награду -- футболку и бейсболку с фирменной символикой. Ждем с нетерпением и ваши наблюдения на [email protected].

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

Any Key
Прислал Медведев Руслан (Киев)

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

Вспоминая об этой функции, русский программист, как правило, на время теряет дар английской речи и переходит к какой-то помеси русского и китайского. Он давно мечтает переписать весь кусок, над которым работают китайцы, но у него нет времени. На китайцах висят серьезные баги, о которых знает начальство и постоянно их торопит. Китайцы торопливо перевешивают баги друг на друга, поскольку знают, что попытки их починить приведут к появлению новых, еще худших. И в этом они правы. Разобраться в том, в каком порядке меняются статические переменные и как приобретают свои значения, способен только один человек на фирме -- индус. Но он медитирует. Поэтому когда всю четверку уволят во время сокращения... А кого еще увольнять? Русский еще не переписал свой кусок, а индус -- главная ценность фирмы, он редко обращает внимание на проект, но когда обращает, все понимают, что так, как он, архитектуру не знает никто. Так вот, когда китайцев уволят, судьба их кода может сложиться следующим образом: он попадет к русским, и его перепишут; он попадет к местному, канадскому, программисту. О, канадский программист -- это особый тип. Он ни на минуту не задумываясь, как рыцарь без страха и упрека, бросится фиксить самый свирепый Баг китайского кода. Этот Баг живет там уже три года, и китайцы четырежды (каждый по разу) сообщали начальству, что он пофиксен. Но Баг каждый раз возвращался, как Бетмен в свой Готхем. Итак, канадский программист сделает то, чего китайцы не рисковали делать в течение трех долгих лет. Он с помощью дебагера отследит место, где статическая переменная приняла значение --1 вместо правильного 0, и решительным движением заведет рядом вторую переменную с правильным значением. Баг погибнет в неравной схватке с канадским программистом. Но победа будет достигнута тяжелой ценой. Работать перестанет все, включая только что переписанный русским программистом код. Это повергнет русского программиста в задумчивость на целых два дня, после чего он сделает, в общем-то, предсказуемый вывод о том, что дизайн с самого начала был неправильным и все надо переписать. Но на это нужна неделя. Да, неделя, не больше. Канадский программист смело бросится налаживать все, и станет еще хуже, хотя казалось бы... Эта суета выведет из медитации индуса, который придумает и вовсе гениальное решение -- использовать CVS код. Согласно его плану мы теперь будем поддерживать две версии одного и того же кода -- одну работающую, но с Багом, другую без Бага, но неработающую. Русский программист, услышав об этом плане, сломает линейку об стол и дома обзовет жену дурой, но на митинге возразить не решится. К счастью, все это не сильно влияет на дела фирмы, поскольку продукт продается и так. Поэтому менеджмент ходит в целом довольный и не устает напоминать всем, что они отобраны как лучшие среди лучших. И что мы давно доказали свою способность выпускать продукт тем, что выпускаем его иногда.

(C)Unknown