Re[6]: Старый проект + 1
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 26.03.09 06:49
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Без сомнения, критерии «хорошести» субъективны. И твоя попытка разобрать качество на примерах обречена на провал.


Я знаю. Просто хотел проиллюстрировать это на примере. Так сказать, для наглядности.

Кё>Только такая разница, картина рисуется один раз и плохую картину достаточно сжечь, а «субъективно плохой» код после определенной критической массы начнет вызывать совершенно объективную головную боль и девелоперов, и у тестеров, и у саппорта, и у маркетинга.


Так-с, похоже предмет спора тут отсутствует Мой поинт в том, что каждая хорошая картина хороша по-своему, но большинство плохих картин плохи схожими вещами...
[КУ] оккупировала армия.
Re[5]: Старый проект + 1
От: Vlad_SP  
Дата: 26.03.09 06:57
Оценка:
Здравствуйте, koandrew, Вы писали:

K>По-моему, основная цель code review (помимо испольования "эффекта свежих глаз") — это сделать код понятным для всех членов конкретной команды, та самая метрика WTF/sec.


Хм. Ты имеешь в виду code review (проверку кода автором этого же кода), или же code inspection (проверку другими специалистами)? (это термины PSP/TSP). Основная цель code inspection — это поиск дефектов в коде с целью их последующего устранения. Когда это перестает быть целью, процедура попросту не окупается.
Re[6]: Старый проект + 1
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 26.03.09 07:28
Оценка:
Здравствуйте, Vlad_SP, Вы писали:

V_S>Хм. Ты имеешь в виду code review (проверку кода автором этого же кода), или же code inspection (проверку другими специалистами)? (это термины PSP/TSP). Основная цель code inspection — это поиск дефектов в коде с целью их последующего устранения. Когда это перестает быть целью, процедура попросту не окупается.


Code review в этом значении — вещь ИМХО абсолютно бесполезная. Что до code inspection — обнаружение дефектов — это side-эффект от того, что код становится понятнее (т.е. рефакторится по итогам инспекции). И как я многократно убеждался на практике, экономический эффект от понятности кода весьма существеннен сразу по ряду причин, среди которых, например, лучшая learning curve для новичка, меньшая "багоёмкость" кода, простота поддержки/модификации...
[КУ] оккупировала армия.
Re: Старый проект + 1
От: sined  
Дата: 26.03.09 09:07
Оценка:
Здравствуйте, aeg, Вы писали:

Поделюсь своим схожим опытом:

Ситуация та же средних размеров проект около полмиллиона строк кода
разрабатывается в течении десяти лет. Скорость выпуска версий где — то 2-3 в год.
Когда прищел в проект был шокирован слегка , код местами просто мясо , местами неплохо
в зависмости от квалификации разработчиков.

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

А дальше больше , когда доверие возросло удалось выбить еще больше времени и продвинуть концепцию метаданных на весь проект. И что удивительно через некоторое время я заметил что коллеги уже сами стали сильно интересоватся как бы и им приобщится к новым веяниям.
Re: Старый проект + 1
От: millevi Россия  
Дата: 26.03.09 09:24
Оценка:
Здравствуйте, aeg

Бывало такое — разбирался с чужим кодом, написанным за долгие годы в виде фарша.
Я считаю, что если нет времени на переписывание и изменение, то лучше смириться и работать на проекте не напрягая свои нервы.
Новые модули можно писать как считаешь нужным (многослойность, MVC, юнит-тесты), если есть такая возможность, а если её нет... ну что же, придётся писать в том же ключе, что и предыдущие авторы.
Re[2]: Старый проект + 1
От: SkyDance Земля  
Дата: 26.03.09 12:16
Оценка: +2 -2
S>Однако когда двумя тычками мышки ты решаешь задачу которую раньше имплементировали 2-3 дня это производит впечатление поверь.

Одна лишь в этом проблема: кроме морального, никакого другого удовлетворения в итоге не получаешь. Испытано на собственной шкуре. Сделал за 2 недели хорошую программу, которая полностью избавила от необходимости "врукопашную" писать кучу кода, сэкономил не меньше 4х человеко-месяцев и попутно решил кучу других проблем вроде предоставления внешнего API. И что? Да ничего, даже похвалы не было.
В следующий раз геройствовать не буду. Зачем.
Re[2]: Старый проект + 1
От: Dog  
Дата: 26.03.09 12:37
Оценка: :)
V>Советов тут красивых тебе могут надавать море, особенно в стиле чисто
V>академических методов (SE>Путь в тысячу миль начинается с первого шага. ).
V>А по сути или ты подружишься с оным челом и за бутылкой вы решите че
V>делать дальше и как, либо ты его подставишь и выпрешь, либо свалишь сам.
На сей торжественной ноте, предлогаю собраться и выпить
... << RSDN@Home 1.2.0 alpha 4 rev. 1138>>
Re[3]: Старый проект + 1
От: sined  
Дата: 26.03.09 13:18
Оценка: +1
Здравствуйте, SkyDance, Вы писали:

