Re[4]: КОД по наследству
От: Andy77 Ниоткуда  
Дата: 11.07.03 16:36
Оценка:
Здравствуйте, Framer, Вы писали:

F>Да таких горбаг как описанно я не видал.

F>Эпизоды мне знакомы, но чтобы все вместе...

Я сбежал с прошлого места работы (был там контрактором), когда меня перевели на похожий проект — "слегка поменять" функциональность уже работающей (в продакшене огромной корпорации) системы. Только там было _намного_ больше 250К кода, думаю, где-то раз в 15-20. Чувакам, которые это писали (по-моему, году так в 90-м), похоже, платили за кол-во строчек кода — код был дублирован где только можно. А может быть, они работали на "job security" — никто их уволить не смог бы, так не было никакой возможности разобраться в исходниках. Наверное, в менеджеры пошли в период бума... Не буду утомлять вас описанием того, что я встречал в том коде, поверьте, это было не менее ужасно, чем код у автора этого топика. В общем, где-то месяц с переменным успехом пытался причесывать тот код (конечно же, никаких юнит тестов и в помине нет, зато есть горы (буквально) бумажной документации) — окончательно убила меня функция на 5000 (!) строк. Подумав, что психическое здоровье важнее, к тому же жалко гробить годы на такую хреновню — принял предложение другой компании, чему сейчас страшно рад Здесь я работаю уже почти два года, а тот проект всё "пишется" и конца-краю ему не видно
Re[20]: КОД по наследству
От: limax Россия http://mem.ee
Дата: 11.07.03 16:49
Оценка:
Здравствуйте, Apostate, Вы писали:

A>Не знаю, не знаю... Может он быть, он считал что пока и так нормально, а когда понадобится легко можно сделать, работа не сложная. Ну воот открывателю топика и понадобилось — пускай делает.

Спасибо, и тебе того же.

A>И кое-какие функции там уже есть — draw_sprite . Как раз тот случай когда можно с уверенностью заранее сказать, еще не приступив к написанию кода, что такая функция будет нужна в нем не раз и не два.

draw_sprite — это стандартная функция библиотеки allegro.

А его функции часто соответствуют названию, однако есть функции с похожими названиями (например слова местами переставлены), делающие совешенно другие вещи. Для полного счастья они ещё друг друга вызывают.
Have fun: Win+M, Ctrl+A, Enter
Re[2]: КОД по наследству
От: limax Россия http://mem.ee
Дата: 11.07.03 17:16
Оценка: 1 (1)
Здравствуйте, Юнусов Булат, Вы писали:

ЮБ>Готов поспорить на стакан красного и огурец, что этот программер юзал allegro для графики. Если так то тебе еще повезло, она понятная и глюков там не много, да и программу можно компилять и отлаживать в VC6.0, 7.0, 7.1

Огурец заслужил, но без красного. :-Р
По почте бандеролью выслать?

1) Во-первых, либо это в VC.NET баг, либо так влияет весьма странная многопоточность allegro (есть time-critical и high priority threads), но при отладке проги использующей аллегро, среда иногда намертво виснет и вешает комп. Единственный выход — иметь открытый FAR, при зависании переходить в него по Alt-Tab и убивать devenv.exe. Ни запустить что-нибудь, ни открыть Task Manager по Ctrl-Alt-Del в это время нельзя. Что характерно, вероятность зависания намного выше, если ставишь breakpoint близко к месту, в котором должен будет выскочить assertion failure. Единственный гарантированный метод без зависаний — наставить ASSERT-ов и запустить без отладки, а затем выбрать debug при assertion failure.

Кстати, ещё странный глюк — при выходе из программы в оконном режиме, она может закрыть окно и зависнуть на каком-то WaitForMultipleObjects при закрытии тредов ввода. Так и не разобрался — из-за невозможности отладки. Проверял на идущих с аллегро тестах и примерах — аналогично. Allegro 4.0.3.

2) Во-вторых, allegro у него используется равномерно по всему коду. Т.е. нет определённых функций вывода, скажем, информации об игроке: где вздумалось вывести инфо, там и стоит textout или textprintf на жёстко заданную координату. Со спрайтами — похожая ситуация.

Сначала я пытался ещё как-то рефакторить код (потратив до этого 4 дня на форматирование, т.к. ни один форматер не смог его нормально отформатировать — слишком много вложенных if и for), но на прошлой неделе плюнул и стал переписывать весь код начисто, используя его исходники как reference по логике игры.
Have fun: Win+M, Ctrl+A, Enter
Re[2]: КОД по наследству
От: limax Россия http://mem.ee
Дата: 11.07.03 17:27
Оценка: +1
Здравствуйте, Framer, Вы писали:
F>Из чего делаем вывод все это юмористический литературный этюд.
Ура! Мне не верят!
Всегда мечтал написать что-нибудь литературное, вот только не получалось никогда. Даже оценки за сочинения в школе снижали постоянно за малое количество текста и нераскрытость темы. Не знал чего писать — "ведь и так всё понятно".
Have fun: Win+M, Ctrl+A, Enter
Re: КОД по наследству
От: WD  
Дата: 21.07.03 19:53
Оценка:
Здравствуйте, limax, Вы писали:

[---]

А зачем вам этот код ? Все что тут можно сделать без гемороя это поменять копирайты или язык игры .

