juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2007-02-14 11:02 am

refactoring example

Тут Джош Керевски и Майк Хилл приводят пример TDD рефакторинга - приехали они в Эстонию, помогать Ээсти Панку разгребать их авгиевы конюшни. На конюшне куча джава-кода, у которого и сорса нету - рекомпилирован с классфайлов.

Я гляжу на этот код, и думаю, как же так вышло. Ведь наверняка этот Ээсти Панк кинул разработчиков, не заплатив им, и разработчики, обматерив жадных эстонских банкиров, ломанулись зарабатывать деньги в Швецию, Германию, а то и в США. Ну или в Москву. И вот так возникает экзотика.

[identity profile] sab123.livejournal.com 2007-02-14 08:31 pm (UTC)(link)
Ну на самом деле необязательно. Даже в более приличных компаниях вещи вовсю теряются. Особенно если они не менялись долгое время и если они покупные. На эту тему могу рассказать например историю "Как я заново портировал Online Disk Manager для UnixWare 2.1":

Оно делалось в английском офисе. Английски офис во-первых всегда плохо дружил с version control systems, во-вторых с тех пор перешли на другую VCS. Но образ машины, где оно делалось, сохранили. На машине этой обнаружился портированный ODM более старой версии и непортированный ODM последней версии, в котором требовалось починить глюк. Где был портированный ODM последней версии - знал только человек, который его делал, и он к тому времени уже пару лет как в компании не работал, да и то в любом случае оно к тому времени не сохранилось.

Или вот если представить, что кто-нибудь внезапно захочет оживить Caldera OpenLinux - это же сейчас рожки да ножки собрать будет очень нетривиально.

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

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

[identity profile] fenikso.livejournal.com 2007-02-14 08:48 pm (UTC)(link)
Я так думаю, что все надо писать в нечто типа Вики, которую регулярно сохранять в шкаф. Аналогично с VCS, содержащей весь свой код и все побочные бинарники, необходимые для построения.

... а стартовый ввод для spinup устройства доступа, это гранитные плиты с высеченными на них пиктограммами - как строить самую грубую модель data reader. Или - многоэтапная цепь, где вначале - каменные плиты с пиктограммами, посередине - какие-то промежуточные шаги, а в конце - всё те же каменные плиты, но уже с записью данных на атомарном уровне :)

[identity profile] sab123.livejournal.com 2007-02-14 09:43 pm (UTC)(link)
Зачем каменные плиты? Чай, у нас прогресс на дворе. На пластинках из платины выцарапывать.

[identity profile] lafy.livejournal.com 2007-02-14 09:06 pm (UTC)(link)
Ох нифига ж себе. Видимо, код совсем древний? Сейчас у нас банки предлагают чуть ли не лучшие места по деньгам.

[identity profile] ex-ex-annut.livejournal.com 2007-02-15 01:13 am (UTC)(link)
если работать за пределами финансового анализа то сдохнешь от скуки в этих банкаъ

(Anonymous) 2007-02-15 03:47 am (UTC)(link)
А посоветуйте декомпилер, а то я только jad знаю..

[identity profile] ivan-gandhi.livejournal.com 2007-02-15 05:13 am (UTC)(link)
Да я сто лет ничего не декомпилировал. У меня огрызки своего где-то валялись в Борланде, но он специализированный был. Так что ничем не могу.

[identity profile] leonid-.livejournal.com 2007-02-15 09:25 am (UTC)(link)
и ведь что интересно - каждый разработчик, уходя, уносит с собой все, до чего может дотянуться, а контора, откуда он уходит, грозит за это в NDA прямо-таки средневековыми пытками.

и ни разу это унесенное не применяется. потому что в современном проекте инфраструктура и процесс - все.