Re[6]: Как убедить начальника?
От: aik Австралия  
Дата: 30.08.07 11:54
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

bnk>>IMHO, такая линия поведения называется словом "саботаж"

G>И в чем саботаж то заключается? В любом случае ошибка будет исправлена, подход разный.

Будет исправлена только та ошибка, из-за который затеяли переписывание. И будет добавлено еще штук 5-10 новых, которые вылезут чуть позже. Оно, конечно, можно думать, что иначе и нельзя, но вообще вот так запросто переписать тыщу строк кода и быть уверенным что сделал точно не хуже — это пионерство.
Re[6]: Как убедить начальника?
От: Miroff Россия  
Дата: 30.08.07 12:01
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Тут иногда с более серьезными продуктами приходится с бубном плясать

Р>(http://rsdn.ru/Forum/message/1685895.1.aspx
Автор: Ромашка
Дата: 17.02.06
), не говоря уже об

Р>железяках местного производства.

Именно об этом я и говорил. Вместо того чтобы читать MSDN или залезть рефлектором в код DateTimePicker начинают придумывать новые танцы с бубном.
Re[2]: Как убедить начальника?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.08.07 17:46
Оценка:
Здравствуйте, Трофимов, Вы писали:

Т>2All: Человек спрашивает "Как убедить начальника?", а ему как всегда отвечают "Купите Windows 98!".


Да уж, никто так и не сказал как убедить начальника... как-будто никому никогда не приходилось этого делать.

В итоге я так и не нашел иходники версии, которая стояла у клиентов и класс пришлось переписывать. Но обошелся "малой кровью", примерно 300 строк переписал, лениво было переделывать все.
Re[3]: Как убедить начальника?
От: the_dip Таджикистан  
Дата: 30.08.07 19:44
Оценка: -1
Здравствуйте, gandjustas, Вы писали:

G>В итоге я так и не нашел иходники версии, которая стояла у клиентов и класс пришлось переписывать. Но обошелся "малой кровью", примерно 300 строк переписал, лениво было переделывать все.


300 строк за сутки?
Re[4]: Как убедить начальника?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.08.07 20:05
Оценка: -1
Здравствуйте, the_dip, Вы писали:


_>300 строк за сутки?


Нет, примерно за 3 часа. После обеда занимался только чтением флуда, который развели в этой теме
Re: Как убедить начальника?
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 31.08.07 00:08
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Начальник отклонил мое предложение все переписать и хочет чтобы я связался с клиентами, выяснил какие у них стояли версии программы (учет этого конечно же не ведется), нашел где-то эти версии (полу-)годичной давности (естественно CVS никакого нет, а архив храниться где-то на дисках), проанализировал эти версии и внес локальные изменения для восстановления работоспособности.


Все-таки ты знаешь где ошибка или нет? Если знаешь, то почему тебя отправляют к клиентам ее искать. Если нет, то почему ты выбрал какой-то рандомный класс и хочешь его переписать?
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[4]: Как убедить начальника?
От: aik Австралия  
Дата: 31.08.07 07:14
Оценка:
Здравствуйте, the_dip, Вы писали:

G>>В итоге я так и не нашел иходники версии, которая стояла у клиентов и класс пришлось переписывать. Но обошелся "малой кровью", примерно 300 строк переписал, лениво было переделывать все.

_>300 строк за сутки?

Если знаешь что делаешь и фигачишь проверки и прочие ассерты пачками, то 100 строк в час — совсем не рекорд. Строки — они разные бывают, помни о Маяковском
Re[6]: Как убедить начальника?
От: xtile  
Дата: 31.08.07 23:11
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


bnk>>IMHO, такая линия поведения называется словом "саботаж"

G>И в чем саботаж то заключается? В любом случае ошибка будет исправлена, подход разный.

Очень наивное мнение
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Как убедить начальника?
От: elmal  
Дата: 01.09.07 07:28
Оценка: 20 (3) +1
Здравствуйте, gandjustas, Вы писали:

G>Абсолютно не имею желания переписывать все. Переписать реально надо ОДИН класс, 600-1000 строк кода, после переписывания объем может уменьшиться в 2 раза.