L>3) почти на чистом С — значит на С компиляторе он уже не скомпилируется, т.к. структуры уже используются без ключевого слова struct, однако ни одна фича С++ больше не используется.


Ну ... я может чего незнаю но, но помоему чистый Си берёт структуры без волшебного слова (По крайней мере у меня )
Re[11]: КОД по наследству
От: www  
Дата: 23.07.03 13:30
Оценка:
Я конечно понимаю, что программисты не знают языков, но... увольте...
такое читать невозможно.
не знаю вашей компетенции, но судя по всему...
Re[12]: КОД по наследству
От: Apostate  
Дата: 29.07.03 08:41
Оценка: -1
Здравствуйте, www, Вы писали:

www>Я конечно понимаю, что программисты не знают языков, но... увольте...

www>такое читать невозможно.
www>не знаю вашей компетенции, но судя по всему...

нихт ферштендлихь, вот а ю тоокин эбаут?
Re[3]: КОД по наследству
От: Apostate  
Дата: 29.07.03 08:44
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Здравствуйте, Apostate, Вы писали:



WF>А может просто стоит такие куски выносить в осмысленные функции? И переменные по-человечески называть — тогда никакой "колбасы" не будет. Форматирование тут не при чем — просто криво написано .


стоит конечно, но все сразу)

WF>P.S. Глянешь на кусок хорошо написаного кода — сразу понятно, о чем хоть речь-то идет. А тут — полная фигня, какое-то безликое перемалывание массивов.


хороший код это как правило тот который "я написал только что" а не тот который "я написал год назад" и уж тем более не тот который "написал он"
Re: КОД по наследству
От: King Oleg Украина http://kingoleg.livejournal.com
Дата: 04.08.03 12:16
Оценка:
Здравствуйте, limax, Вы писали:

L>Достался мне в наследство от предыдущего программера код

У меня все намного хуже.

L>Теперь вопрос: что мне передать тому программисту при встрече, ежели такая когда-нибудь состоится?

Я не придумал такой пытки.
King Oleg
*Читайте DOC'и, они rules*
Re: КОД по наследству
От: xexe2  
Дата: 01.08.05 10:32
Оценка:
а дай поиграться
ну вроде и все:)
Re: КОД по наследству
От: stalcer Россия  
Дата: 01.08.05 11:41
Оценка:
Здравствуйте, limax, Вы писали:

Программы нужно писать предполагая, что сопровождать их будет маньяк-убийца, который знает, где ты живешь.
Осталось узнать где он живет...
http://www.lmdinnovative.com (LMD Design Pack)
Re[5]: КОД по наследству
От: Privalov  
Дата: 01.08.05 14:18
Оценка:
Здравствуйте, Andy77, Вы писали:


A>... Не буду утомлять вас описанием того, что я встречал в том коде, поверьте, это было не менее ужасно, чем код у автора этого топика. В общем, где-то месяц с переменным успехом пытался причесывать тот код (конечно же, никаких юнит тестов и в помине нет, зато есть горы (буквально) бумажной документации) — окончательно убила меня функция на 5000 (!) строк.


Ничего себе! Мне больше 2000 строк еще не попадались. Зато много и сразу. О побочных эффектах из-за глобальных переменных, использующихся в качестве рабочих, я просто молчу.
И еще один момент: качество бумажной документации аналогично качеству кода. У меня даже был случай, когда мы полностью проигнороиовали предложенную архитектором схему, сделав по-своему. Однако в бумаги, оставленные тем архитектором, иногда заглядывают. Приходится людям объяснять ситуацию. Времени переписать ту бумагу у руководства не нашлось. "Написано — не трогай!" — переложение известного лозунга на документацию.
Re[2]: КОД по наследству
От: stalcer Россия  
Дата: 02.08.05 05:58
Оценка:
Здравствуйте, Framer, Вы писали:

F>...либо что-то не то с управлением развития проектов в конторе...


Вот и я подумал, что в дыню надо давать не программисту, а его руководителю, допустившему такую фигню.
http://www.lmdinnovative.com (LMD Design Pack)
Re[3]: КОД по наследству
От: metalim Россия http://mem.ee
Дата: 02.08.05 08:01
Оценка:
Здравствуйте, stalcer, Вы писали:

F>>...либо что-то не то с управлением развития проектов в конторе...

S>Вот и я подумал, что в дыню надо давать не программисту, а его руководителю, допустившему такую фигню.

Это был недоходный проект, делаемый несколькими приятелями из интереса к тактическим играм и теме "а что если вот так?", и держащийся на голом энтузиазме. Программист-предшественник был "приятелем приятеля". В какой-то момент он больше не смог работать над проектом — видимо "интузазизьм" закончился, или что либо менять стало слишком сложно (монолит).
Have fun: Win+M, Ctrl+A, Enter
Re[4]: КОД по наследству
От: stalcer Россия  
Дата: 02.08.05 08:07
Оценка:
Здравствуйте, metalim, Вы писали:

M>..."а что если вот так?"... В какой-то момент он больше не смог работать над проектом...


Понял, наверное, что "вот так" не получится .
http://www.lmdinnovative.com (LMD Design Pack)
Re: Так вот же он... :)
От: AndreyFedotov Россия  
Дата: 02.08.05 13:15
Оценка: :))) :)
Хм. похоже мы только что общались
Автор: A.R.
Дата: 27.07.05
с ним или с его манеджером...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.