SD>Одна лишь в этом проблема: кроме морального, никакого другого удовлетворения в итоге не получаешь. Испытано на собственной шкуре. Сделал за 2 недели хорошую программу, которая полностью избавила от необходимости "врукопашную" писать кучу кода, сэкономил не меньше 4х человеко-месяцев и попутно решил кучу других проблем вроде предоставления внешнего API. И что? Да ничего, даже похвалы не было.

SD>В следующий раз геройствовать не буду. Зачем.

И зря стратегия "Выполнить работу Не тупо", на достаточно длинных отрезках времени даст лучшие результаты в том числе и материальные в сравнении со стратегией "Выполнить работу Тупо". А самое главное такая стратегия значительно меньше корреллирует со внешними обстоятельствами.
Re[3]: Старый проект + 1
От: Vzhyk  
Дата: 26.03.09 13:54
Оценка: :))) :))) :)
SkyDance пишет:
>
> Одна лишь в этом проблема: кроме морального, никакого другого
> удовлетворения в итоге не получаешь. Испытано на собственной шкуре.
> Сделал за 2 недели хорошую программу, которая полностью избавила от
> необходимости "врукопашную" писать кучу кода, сэкономил не меньше 4х
> человеко-месяцев и попутно решил кучу других проблем вроде
> предоставления внешнего API. И что? Да ничего, даже похвалы не было.
> В следующий раз геройствовать не буду. Зачем.
А за что хвалить. Толпа народа спокойно просиживала штаны, потиху
плодила код, а ты их такой халявы лишил.
А если начальников тех взять, то вот сидела толпа народа, все были при
деле, плодили горы кода УПОРНО, а ту ты взял и всех подставил.
Скажи спасибо, что тебя не уволили тут же.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Старый проект + 1
От: Vzhyk  
Дата: 26.03.09 13:55
Оценка:
Dog пишет:
>
> На сей торжественной ноте, предлогаю собраться и выпить
Где и когда?
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Старый проект + 1
От: Dog  
Дата: 26.03.09 14:16
Оценка:
>> На сей торжественной ноте, предлогаю собраться и выпить
V>Где и когда?
Как потеплеет создам топег
... << RSDN@Home 1.2.0 alpha 4 rev. 1138>>
Re[4]: Старый проект + 1
От: lazyrun  
Дата: 26.03.09 17:58
Оценка: 5 (1)
Здравствуйте, Vzhyk, Вы писали:

V>SkyDance пишет:

>>
>> Одна лишь в этом проблема: кроме морального, никакого другого
>> удовлетворения в итоге не получаешь. Испытано на собственной шкуре.
>> Сделал за 2 недели хорошую программу, которая полностью избавила от
>> необходимости "врукопашную" писать кучу кода, сэкономил не меньше 4х
>> человеко-месяцев и попутно решил кучу других проблем вроде
>> предоставления внешнего API. И что? Да ничего, даже похвалы не было.
>> В следующий раз геройствовать не буду. Зачем.
V>А за что хвалить. Толпа народа спокойно просиживала штаны, потиху
V>плодила код, а ты их такой халявы лишил.
V>А если начальников тех взять, то вот сидела толпа народа, все были при
V>деле, плодили горы кода УПОРНО, а ту ты взял и всех подставил.
V>Скажи спасибо, что тебя не уволили тут же.

Ага, точно, это называется "Сверхкомпетентность по Питеру". Она более опасна чем Сверхнекомпетентность поэтому увольнют за нее чаще .
Re[4]: Старый проект + 1
От: BulatZiganshin  
Дата: 26.03.09 19:11
Оценка: 3 (1) +2
Здравствуйте, x64, Вы писали:

aeg>>И самое главное, что чувак не видит что все плохо.


x64>Тут, я думаю, ты ошибаешься. Всё он скорее всего видит, ну просто в лом потому что... За рефакторинг-то не платят.


нет, для того чтобы иметь хороший вкус, надо иметь образцы для подражания
Люди, я люблю вас! Будьте бдительны!!!
Re[2]: Старый проект + 1
От: BulatZiganshin  
Дата: 26.03.09 19:13
Оценка: 3 (1) -1
Здравствуйте, StandAlone, Вы писали:

SA>Как? Да очень просто. Свой код пиши как можно лучше, а если придется фиксить какие-то участки, то отделяй их от прочего кода через какой-либо интерфейс


не совсем так. свой код выделяй через ясные API, а чужой править отказывайся
Люди, я люблю вас! Будьте бдительны!!!
Re[5]: Старый проект + 1
От: Vzhyk  
Дата: 26.03.09 19:44
Оценка:
lazyrun пишет:
>
>
> Ага, точно, это называется "Сверхкомпетентность по Питеру". Она более
> опасна чем Сверхнекомпетентность поэтому увольнют за нее чаще .
Ну вот я прикололся, а оказывается, что такова жисть.
Posted via RSDN NNTP Server 2.1 beta
Re: Старый проект + 1
От: alvo Россия http://www.alvosoft.com/itlife
Дата: 27.03.09 09:05
Оценка:
В общем, как я понял, итог обсуждения такой: не выпендривайся.
... << RSDN@Home 1.2.0 alpha 4 rev. 1089>>
Re: Старый проект + 1
От: morpher Великобритания http://morpher.ru
Дата: 27.03.09 18:16
Оценка:
Рефакторить по мере необходимости / возможности.
Re: Старый проект + 1
От: Blazkowicz Россия  
Дата: 27.03.09 18:22
Оценка:
Здравствуйте, aeg, Вы писали:

