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