Поисковое продвижение сайтов - быстро, качественно, гарантия, возврат денег!

Мой номер

Реклама


Rambler's Top100
Главная arrow Статьи arrow Лирика arrow Первый проект
Первый проект
Написал gdever   
16.12.2007
Оглавление
Первый проект
Страница 2

Я очень хорошо помню тот день, когда я получил мой первый проект. Это был один из последних дней зимы, примерно 10 часов утра, когда шеф подошел ко мне и предложил выйти покурить. Такое предложение прозвучало как минимум неожиданно, т.к. за несколько месяцев работы все кто мог мне предложить выйти покурить уже знали что я не курю. Знал это и шеф. Нестыковка заставила сердце биться в предвкушении чего-то большого, чего-то такого что может изменить мою жизнь. Я оказался прав, жизнь действительно круто изменилась. Я единственно не угадал со знаком этих изменений - я поставил плюс а в действительности это оказался минус.

Затягиваясь сигареткой, начальник рассказал страшную историю о том как предыдущий ведущий программист, тянувший на себе весь основной софт компании (кстати в Москве наша компания была практически монополистом в своей области) уволился, и что если срочно не подхватить разработку стратегически важных софтин, то конкуренты "сожгут наши дома, изнасилуют наших женщин и заберут наши драгоценности" (цэ). Этот рассказ перемежался с заявлениями, что вся страна сейчас смотрит на меня и что с деньгами меня не обидят. Я тогда задумчиво смотрел на заснеженную Москву и рисовал в воображении свои достаточно радужные перспективы. Много позже выяснилось, что страна не только смотрит с нескрываемым презрением и ненавистью, но и с удовольствием кидает в меня камни. Пока же все выглядело весьма радужно....

Иллюзии развеялись, когда увольнявшийся лид отработал последние две недели, а мне предложили сделать первую доработку. Доработка сводилась к изменению нескольких символов в маске, по которой отсеиваются файлы. Эта доработка заняла один день. Тогда я списал это на полное (действительно полное) отсутствие комментариев, незнание системы и чудовищный код этой самой системы. Со временем эта ситуация нисколько не изменилась. Процесс внесения доработки состоял из двух частей - медитация над кодом, расширение сознания (на это уходило до 99% всего времени, затрачиваемого на доработки) и последующее прицельное метание костыля. Или костылька. Да, кстати, любая доработка была либо костыльком, либо костылём, либо костылищем. Доработка никогда не была просто доработкой, это всегда было выдирание зубов через задний проход. Причем примеряться к зубу приходилось несколько часов, а выдирание занимало несколько минут. Однако такие темпы оказались неприемлимы. Всего за несколько недель сотрудники суппорта и отдела тестирования протоптали дорожку к моему рабочему месту. Протерли ковролин до самого бетона. Им пришлось ходить пешком, не потому что со мной было приятно беседовать или потому что они прониклись ко мне симпатией, а потому что я очень скоро просто перестал брать трубку, т.к. все время уходило на правку ошибок. Процесс внесения доработок был похож на битву с гидрой, когда я лихим ударом забарывал один баг, а на их месте появлялись ещё два.

Чем больше я влезал во внутренности этой системы, тем больше я понимал, что её понять невозможно. Все благие начинания были загублены чудовищной реализацией. Однажды я прочитал эту статью и сразу же по памяти назвал все места с тем или иным антипаттерном. Я все перечисленные антипаттерны нашел в своем проекте. Но это меня уже нисколько не удивило, т.к. на языке давно вертелось определение поддерживаемой системы. К лету я уже мог весьма точно описать архитектуру одной емкой фразой - куча говна. Фактически вся система представляла из себя один большой God Object, превращенный ужасной реализацией в кучу говна. Позднее я даже нашел в соответствующей литературе подходящий антипаттерн. Спасала положение одна недокументированная фича этого антипаттерна - в любой момент, в любое место программы можно прикрутить любую функциональность. Точнее не прикрутить а насрать. Рядом насрать новую функциональность. Т.к. любая попытка сделать что-то по-нормальному потерпит полное фиаско независимо от уровня программиста. Получался бесконечный (хоть и и с душком) ресурс подверженности изменениям. На западе лучшие умы ломают головы над тем как сделать программы более расширяемыми, модульными, дешевыми для внесения изменений. В России давно решили эту проблему. Не надо никаких знаний и паттернов. Даже высшего образования зачастую не требуется. Надо просто навалить большую кучу г... кхе-кхе кода. И вуаля! Его можно расширять в любом направлении. Правда ситуацию портит один нерешённый вопрос - как то что мы нарасширяли поддерживать? Однако лучшие умы России уже бьются над решением этой проблемы. Толпы быдлокодеров обязательно должны найти ответ на этот вопрос. Придется разбираться самостоятельно, Запад нам не помощник, т.к. про такие проблемы там никто не осведомлен. Да, мы всегда шли своим путём. Скоро должны подключиться и хохлокодеры из Вiльнiй Украiны. Все вместе точно сдюжат. Или забьют и пойдут к индусам клянчить на аутсорс проекты, которые последним зааутсорсили буржуины.

Согласно классической теории у программы есть ресурс - Подверженность изменениям. Недавно мне было откровение - есть ещё один ресурс. Называется "Подверженность рефакторингу". Несколько месяцев назад с сожалением обнаружил, что моя программа оба этих ресурса давно уже выработала. И мы вместе с ней работали сжигая себя изнутри. Впереди была пропасть, к которой мы неслись с криком "ёб вашу мать", утапливая педаль газа в пол. Это был конец. Надо было уходить и я ушел...

PS

Другой мой начальник, однажды, успокаивая меня, сказал, что так софт разрабатывается везде. Ведь если хотя бы в нескольких конторах все было организовано как надо, то они сразу подмяли бы под себя весь рынок. А такого не происходит, следовательно ещё есть и будет много мест, где светлый джедай может сеять разумное, доброе и обязательно светлое.


Сформировать ссылку на статью для вашего сайта | Просмотров: 19084
0

Коментарии (8)
RSS комментарии
 1 Написал(а) Данила, в 18-12-2007 16:52
+1 
Гыгы :)
 2 Написал(а) Денис, в 18-12-2007 17:04
+1 
Пиши ещё!!!
 3 Написал(а) gdever, в 18-12-2007 20:24
чет, Мустафин не отписался, игнорирует сцуко....... :p
 4 Написал(а) Данила, в 15-01-2008 14:32
Нам тут УТС выдало задание: оптимизировать этот Антипаттерн :) Чтоб он, подлец, не 150 сообщений за час обрабатывал, а ажно 400 :) Вместе с этим заданием - еще список из 9 пунктов и срок в 3 недели.. 
 
Сижу, оптимизирую. Еще целых 2 дня на оптимизацию осталось %)
 5 Написал(а) gdever, в 18-01-2008 19:51
2Данила 
 
Ну УТС часто так поступает - сначала говорят а потом думают, причем думают жопой )) Ты реально хочешь его оптимизировать? Какое место в Регистраторе будучи оптимизированным должно дать взрывной прирост скорости? Мне аж интересно стало :roll А вообще у вас Денис не спрашивает примерные сроки реализации той или иной мегадоработки? Просто когда была какая-то замута с вкладками (типа все их перелопатить) я просто нарисовал подготовительный период в два месяца и по две недели на каждую вкладку )) вопрос отпал сам собой )) Чего там вообще интересного с Регистратором твориться?


Последнее обновление ( 21.02.2010 )
 
< Пред.   След. >
Design by ah-68 - Copyright © 2007 by www.gdzone.ru