aeg>Рефакторинг не сделаешь потому что он д.б. такой глобальный, что проще заново переписать.

Синдром "русского программиста". Поверь, зарефакторить все же проще по всем аспектам, особенно если "оно таки работает".

aeg>И меня каждый день охватывает тоска. У кого нибудь было похожее? Как с этим справлялись?

2 года в такой ситуевине. Из хорошого в проекте только некоторое разделение на слои. Из плохого — всё остальное. И ничего, за два года причесали, не фонтан конечно, но зато уже достаточно стабильно всё работает. Планируй рефакториг, выискивай участки, которые приводят к проблемам чаще всего и находи время приводить код в порядок.
Re: Старый проект + 1
От: jalxm Россия  
Дата: 28.03.09 09:53
Оценка:
печально конечно, но посмотри на это с другой стороны — чувак наверно сам вешается от поддержки всего этого,
люди приходят и уходят, а он изза этой обфускации кода обеспечил себя работой надолго вперед
руководству пофик на рефакторинг — главное "чтобы работало".
как ктото уже тут писал, нафик этот героизм и "учить дураков" своей жизни не хватит...
работай без фанатизма и за деньги, а свой следущий проект будешь делать по уму

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

aeg>Пришел на проект 2 мес. назад. До этого проект писал один человек несколько лет, ну и меня взяли к нему в
... << RSDN@Home 1.1.4 @@subversion >>
Re: Старый проект + 1
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 29.03.09 21:09
Оценка: 19 (3) -1
Здравствуйте, aeg, Вы писали:

aeg>Но мне ведь надо добавлять/менять функциональность. Рефакторинг не сделаешь потому что он д.б. такой глобальный, что проще заново переписать. И меня каждый день охватывает тоска.

А почему она Вас охватывает?

нет, я конечно понимаю почему, сам начинал разработчиком и тут кристально ясно, что подобный код не радует и все такое.

но я вот о чем: вдумайтесь — почему именно Вас должна охватывать тоска?
разве Вы отвечаете за планирование, сроки, общее качество и т.п.?

Вам спускают запрос на добавление\изменение ф-ти — с учетом ситуации можно выдать оценку и разве Ваша вина, что учитывая положение в коде добавление не делается "2-3 кликами мыши", как кто-то писал ниже по ветке?

Нет. Пипежить за долгое добавление и хронические проблемы с качеством (а они должны быть согласно описанию положения дел) по идее будут кого-то уровнем повыше. А если не пипежат — возможно, так надо и\или пока еще жареный петух не клюнул, потому и кажется, что тишь да благодать наверху. Это ж вообще нередко центральная проблема менеджмента, что снизу часто виднее что да как, ну да стоп оффтоп. В любом случае — уже не совсем Ваш уровень.

А если есть тенденция выставления Вас крайним в процедуре пипежинья-по-цепочке — любой не-джуниор уже знает методы борьбы с такими вещами: заблаговременная, грамотная оценка с фиксацией в письменно-электронной форме. После одобрения и согласия с такими оценками шефа — работа в рамках. Можете делать рефакторинг на своем участке, можете не делать — главное в согласованных до рамках и обеспечивая требуемый результат.

Это ключевой момент.

Ибо желание помочь и благие цели — как ни странно запросто приведут к чему-то нехорошему даже в данном случае с учетом такой некрасивой картины маслом. Когда начнете свой крестовый поход за рефакторинг, не согласовав его с рук-м и другими членами команды — быть беде.

aeg>У кого нибудь было похожее? Как с этим справлялись?

у всех кто реально программировал такое было.

как справляться дали немало советов ниже по ветке.

я же хотел только добавить что ответ по поводу оптимальной стратегии в данном вопросе, возможно, следует искать немного в другом топике: Правильный ПМ или кто более ценен?
Автор: insighter
Дата: 19.03.09


для начала выясните какой у вас шеф.

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

В противном же случае поддержка будет как раз на их стороне, а Вам будет по ряду причин весьма тяжко.
--
потому и предлагаю: во-первых избавиться от тоски и уныния. ибо надо тут действовать хоть и с горячим сердцем но холодной головой — вместо того, чтобы позволять охватить себя чувствам и эмоциям имеет смысл продумать что можно\нужно с этим сделать и каким образом. А во-вторых — почитать соседний топик и затем уже соотносить дао из этого со своей конкретной ситуацией.
... << RSDN@Home 1.2.0 alpha 4 rev. 1139>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.