Мне с ужасным кодом доводилось очень много работать. В таких случаях делаю следующее:
1) В процессе внеседия изменений НИКОГДА не допускаю, чтобы в результате моих правок код еще более усложнялся. Если метод на 1000 строк — свой код выношу в отдельный метод, и вызываю из ужасного. Иногда делаю косметические изменения в ужасном коде рядом с моими правками, могу там еще коммент добавить перед вызовом. Часто вместе с моими правками выношу часть кода старого класса в отдельный метод, по мелочи удаляю copy-paste, если править одно и тоже приходится в нескольких местах. Основную цель преследую — чтобы хаос не увеличился, а по возможности уменьшился. Переписывать мне даже один метод лень, за это мне не заплатят, а на себя беру до черта рискоа — если что сломается — виноват буду я;
2) Если я в этот класс еще начинаю лезть раз 5 из-за постоянно всплывающих там багов — начинаю более сильный рефакторинг этого класса. Логику часто не меняю, рефакторинг преследует цель разобраться как работает код, а не переписать все. Просто тупо дроблю огромный метод на более мелкие. Пишу комментарии к каждому методу, чтобы отследить все тонкости работы. Пишу комментарий к классу — что за класс, зачем служит, какие параметры принимает и т.д. Иногда шаг 2 предшествует шагу 1, в этом случае результаты рефакторинга даже не сохраняю, если вдруг что-то порушил по невнимательности, а времени на поиск причины нет, как правило в процессе рефакторинга я нахожу место, где внести исправления и исправляю локально.
3) Если в процессе рефакторинга на шаге 2 я начал полностью понимать логику, и нахожу, что ошибка уже в алгоритме — делаю еще один рефакторинг, более похожий на переписывание. Уже меняю логику работы, спорные моменты оставляю.
4) Если возможно — предварительно пишу тесты. Мой класс против старого, на вход подаю одно и тоже, на выходе проверяю, что все совпадает. К сожалению редко так получается, код часто такой, что тесты написать практически невозможно за приемлемое время.
Re[2]: Как убедить начальника?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 01.09.07 17:33
Оценка:
Здравствуйте, Anatolix, Вы писали:

A>Все-таки ты знаешь где ошибка или нет? Если знаешь, то почему тебя отправляют к клиентам ее искать. Если нет, то почему ты выбрал какой-то рандомный класс и хочешь его переписать?


Я знал почему ошибка происходит, но не знал где находтся коды вызывающий ошибки. Учитывая что код был написан активно применяя технологию "copy&paste", таких мест могло оказаться много.
А начальник давал такие указания, потому что так он видит процесс исправления ошибок.
Re[3]: Как убедить начальника?
От: Eugeny__ Украина  
Дата: 02.09.07 11:04
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, 0rc, Вы писали:


0rc>>Зачем? Вы ведь сами сказали, что ошибки возникли в следствии обновления программы.


G>В новой версии содержатся новые отчеты, необходимые клиентам. Короче надо исправить ошибку надо по-любому и быстро. А вот в методах мы с начальником разошлись.


G>Я уже думал включить дурачка и сделать по-своему, но хочется дать понять начальнику что стоит переписывать части программы для уменьшения сложности, а он зачем-то держится за старый код, позволяя вносить только мелкие изменения.


Он, видимо, не первый год начальник просто.

Моменты:
1. большинству программистов свойственно переоценивать свои возможности. "Все переписать, делов-то — 2 дня" часто выливается в 2 месяца.
2. код старый, недокументированный, и не твой. Есть немалая вероятность существования неочевидных моментов(в просторечии, костылей), которые перестанут работать после переписывания этого куска, а проявиться это может не сразу.

Это не значит, что твой путь неправильный. Просто в этом случае без знания конкретной ситуации советы могут быть вредными.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[3]: Как убедить начальника?
От: Eugeny__ Украина  
Дата: 02.09.07 11:08
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>ОДИН класс, 600-1000 строк кода, после переписывания объем может уменьшиться в 2 раза.


СКОЛЬКО??????

Я бы в порядке багфикса видел в страшном сне переписавыние таких классов.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[4]: Как убедить начальника?
От: Eugeny__ Украина  
Дата: 02.09.07 11:09
Оценка:
Здравствуйте, Alex EXO, Вы писали:

AE>Начальник правильно делает.

AE>Если это класс работы с железом, то там _могут_ _быть_ неочевидные (не поддающиеся логическому объяснеию) элементы (задержки, вставки пустых байт, последователнтсти запросов и т.д.) которые есть резултат старого опыта и "большого траха". Поскольку они "не следуют из логики", вы их наверняка потеряете при переписывании. И начнете круг "большого траха" по новой. Особенно это касается российского "железа", но и западного тоже.

+++
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[5]: Как убедить начальника?
От: Eugeny__ Украина  
Дата: 02.09.07 11:17
Оценка:
Здравствуйте, Miroff, Вы писали:


AE>>Если это класс работы с железом, то там _могут_ _быть_ неочевидные (не поддающиеся логическому объяснеию) элементы (задержки, вставки пустых байт, последователнтсти запросов и т.д.) которые есть резултат старого опыта и "большого траха". Поскольку они "не следуют из логики", вы их наверняка потеряете при переписывании. И начнете круг "большого траха" по новой. Особенно это касается российского "железа", но и западного тоже.


M>Такие "неочевидные" элементы в большинстве случаев результат невнимательного чтения спеки, наивного подхода к решению проблем или криворукой оптимизации. Поскольку "цикл большого траха" обычно проходит в темпе гопака с чечеткой, разбираться в причинах ошибки, а уж тем более читать документацию недосуг. Вот и получается корявый код, изобилующий никак не отмеченными хаками, в котором никто не способен разобраться.


Счастливый человек, верит в святую точность спек к девайсам
Рекомендую пописать(ударение на последний слог, хотя я часто думал о другом варианте) под китайские принтеры.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.