Re: Старый код на новом месте
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 17.11.16 12:04
Оценка: 16 (5) +12
Здравствуйте, Dair, Вы писали:

D>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).


Поздравляю!

D>Тут, как и везде у меня на последних местах работы, есть долгоиграющий проект, который начат годы назад, сейчас в поддерживаемом и развиваемом состоянии.


Копролит мамонта – типичное состояние проекта в "крупной международной компании"

D>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?.. С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.


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

Я обычно делаю следующее. Так как весь этот копролит обычно никакими тестами не покрыт стараюсь донести идею полезности автоматического тестирования. Если удалось (пока не удалось только в Самсунге), то начинаем добавлять тесты для новых модулей и для того, за что отвечаешь лично ты. Если лезешь в какой-то кусок, то пишешь тесты и начинаешь не только новые фичи прикручивать, но и делать рефакторинг, не спеша, по чуть-чуть. Дальше зависит от твоей настойчивости и навыка влияния на людей, будут слушать или нет, не забросят ли это дело и так далее, но это уже тема для отдельного разговора.
Re: Старый код на новом месте
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 17.11.16 11:14
Оценка: 6 (1) +7 -1
Здравствуйте, Dair, Вы писали:

D>Теряюсь.

Почему? Просто когда фиксишь баги начинай проводить небольшой рефакторинг который сильно не влияет на соседний модули, а фичи изолируй и пиши уже в нормальном виде.
Sic luceat lux!
Re: Старый код на новом месте
От: Олег К.  
Дата: 17.11.16 10:39
Оценка: 4 (1) +8
D>Теряюсь.

Это нормально. Ты, как синьйор, должен бы понимать что такое было, есть и будет.

В Союзе, кстати, такое же было и в электронике. Принципиальные схемы, транзисторы, резисторы... Вместо того чтобы сделать просто, такое наворотят...

В общем, относись к этому проще и учись работать в рамках существующего кода. Это и отличает синьйора от не-синьйора.
Re[2]: Старый код на новом месте
От: __kot2  
Дата: 17.11.16 18:23
Оценка: 1 (1) :))) :)))
добавлю одну конкретную историю, произошедшую в микрософте

мы там писали как бы с нуля достаточно большую систему взамен старой. я пришел в команду чуть позже основных участников и стал разбираться, фиксить баги, писать фичи. был у нас там один говнарь, китаец называемый Чарли, точнее говнарей там хватало, но про него как-то особенно часто отзывались остальные коллеги и я когда стал работать над его же частями, ознакомился лично с его файликом тыщ на 50 строк, в который он писал свои унылые спагетины. уровень человека был в лучшем случае троешно-студенческий. так как это уже было в продакшене и мне приходилось править там баги, то я что-то рефакторить, выделять в модули, писать тесты, наткнувшись, правда, на его противостояние. я был очень рад, когда он, наконец, свалил в другую команду и перестал поганить код. я вообще никогда начальству не говорю о том, что кто-то плохо работает, но тут он ушел, и я на радостях пришел на 1-1 к тимлиду и говорю — как классно, что Чарли свалил. такого говна понаписал, вот смотри, что он придумал — ну и так с шуточками показал ему несколько совсем уродских его решений. ну, говорю, как он ушел, наконец-то все сейчас все нормально заработает. тимлид почему-то не оценил моего энтузиазма, попытался даже его оправдывать, причем так коряво, типа "а что, 50 тысяч строк файл с сотней классов без тестов с ф-иями по 5000 строк это разве плохо? работает же".
а потом вдург выяснилось, что, оказывается, он этого Чарли, вот за эту самую спагетину большую, повысил перед уходом и дал ему наивысшую оценку. а тут прихожу я, обсираю Чарли, и, получается, прямо ему заявил о его непрофессионализме. а у них у китайцев статус начальника это очень больная тема. нельзя так делать вообще никогда, усомняться в его божественном проеисхождении и правильности решений. тимлид на меня потом вообще жестко окрысился, хотя я, разумеется, ничего плохого про него не сказал, и как разработчик был очень полезен для проекта
Re[2]: Старый код на новом месте
От: bazis1 Канада  
Дата: 20.11.16 04:15
Оценка: 28 (5) :)
Здравствуйте, SaprXM, Вы писали:

SXM>напади на них

SXM>выпотроши весь код втихую сам
SXM>а потом покажи как надо, унизь всех
Не поможет. Я в MS так распутал жуткую каку на много тысяч строк, которая реализовывала нечеткую логику линейной проверкой десятков комбинаций условий. Покрыл тестами, отрефакторил data flow, свел в паттерну "проверяем ряд известных предположений, назначаем каждому score, выбираем максимальный", параллельно обнаружил и поправил ряд багов в логике, которые все никак не могли воспроизвести...
Результат — "недостаточное влияние на команду" и ревью ниже плинтуса. А чел, который яростно тыкал палки в колеса и настаивал на переименовании всех переменных, к которым обращался рефакторенный код, и даже не понимал, как оно работает, получил повышение, ибо хороший командный игрок. Да, коммит в итоге не прошел в релизный бранч и был потерян где-то в дебрях внутренних веток, а я стал врагом №1 за то, что раздал партнерам из соседних команд исправленный билд, который работал и не содержал косяков, из-за которых все и затевалось.
Re[11]: Старый код на новом месте
От: __kot2  
Дата: 23.11.16 15:40
Оценка: 1 (1) +1 :))) :)
я как вспомнил этот проклятый микрософт, мне сразу примерно такая зарисовочка в голове появилась:

предсьавте себе, собирает тимлид митинг и говорит — нам сверху спустили указание переходить от sql на nosql. все покивают головами, мол, хорошая идея и разойдутся. русский останется обьснять, что это какой-то бред. через полчаса обьяснений прибежит китаец и скажет, что все сделал. тимлид его похвалит и скажет русскому — вот, учись у нашего лучшего программиста искать решения. русский начнет выяснять, что и как он сделал и выяснит, что он, оказывается, просто переименовал "sql server" в "nosql server" и все.

тимлид на совещании со своим менеджментом расскажет, что они уже перешли на nosql, ему тут же лайки и обещания премий, приведение в пример другим. когда его спросят, поднялась ли скорость, тот скажет, что в два раза. потом придет с совещания и скажет своим подчиненным, что нужно за пару дней поднять скорость в два раза. через пару дней один из образцовых сотрудников проведет презентацию, где расскажет, как он это сделал. он расскажет о том, как замерял скорость конкретных тестов в бенчмарке, выкинул самые тяжелые и теперь бенчмарк выполняется не 20 минут, а 10. ему все поаплодируют и похвалят. невероятно офигевающий от такой математики русский, теперь уже с поправкой на умственные способности хлопающих решению окружающих, осторожно заметит, что, возможно, решение не идеальное. на что тимлид снисходительно обьяснит ему, что идеальное решение можно делать бесконечно долго, нужно делать рабочее решение, а все ньюансы можно потом поправить. и, кстати, править их будет он, раз вызвался
Re: Старый код на новом месте
От: El Camino Real США  
Дата: 17.11.16 11:43
Оценка: -6
Здравствуйте, Dair, Вы писали:

D>Теряюсь.

Какие нынче джуниоры впечатлительные пошли. Это у вас в институте можно было озаботиться качеством кода в рамках курса "Code-monkey skills 101", а у нас тут на заводе всё по-челябински сурово — тяп-ляп и в продакшн.
Попытайся что-нибудь новое сделать с правильной оргнизацией процесса, архитектурой и всем прочим. Будет возможность показать на наглядном примере, если в сроки уложишься. И если компания действительно "крупная и международная" лучше без резких движений. Возможно, те, кто этот огород нагородил уже продвинулись на хорошие должности и им будет неприятно слышать, какой гамокод они творили по молодости.
Re: Старый код на новом месте
От: licedey  
Дата: 17.11.16 11:46
Оценка: 2 (1) +1 -1 :))
Здравствуйте, Dair, Вы писали:

D>disclaimer: я скорее жалуюсь, чем прошу совета, но совет тоже интересен



D>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).


D>Тут, как и везде у меня на последних местах работы, есть долгоиграющий проект, который начат годы назад, сейчас в поддерживаемом и развиваемом состоянии.


D>Теряюсь.


Спрашивал 5 лет назад тоже самое
Автор: licedey
Дата: 18.03.11
. Часто тут такое спрашивают. Резюме:
— Спрашивать в деталях, что за проект и в каком он состоянии до оффера
— Создать отдельный брэнч и неспешно переписывать по своему
— Перенести критичные части в библиотеку, остальное писать по своему
— Перевестись на другой проект
— Если систему не сломать, что наиболее вероятно в "крупной бюррократической компании" — завести свой knowledgebase документ, куда выписывать
как ОНО работает, классы/модули/архитектура/преметная область/воркфлоу итд. Неделя, две, три — и вы уже в теме.
Re[2]: Старый код на новом месте
От: Dair Россия https://dair.spb.ru
Дата: 17.11.16 10:51
Оценка: +5
Здравствуйте, Олег К., Вы писали:

ОК>В общем, относись к этому проще и учись работать в рамках существующего кода. Это и отличает синьйора от не-синьйора.


Ну вот, да, примерно те же мысли, пока так и собираюсь делать. Но мне "владеть" этим продуктом. Новые фичи буду по-своему уже делать, старое переделывать буду только если это будет непосредственно противоречить идеологии нового.
Re[3]: Старый код на новом месте
От: aik Австралия  
Дата: 18.11.16 01:02
Оценка: +5
Здравствуйте, turbocode, Вы писали:

T>Баги нужно срочно фиксить максимум за два часа.


В "крупных международных компаниях" редко когда нужно фиксить баги за 2 часа.
Re: Старый код на новом месте
От: bnk СССР http://unmanagedvisio.com/
Дата: 20.11.16 14:56
Оценка: +5
Здравствуйте, Dair, Вы писали:

D>С 1 числа вот копаюсь в коде, и уже три дня (когда более-менее разобрался в нём) бью себя по рукам от желания переписать ***** вообще всё.

D>А тут ещё общаюсь с соседними отделами, которые пишут библиотеки, которые вставляются в разные продукты, в том числе и в один из наших, так там ВООБЩЕ караул.

D>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?.. С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.


D>Теряюсь.


Спокойствие, только спокойствие

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

Главное, никаких революций, иначе сам же можешь пасть их жертвой. А вот постепенное улучшение работает.
Упрощение кода, обкладывание автоматическими тестами, автоматические commit policy
навроде "функция не больше экрана", "код не коммитится без ссылки тикет".
Постараться чтобы всякая "хрень" не разрасталось, ну или по крайней мере, не так быстро.

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

А вообще, сложно это.. даже не то чтобы даже просто переписать, а переписать так,
чтобы "апач" твой код понял, почувствовал приемущества твоего подхода для себя, и смог этот код развивать.
И поскольку это "КМК", то еще желательно переписывать так, чтобы твои шефы/коллеги увидели в этом переписывании не наезд,
а возможность роста, конечно же если хочешь задержаться или расти в этой компании. В общем думать о людях.

Ну и да, новопассит помогает.
Re: Старый код на новом месте
От: AlexGin Беларусь  
Дата: 18.11.16 09:29
Оценка: 20 (3) +1
Здравствуйте, уважаемый Dair, Вы писали:

D>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).


Поздравляю с новой работой!

D>Тут, как и везде у меня на последних местах работы, есть долгоиграющий проект, который начат годы назад, сейчас в поддерживаемом и развиваемом состоянии.

То есть, данный проект, как я понимаю, приносит вышеупомянутой компани выгоду?
Возможно, позволяет держать некую долю рынка аналогичных программных продуктов?

D>С 1 числа вот копаюсь в коде, и уже три дня (когда более-менее разобрался в нём) бью себя по рукам от желания переписать ***** вообще всё.

Знакомо! Даже очень знакомо!
У меня были аналогичные ситуации — вовремя сдержал себя от данного желания!
Просто проанализировал всё, что меня окружало, и сумел принять верное решение

D>А тут ещё общаюсь с соседними отделами, которые пишут библиотеки, которые вставляются в разные продукты, в том числе и в один из наших, так там ВООБЩЕ караул.

Опять же — знакомо

D>Доктор Форум, это нормально?

Да, вполне нормально.

D>Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?..

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

D>С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.

Вне всяких сомнений, что будет всем лучше!
Просто, слудует выбрать правильную траекторию к этому состоянию.

D>Теряюсь.

Не нужно теряться!

Давай анализировать:
В больших компаниях — главное профит (в малых — то же самое).
Компания продаёт Программный Продукт...
Первично — впечатления Заказчика/Конечного пользователя; сроки поставки новых версий; оперативность и качество сопровождения.
Как этот продукт устроен внутри: архитектура; стиль написания кода; имена классов, интерфейсов, методов и переменных — важно, но вторично.
Ещё раз подчеркну — для Заказчика, который финансирует разработку, это вторично.

Так, например, нефункциональный либо непродуманный GUI, или отсутствии пользовательской документации, сразу бросаются в глаза Заказчику
Однако, метод класса, содержащий более тысячи строк (который просто просится разбить его на несколько методов или классов),
вероятно останется виден только для Разработчика...
Только Разработчик, будет по ночам, в кошмарном сне, представлять себе как рефакторит этого монстра!

Вывод: всё делать step-by-step. Не торопиться!
Если ты на работе превые пару недель, то пока — просто изучай проект. Набирайся в нем опыта! Пока — НЕ трогай то, что работает!
Записывай — что НЕ пронравилось в решениях по проекту.
Через полгода — исправишь!
А возможно, над какими-то замечаниями и сам посмеёшся, поняв свои заблуждения.

Ещё один совет:
приглядываться не только к коду, но и к коллегам, которые работают с тобой, или даже связаны с тобой дистанционно;
приглядываться к организации рабочих процессов в компании, к тому, как коллеги выполняют возложенные на них роли.
Вот примерно так

Успехов на новом рабочем месте, уважаемый Dair!
Отредактировано 18.11.2016 10:01 AlexGin . Предыдущая версия . Еще …
Отредактировано 18.11.2016 9:56 AlexGin . Предыдущая версия .
Отредактировано 18.11.2016 9:31 AlexGin . Предыдущая версия .
Re[2]: Старый код на новом месте
От: Gattaka Россия  
Дата: 18.11.16 06:13
Оценка: 6 (1) +3
Здравствуйте, CEMb, Вы писали:

CEM>По теме: если код достаточно модульный, а причины переписать объективные: надо переписать.

CEM>Если код не модульный: надо переписать сначала на модульный.
CEM>Если причины не объективные — новопассит
CEM>Вообще в IT-сообществе бытует такое мнение, что желание всё переписать — признак ущербности/незрелости. Это не так. Хотя бы потому что мир очень динамично меняется, меняются технологии и языки, переписывать всё мало того, что можно, часто это просто необходимо делать!
Это самообман часто. Люди не понимают предметную область до конца ввиду ее сложности. Поэтому они говорят, что код плохой это из-за кода все непонятно. На самом деле через переписывание они попросту знакомятся с предметной областью, выбивая себе дополнительное время. Причем новички пришедшие в контору уже после переписывания будут точно так же ругать код и точно так же его переписывать.
Re[8]: Старый код на новом месте
От: __kot2  
Дата: 22.11.16 13:25
Оценка: +2 :))
Здравствуйте, greenpci, Вы писали:
G>наш менталитет на первое место ставит эффективность, знания и профессионализм. Видимо, из-за тяжелой судьбы населения и выживания в трудных условиях. У них же, на первом месте отношения между людьми. Это я в двух словах объяснил, без претензии на абсолютную объективность.
самая главная разница, которую стоит усвоить русскому человеку, работая в американской конторе — ты работаешь не на проект. ты работаешь на начальника. я когда рассказываю, что в России во главе обычно стоят интересы проекта, ради чего соб-но люди и собрались, на меня люди просто в шоке смотрят, что, мол, ты что, тт все собрались деньги заработать для начальника, который ими с тобой делится в зависимости от того, как ты помог ему сделать то же для его начальника. слова проект тут вообще нет. можно не заниматься вообще буквально ничем, но при этом, ну не знаю, например, кофе делать для начальника и все — ты лучший программист

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

завалить проект в российской компании это жесткие проблемы для всей команды и иногда даже выделание всей компании в трубу. в микрософте завалить проект это как сходить пописять. там вообще никто ни от кого не ждет никакого другого результата. не важно, сделал ты проект, не сделал, главное, какое ты при этом впечатление произвел, сидят ли твои друганы в начальстве выше или нет.
Отредактировано 22.11.2016 13:35 __kot2 . Предыдущая версия .
Re: Старый код на новом месте
От: Privalov  
Дата: 17.11.16 10:47
Оценка: 6 (2) +1
Здравствуйте, Dair, Вы писали:

D>Теряюсь.


Помнится, я тоже в такое попадал. Сначала чесались руки все переписать к чертям. Но примерно через полгода я в том коде ориентировался совершенно свободно. Со всеми его прелестями: функциями со средним размером 1000 строк (максимальный — 3500), макаронами, константами с именами ONE, TWO, ..., FIFTY, переменными var1, var2. Править его было тяжеловато. Но ничего, справлялся.
Re: Старый код на новом месте
От: De-Bill  
Дата: 18.11.16 06:46
Оценка: 4 (2) +1
D>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?.. С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.

Есть замечательный критерий. Надо попытаться оценить людей, делавших проект безотносительно кода самого проекта. Если эти не на порядок хуже, глупее, ленивее, непрофессиональнее тебя, то нет оснований считать, что получится на порядок более читаемый и поддерживаемый проект.
Re: Старый код на новом месте
От: binnom  
Дата: 17.11.16 11:07
Оценка: 2 (1) +2
Здравствуйте, Dair, Вы писали:

D>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).

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

D>Тут, как и везде у меня на последних местах работы, есть долгоиграющий проект, который начат годы назад, сейчас в поддерживаемом и развиваемом состоянии.



D>С 1 числа вот копаюсь в коде, и уже три дня (когда более-менее разобрался в нём) бью себя по рукам от желания переписать ***** вообще всё.



D>А тут ещё общаюсь с соседними отделами, которые пишут библиотеки, которые вставляются в разные продукты, в том числе и в один из наших, так там ВООБЩЕ караул.



D>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?..

Это зависит от того — что ты хочешь. Если хочешь тайтлов и денег — трать больше времени на митинги, знакомься с людьми.

D>Или не стоит прогибаться, надо прогибать?..

Ты не первый такой.

D>С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.

Это называется "пилить якорь за ипотеку".

D>Теряюсь.

Если через полгода будешь задаваться вопросом — какого х я тут делаю, в чем моя роль — ищи новую работу.
Re: Старый код на новом месте
От: __kot2  
Дата: 17.11.16 17:00
Оценка: 1 (1) +1 -1
Здравствуйте, Dair, Вы писали:
D>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?.. С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.
мне лично непонятна бывает идея что-то за кого-то переделывать
это совершенно типично, когда люди начинают жаловаться, что занимаются только копанием в какашках и деградируют. ну так не надо этим заниматься. с вас что спросят? новый функционал? ну так пишите его отдельно, абстрагируясь это этого вот всего остального и взаимодействуя с остальным лучше только на уровне сервисов. никто еще никогда не получил никаких продвижений-повышений из-за правки багов. это борьба с ветряными мельницами, просто забейте на них. вы все равно ничего не сможете исправить. точнее, сможете, на это выставит напоказ некомпететность многих людей, которые захотят вас оттуда убрать
Re: Старый код на новом месте
От: turbocode  
Дата: 17.11.16 10:56
Оценка: :)))
D>Теряюсь.

Меняй работу, а то со временем не заметно для себя станешь таким же быдлокодером и больше никуда не возьмут.
Re[4]: Старый код на новом месте
От: bazis1 Канада  
Дата: 20.11.16 17:59
Оценка: 10 (2)
Здравствуйте, Kernan, Вы писали:

B>>Результат — "недостаточное влияние на команду" и ревью ниже плинтуса. А чел, который яростно тыкал палки в колеса и настаивал на переименовании всех переменных, к которым обращался рефакторенный код, и даже не понимал, как оно работает, получил повышение, ибо хороший командный игрок. Да, коммит в итоге не прошел в релизный бранч и был потерян где-то в дебрях внутренних веток, а я стал врагом №1 за то, что раздал партнерам из соседних команд исправленный билд, который работал и не содержал косяков, из-за которых все и затевалось.

K>Дай угадаю, чел был индус или китайец, да?
Нет, но из одной солнечной страны, о лени и тупости обитателей которой слагаются легенды.
K>Что значит это "недостаточное влияние на команду"? Надо же наооборот вносить подобные изменения и на их основе обучать команду, т.е. подтягивать уровень команды, а не снижать его занижая планку.
В больших компаниях это политкорректный вариант для "он мне не нравится" и почти всегда имеет больший приоритет, чем какие-либо результаты. Чел, который подсказывал фигню, был ВНЕЗАПНО земляком лида и водил его по кабакам, оплачивая бухло.
K>Что потом, кстати, говорили прани котрые получили новый билд, но в итоге вернулись на старый?
Спросили меня "какого хрена". Так как я к тому времени все понял, то перенаправил к лиду с формулировкой "я человек маленький и такими глыбами не ворочаю", лид ничего внятного не ответил, и через пару итераций тему похоронили. А потом я досидел свой обязательный год до канадского permanent residence и откланявшись сбежал. К огромному удивлению команды, которая была уверена, что я прогнулся по гроб жизни.
Re[2]: Старый код на новом месте
От: __kot2  
Дата: 18.11.16 12:10
Оценка: 9 (2)
Здравствуйте, De-Bill, Вы писали:
DB>Есть замечательный критерий. Надо попытаться оценить людей, делавших проект безотносительно кода самого проекта. Если эти не на порядок хуже, глупее, ленивее, непрофессиональнее тебя, то нет оснований считать, что получится на порядок более читаемый и поддерживаемый проект.
+ я еще дарю экспресс-критерий оценки качества кода, который можно сделать почти мгновенно без всякого интрументария
процент говна = % файлов содержащих внутри слова helper и util

и при рефакторинге и прочем переписывании надо иметь в виду, что внутри той же команды качество неизменно. сколько бы они не переписывали, лучше не становится. лучше, возможно, может стать, когда это бует делать другая команда
Re[4]: Старый код на новом месте
От: Antidote  
Дата: 18.11.16 02:16
Оценка: 2 (1) +1
Здравствуйте, bazis1, Вы писали:

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

B>Это да, в больших компаниях нет объективных понятий хорошо и плохо. И реакция на любое событие определяется исключительно политическим статусом человека, от которого она исходит. Т.е. если он земляк/собутыльник лида, и при этом закоммитил хрень, которая даже не собирается, ибо с бодуна промахнулся по клавиатуре, а собирать поленился, то виноват все равно ты ибо мог же исправить.
__>>тимлид на меня потом вообще жестко окрысился, хотя я, разумеется, ничего плохого про него не сказал, и как разработчик был очень полезен для проекта
B>В таких местах здравый смысл не работает, о чём Вы... Тут все решается вопросом "кто глубже лизнул", а работу делать — вообще моветон, ибо будете ее делать за всю команду.

Ну и зачем всех под одну гребёнку? Во всех больших конторах поработал что-ли? Всякое бывает, везде, всё зависит от людей.
Чему бы грабли ни учили, а сердце верит в чудеса.
Re: Старый код на новом месте
От: Skorodum Россия  
Дата: 17.11.16 14:49
Оценка: +1 -1
Здравствуйте, Dair, Вы писали:

D>Теряюсь.

А вот мне такое даже нравится, если временных ресурсов хватает на попутный рефакторинг, главное сильно не увлекаться.

Это как уборка: легко и сразу виден результат. Ну и еще чувствуешь себя умнее и лучше предшественника
Re[3]: Старый код на новом месте
От: Skorodum Россия  
Дата: 17.11.16 14:59
Оценка: +1 :)
Здравствуйте, turbocode, Вы писали:

T>Предшественника гнали в шею, а тебе подавай временные ресурсы -> значит что ты ничем не лучше.

Вы своими предположениями говорите о себе гораздо больше, чем стоило бы.
Re[4]: Старый код на новом месте
От: turbocode  
Дата: 17.11.16 21:28
Оценка: +2
L>Не встречал на практике, чтобы нового человека кидали на амбразуру из сотни мегабайт. Грамотный менеджер выделит новичку свою песочницу, у которой один вход и выход. Это потом уже, будь добр все пойми..но изначально время должно быть на освоиться.

Кинут сначала фиксить баги в сотнях мегабайт, потом небольшие доработки, потом все больше и больше.
Re[3]: Старый код на новом месте
От: DiPaolo Россия  
Дата: 18.11.16 02:41
Оценка: +2
D>Ну вот, да, примерно те же мысли, пока так и собираюсь делать. Но мне "владеть" этим продуктом. Новые фичи буду по-своему уже делать, старое переделывать буду только если это будет непосредственно противоречить идеологии нового.

А что Вы вкладываете в данном случае во фразу "мне "владеть" этим продуктом"? Вы ПМ, тим-лид или разработчик?

Что касается "по-своему делать". Это не так просто в случае:
— крупного проекта в
— крупной компании
— который приносит стабильные (возможно, большие) деньги
— у которого есть ряд (или один, но важный) заказчиков, перед которыми есть обязательства
— в поддержке и разработке продукта участвует много людей (десятки, сотни)
— код ведет свою историю на протяжении долгих лет
— за это время сменилось множество разработчиков продукта
— продукт завязан на множество компонент соседних отделов и общих компонент компании, не говоря уже о 3rd party

Думаю, в коде уже явно различимы "годовые кольца" — каждый (ну ладно, не совсем каждый) новый человек делал фичи "по-своему" ("уж я-то наведу порядок"), в следствие чего код и является таким, как Вы его застали сейчас.

Это я к чему... Да так, пища для размышлений Силу джедая должен познать ты. На код смиренне смотреть нужно тебе.
Патриот здравого смысла
Re[11]: Старый код на новом месте
От: mgu  
Дата: 21.11.16 23:27
Оценка: :))
Здравствуйте, Antidote, Вы писали:

A>Да всё правильно, просто на работе мы проводим 8 часов в день, и если всё это время "терпеть и не высовываться" — как-то грустно всё совсем выглядит


Всё хорошо в меру. Мы уже высунулись -- на этом форуме: 90% только читают и всякие гадости про нас думают.
Re[2]: Старый код на новом месте
От: Skorodum Россия  
Дата: 17.11.16 15:04
Оценка: 1 (1)
Здравствуйте, licedey, Вы писали:

L>- Спрашивать в деталях, что за проект и в каком он состоянии до оффера

+1
Я прошу показать пример текущих задач и как они выполняются, последние коммиты.

L>- Создать отдельный брэнч и неспешно переписывать по своему

L>- Перенести критичные части в библиотеку, остальное писать по своему
Если временные ресурсы есть.

L>- Перевестись на другой проект

Редко возможно, ИМХО.

L>- Если систему не сломать, что наиболее вероятно в "крупной бюррократической компании" — завести свой knowledgebase документ, куда выписывать

L>как ОНО работает, классы/модули/архитектура/преметная область/воркфлоу итд. Неделя, две, три — и вы уже в теме.
+1
Расслабится, в смысле не стремится переписать все за один день, и постараться получать удовольствие от работы.
Старый код на новом месте
От: Dair Россия https://dair.spb.ru
Дата: 17.11.16 10:32
Оценка: :)
disclaimer: я скорее жалуюсь, чем прошу совета, но совет тоже интересен


Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).

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

С 1 числа вот копаюсь в коде, и уже три дня (когда более-менее разобрался в нём) бью себя по рукам от желания переписать ***** вообще всё.
А тут ещё общаюсь с соседними отделами, которые пишут библиотеки, которые вставляются в разные продукты, в том числе и в один из наших, так там ВООБЩЕ караул.

Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?.. С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.

Теряюсь.
Re[2]: Старый код на новом месте
От: Privalov  
Дата: 17.11.16 12:16
Оценка: +1
Здравствуйте, Kernan, Вы писали:

K>Почему? Просто когда фиксишь баги начинай проводить небольшой рефакторинг который сильно не влияет на соседний модули, а фичи изолируй и пиши уже в нормальном виде.


Да в том-то и дело, что какая-нибудь переменная внезапно™ может оказаться чуть юолее глобальной, чем она выглядела. И в результате отвалится что-нибудь, казалось бы, никак не связанное с редактируемым модулем.
И чаще всего проблемный модуль обкладывают костылями. Это, на первый взгляд, проще. И народ не задумывается о том, что такие костыли со временем превращаются в грабли.
Re: Старый код на новом месте
От: Gattaka Россия  
Дата: 17.11.16 18:06
Оценка: :)
Здравствуйте, Dair, Вы писали:

Давай рассуждать логически. Вот поправишь ты код, через год ваша команда расширится, возьмут говнокодера. Он тебе обратно все перепишет. Поэтому увольняйся сразу, обмани систему.
Re[3]: Старый код на новом месте
От: licedey  
Дата: 17.11.16 21:24
Оценка: :)
Здравствуйте, turbocode, Вы писали:

L>>как ОНО работает, классы/модули/архитектура/преметная область/воркфлоу итд. Неделя, две, три — и вы уже в теме.


T>В корпоративе даже отдельные модули могут весить сотни мегабайт кода с нетривиальной логикой но это еще не все потому что быдлокод может быть следствием быдлобазы данных менять структуру которой не просто (так как она уже используется тысячами сторонних клиентов).


Не встречал на практике, чтобы нового человека кидали на амбразуру из сотни мегабайт. Грамотный менеджер выделит новичку свою песочницу, у которой один вход и выход. Это потом уже, будь добр все пойми..но изначально время должно быть на освоиться.
Re[3]: Старый код на новом месте
От: bazis1 Канада  
Дата: 17.11.16 21:50
Оценка: +1
Здравствуйте, __kot2, Вы писали:

__>...

__>а потом вдург выяснилось, что, оказывается, он этого Чарли, вот за эту самую спагетину большую, повысил перед уходом и дал ему наивысшую оценку. а тут прихожу я, обсираю Чарли, и, получается, прямо ему заявил о его непрофессионализме. а у них у китайцев статус начальника это очень больная тема. нельзя так делать вообще никогда, усомняться в его божественном проеисхождении и правильности решений.
Это да, в больших компаниях нет объективных понятий хорошо и плохо. И реакция на любое событие определяется исключительно политическим статусом человека, от которого она исходит. Т.е. если он земляк/собутыльник лида, и при этом закоммитил хрень, которая даже не собирается, ибо с бодуна промахнулся по клавиатуре, а собирать поленился, то виноват все равно ты ибо мог же исправить.
__>тимлид на меня потом вообще жестко окрысился, хотя я, разумеется, ничего плохого про него не сказал, и как разработчик был очень полезен для проекта
В таких местах здравый смысл не работает, о чём Вы... Тут все решается вопросом "кто глубже лизнул", а работу делать — вообще моветон, ибо будете ее делать за всю команду.
Re[2]: Старый код на новом месте
От: Antidote  
Дата: 18.11.16 02:27
Оценка: +1
Здравствуйте, mgu, Вы писали:

mgu>Это менталитет. Ничего личного, я сам такой и каждый раз, приступая к новому проекту, я хватаюсь за пистолет. Ни у кого больше я не видел позывов "разрушим до основанья, а затем", даже у потомков маоистов.


Причём тут менталитет? У нас австрал такой был. Нарушил много

mgu> Причём задача "всё переделать" часто первична, затем подгоняется решение. Изменение системы исподтишка обычно помогает, но в худшем случае это кончается тем, что откатывают все твои изменения до последней душераздирающей версии. Особенно невыносимы некоторые братья-совки: они ждут, когда ты заболеешь на пару дней и, отложив все свои дела, они яростно превращают твою конфетку в своё решение. Ибо они тоже верят, что "так будет лучше". Если что, мой код по всем параметрам лучше,


Вот это здорово, Дартаньяны одобря

mgu>поэтому я выслушиваю претензии из цикла "так не пишут", "другим не понять" и т. п..


А вот это очень важно, "гениальные" поделки придётся править и поддерживать обычным людям. Обычно непонятный запутанный код пишут студенты, чтобы "круто"

mgu>Я сам сижу сейчас на подобной куче, и мне уже попало за применение тернарного оператора.


Слабая команда?

mgu>Что делать? Не знаю. Я себя убеждаю в том, что свой код не пахнет, и что моя задача -- не изменять мир к лучшему, а исполнять корпоративный менуэт и получать зарплату.


Становиться значимой фигурой в конторе, к которой прислушиваются, и потихоньку менять мир к лучшему Простых рецептов тут нет.
Чему бы грабли ни учили, а сердце верит в чудеса.
Re[3]: Старый код на новом месте
От: DiPaolo Россия  
Дата: 18.11.16 03:00
Оценка: +1
L>>- Создать отдельный брэнч и неспешно переписывать по своему
L>>- Перенести критичные части в библиотеку, остальное писать по своему
S>Если временные ресурсы есть.

Так и представляю картину: 100 человек работают над продуктом, и тут приходит ОН — рыцарь в белых доспехах. Ему выделяют отдельный кабинет, секретаршу, и даже свой собственный бранч! И ждут, когда он все перепишет согласно всем академическим канонам разработки ПО.
Патриот здравого смысла
Re[2]: Старый код на новом месте
От: De-Bill  
Дата: 18.11.16 06:42
Оценка: +1
CEM>меняются технологии и языки

И это достаточная причина для того, чтобы начать переписывать весь проект? На новый язык и технологию? А когда язык и технология изменится опять? Я работаю недолго. Всего лет 15. Но даже за это время в моём направлении было с десяток новых технологий, от которых народ просто прыгал от счастья, и которые не прожили и 3х лет.
Re[3]: Старый код на новом месте
От: antonio_banderas Россия  
Дата: 21.11.16 11:37
Оценка: +1
Здравствуйте, Skorodum, Вы писали:

L>>- Спрашивать в деталях, что за проект и в каком он состоянии до оффера

S>+1
S>Я прошу показать пример текущих задач и как они выполняются, последние коммиты.

И что, показывают?
Или уклоняются под разными предлогами и обходятся словесным описанием? "Ну что вы, у нас самый качественный и самый хороший код, используем все паттерны, юнит-тесты, и вообще всё по новейшим технологиям".
А потом выходишь на работу, смотришь код, и...
Re[7]: Старый код на новом месте
От: greenpci  
Дата: 22.11.16 10:50
Оценка: +1
Здравствуйте, El Camino Real, Вы писали:

ECR>Я, кстати, так и не понял какие специфичные для русского человека ошибки были совершены. Плюнул в спину ушедшему коллеге и умудрился отдать налево несанкционированный билд? Это универсальное, но розги обычно помогают.


наш менталитет на первое место ставит эффективность, знания и профессионализм. Видимо, из-за тяжелой судьбы населения и выживания в трудных условиях. У них же, на первом месте отношения между людьми. Это я в двух словах объяснил, без претензии на абсолютную объективность.
Re[9]: Старый код на новом месте
От: turbocode  
Дата: 22.11.16 21:08
Оценка: -1
Здравствуйте, __kot2, Вы писали:

Предполагаю что ты работаешь в команде азиатов поэтому у тебя складывается неправильное впечатление об американской работе.
Как раз наоборот они болеют за проект и часто в недоумении почему наемный работник так легко берет и уходит по звонку домой, когда на работе куча недоделанной работы.
Re[13]: Старый код на новом месте
От: __kot2  
Дата: 23.11.16 19:30
Оценка: :)
Здравствуйте, El Camino Real, Вы писали:
ECR>а есть — о которых нужно отчитаться, что сделано.
то есть наврать? и через несколько лет работы ведь это уже не кажется чем-то плохим, не правда ли?
Re[2]: Старый код на новом месте
От: SkyKnight Швейцария https://github.com/dmitrigrigoriev/
Дата: 25.11.16 22:34
Оценка: :)
Здравствуйте, binnom, Вы писали:

D>>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?..

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

github.com/dmitrigrigoriev/
Re[9]: Старый код на новом месте
От: bazis1 Канада  
Дата: 25.11.16 23:51
Оценка: +1
Здравствуйте, __kot2, Вы писали:

G>>наш менталитет на первое место ставит эффективность, знания и профессионализм. Видимо, из-за тяжелой судьбы населения и выживания в трудных условиях. У них же, на первом месте отношения между людьми. Это я в двух словах объяснил, без претензии на абсолютную объективность.

Тут тоньше, по-моему. Я охотно верю, что исторически тут тоже были в почете знания и профессионализм. Но дальше в IT пришли 3 фактора:
* Стало больше денег
* Стало меньше реально инженерной работы
* Average Joe по прежнему не понимает, как это все работает

Соответственно, большинство людей нанимаются, чтобы освоить бюджет и реальная работа второстепенна. Они начинают самоутверждаться, нанимая под себя еще более жалких людей. При этом, чувствовать себя овцой в стаде никто не хочет, и люди пытаются сами себя убедить, что то, чем они заняты, что-то значит. И дальше возникает ситуация, когда на словах — работа, результаты, свобода, западные ценности, а на делах — махровая такая азиатчина. Причем азиатчина по принципу "кто громче всех крикнет, что у нас азиатчины нет".
Re[2]: Старый код на новом месте
От: turbocode  
Дата: 17.11.16 11:37
Оценка:
D>>Теряюсь.
K>Почему? Просто когда фиксишь баги начинай проводить небольшой рефакторинг который сильно не влияет на соседний модули, а фичи изолируй и пиши уже в нормальном виде.

Баги нужно срочно фиксить максимум за два часа.
Re[2]: Старый код на новом месте
От: turbocode  
Дата: 17.11.16 11:58
Оценка:
L>как ОНО работает, классы/модули/архитектура/преметная область/воркфлоу итд. Неделя, две, три — и вы уже в теме.

В корпоративе даже отдельные модули могут весить сотни мегабайт кода с нетривиальной логикой но это еще не все потому что быдлокод может быть следствием быдлобазы данных менять структуру которой не просто (так как она уже используется тысячами сторонних клиентов).
Re[2]: Старый код на новом месте
От: Skorodum Россия  
Дата: 17.11.16 14:41
Оценка:
Здравствуйте, El Camino Real, Вы писали:

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


D>>Теряюсь.

ECR>Какие нынче джуниоры впечатлительные пошли.
-1
Re[2]: Старый код на новом месте
От: turbocode  
Дата: 17.11.16 14:55
Оценка:
S>А вот мне такое даже нравится, если временных ресурсов хватает на попутный рефакторинг, главное сильно не увлекаться.
S>Это как уборка: легко и сразу виден результат. Ну и еще чувствуешь себя умнее и лучше предшественника

Предшественника гнали в шею, а тебе подавай временные ресурсы -> значит что ты ничем не лучше.
Re[3]: Старый код на новом месте
От: Dair Россия https://dair.spb.ru
Дата: 17.11.16 15:02
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Предшественника гнали в шею, а тебе подавай временные ресурсы -> значит что ты ничем не лучше.


Никто моего предшественника в шею не гнал. Рынок труда такой рынок — человек нашёл себе место лучше и ушёл туда.
Re[4]: Старый код на новом месте
От: turbocode  
Дата: 17.11.16 15:10
Оценка:
D>Никто моего предшественника в шею не гнал. Рынок труда такой рынок — человек нашёл себе место лучше и ушёл туда.

Я не о том что его выгнали, возможно предшественник был под жестким прессингом сроков и поэтому качество его волновало меньше всего.
Re[4]: Старый код на новом месте
От: turbocode  
Дата: 17.11.16 15:17
Оценка:
T>>Предшественника гнали в шею, а тебе подавай временные ресурсы -> значит что ты ничем не лучше.
S>Вы своими предположениями говорите о себе гораздо больше, чем стоило бы.

Я не о себе, но в жизни всякое бывает.
Re[5]: Старый код на новом месте
От: Skorodum Россия  
Дата: 17.11.16 15:28
Оценка:
Здравствуйте, turbocode, Вы писали:

T>>>Предшественника гнали в шею, а тебе подавай временные ресурсы -> значит что ты ничем не лучше.

S>>Вы своими предположениями говорите о себе гораздо больше, чем стоило бы.

T>Я не о себе

Вы о моем предшественнике предполагаете, но это говорит о вас.

T>но в жизни всякое бывает.

Вот именно. Почему же вы делаете очень смелые и однозначные предположения, основанные на одном факте?
Re[6]: Старый код на новом месте
От: turbocode  
Дата: 17.11.16 15:45
Оценка:
S>Вы о моем предшественнике предполагаете, но это говорит о вас.
T>>но в жизни всякое бывает.
S>Вот именно. Почему же вы делаете очень смелые и однозначные предположения, основанные на одном факте?

Лучше присматривай чтобы твой предшественник не прочитал твои заявления, потому что он бы точно рассказал здесь кто из вас лучше.
Re[3]: Старый код на новом месте
От: turbocode  
Дата: 17.11.16 19:03
Оценка:
__>тимлид на меня потом вообще жестко окрысился,

А мог бы уволить за то что не Team Player.
Re: Старый код на новом месте
От: mgu  
Дата: 17.11.16 23:05
Оценка:
Здравствуйте, Dair, Вы писали:

D>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?.. С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.


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

Я сам сижу сейчас на подобной куче, и мне уже попало за применение тернарного оператора.

Что делать? Не знаю. Я себя убеждаю в том, что свой код не пахнет, и что моя задача -- не изменять мир к лучшему, а исполнять корпоративный менуэт и получать зарплату.
Re[2]: Старый код на новом месте
От: DiPaolo Россия  
Дата: 18.11.16 02:57
Оценка:
L>Спрашивал 5 лет назад тоже самое
Автор: licedey
Дата: 18.03.11
. Часто тут такое спрашивают. Резюме:

L>- Спрашивать в деталях, что за проект и в каком он состоянии до оффера
L>- Создать отдельный брэнч и неспешно переписывать по своему
L>- Перенести критичные части в библиотеку, остальное писать по своему
L>- Перевестись на другой проект
L>- Если систему не сломать, что наиболее вероятно в "крупной бюррократической компании" — завести свой knowledgebase документ, куда выписывать
L>как ОНО работает, классы/модули/архитектура/преметная область/воркфлоу итд. Неделя, две, три — и вы уже в теме.

Для реально крупного проекта в большой компании это не работает (за исключением пункта 1, и то — не всегда можно углубиться в детали на собеседовании).
Патриот здравого смысла
Re[2]: Старый код на новом месте
От: DiPaolo Россия  
Дата: 18.11.16 03:05
Оценка:
Подписываюсь под каждым словом
Патриот здравого смысла
Re[5]: Старый код на новом месте
От: bazis1 Канада  
Дата: 18.11.16 03:10
Оценка:
Здравствуйте, Antidote, Вы писали:

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

Причины общие. Много людей, размыта ответственность, продажи не зависят от действий команды.
Re: Старый код на новом месте
От: CEMb  
Дата: 18.11.16 03:24
Оценка:
Здравствуйте, Dair, Вы писали:

D>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).


У тебя же вроде была своя собственная работа?
Если, да, то что заставило тебя сменить её да ещё на КМК(крупную международную компанию)?
вот интересная история на эту тему

я тоже работаю в КМК, и хочу поменять её на МК.

По теме: если код достаточно модульный, а причины переписать объективные: надо переписать.
Если код не модульный: надо переписать сначала на модульный.
Если причины не объективные — новопассит
Вообще в IT-сообществе бытует такое мнение, что желание всё переписать — признак ущербности/незрелости. Это не так. Хотя бы потому что мир очень динамично меняется, меняются технологии и языки, переписывать всё мало того, что можно, часто это просто необходимо делать!
Re[2]: Старый код на новом месте
От: DiPaolo Россия  
Дата: 18.11.16 03:29
Оценка:
CEM>Вообще в IT-сообществе бытует такое мнение, что желание всё переписать — признак ущербности/незрелости. Это не так. Хотя бы потому что мир очень динамично меняется, меняются технологии и языки, переписывать всё мало того, что можно, часто это просто необходимо делать!

Все сильно зависти от предметной области и стека используемых технологий.
Патриот здравого смысла
Re[2]: Старый код на новом месте
От: mtnl  
Дата: 18.11.16 05:33
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Вообще в IT-сообществе бытует такое мнение, что желание всё переписать — признак ущербности/незрелости. Это не так. Хотя бы потому что мир очень динамично меняется, меняются технологии и языки, переписывать всё мало того, что можно, часто это просто необходимо делать!


Есть достаточно большой опыт описанный в книгах типа In Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters и вроде бы даже в статьях Джоеля Спольски, что пока вы бросили старый продукт и кинули все силы на переписывание на более лучших технологиях, конкуреты выпускают новые версии продукта и лечат старые проблемы, оставив вас к моменту выхода суперверсии без денег и без рынка.
Re: Старый код на новом месте
От: namespace  
Дата: 18.11.16 06:39
Оценка:
D>С 1 числа вот копаюсь в коде, и уже три дня (когда более-менее разобрался в нём) бью себя по рукам от желания переписать ***** вообще всё.
Если принять за аксиому, что читать код сложнее чем писать, то желание нового человека переписать даже хороший код вполне объяснимо.

Я условно разделяю говнокод на два типа:
— проблема с архитектурой(бессмысленная иерархия классов, переусложнения, копи-пест)
— локальные проблемы(индусский код, невменяемые названия типов и переменных, грязь в коде, magic numbers)
Обычно оба типа идут вместе, но чего-то больше, а чего-то меньше.

Причем, если кода второго типа много, то его исправить не проще чем первого. К кривой архитектуре можно привыкнуть, если понять ее смысл.
Re[7]: Старый код на новом месте
От: Skorodum Россия  
Дата: 18.11.16 08:45
Оценка:
Здравствуйте, turbocode, Вы писали:

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

1. Там смайлик стоит, к своей работе надо относиться серьезно, но не надо слишком серьезно относиться к себе
2. Желание что-то переписать в проектах которые начаты 20+ лет назад — естественно и нормально

Ну и последний рубеж обороны: он по-русски не читает
Re[2]: Старый код на новом месте
От: AlexGin Беларусь  
Дата: 18.11.16 09:46
Оценка:
Здравствуйте, namespace, Вы писали:

D>>С 1 числа вот копаюсь в коде, и уже три дня (когда более-менее разобрался в нём) бью себя по рукам от желания переписать ***** вообще всё.

N>Если принять за аксиому, что читать код сложнее чем писать, то желание нового человека переписать даже хороший код вполне объяснимо.

Это не аксиома, а заблуждение:
Когда писал код "тот парень", а вот читать приходится мне любимому
Заблуждение это мне знакомо — у самого часто "чешуться руки" периписать с нуля то, что сделал коллега.
Даже более того, признаюсь, если вдруг узнаешь, что до тебя этот код писала колега женского пола, то зуд в руках — удесятеряется
Просто я научился удерживать самого себя от этого.

N>Я условно разделяю говнокод на два типа:

N>- проблема с архитектурой(бессмысленная иерархия классов, переусложнения, копи-пест)
N>- локальные проблемы(индусский код, невменяемые названия типов и переменных, грязь в коде, magic numbers)
N>Обычно оба типа идут вместе, но чего-то больше, а чего-то меньше.
Обычно, проблемы локального типа быстрее бросаются тебе в глаза, при чтении кода. Особенно, если толкового документа по архитектуре нет.

N>Причем, если кода второго типа много, то его исправить не проще чем первого. К кривой архитектуре можно привыкнуть, если понять ее смысл.

+100500
Иногда — то, что поначалу кажется "кривой архитектурой", имеет вполне конкретное объяснение и обоснование.
Это, конечно же, не делает данные решения лучше, но хотя-бы как-то объясняет причины их возникновения.
Re[2]: Старый код на новом месте
От: Dair Россия https://dair.spb.ru
Дата: 18.11.16 10:04
Оценка:
Здравствуйте, CEMb, Вы писали:

D>>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).

CEM>У тебя же вроде была своя собственная работа?
Ты меня с кем-то путаешь. Никогда не было.

CEM>Если, да, то что заставило тебя сменить её да ещё на КМК(крупную международную компанию)?

Исключительно размер компенсации.

CEM>По теме: если код достаточно модульный, а причины переписать объективные: надо переписать.

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

Так что проехали — легаси будем поддерживать в том же стиле, что есть, пока не будет готова кроссплатформенная версия продукта.
Re[3]: Старый код на новом месте
От: Dair Россия https://dair.spb.ru
Дата: 18.11.16 10:05
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Иногда — то, что поначалу кажется "кривой архитектурой", имеет вполне конкретное объяснение и обоснование.

Cовершенно верно, с учётом только того, что тот, кто может объяснить и обосновать, может уже давно в компании не работать
Re[2]: Старый код на новом месте
От: Dair Россия https://dair.spb.ru
Дата: 18.11.16 10:13
Оценка:
Здравствуйте, AlexGin, Вы писали:

D>>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).

AG>Поздравляю с новой работой!
Спасибо!


D>>Тут, как и везде у меня на последних местах работы, есть долгоиграющий проект, который начат годы назад, сейчас в поддерживаемом и развиваемом состоянии.

AG>То есть, данный проект, как я понимаю, приносит вышеупомянутой компании выгоду?
Ну таааак. Основная прибыль компании от продажи разных b2b-продуктов. При этом есть один (технически два, но под одним названием) b2c-продукт, который (цитирую некоего менеджера от коммерции повышенного звена в этой компании) "был зачат по пьяни, школу как-то заканчивает, и надо выбирать, в какой вуз отправлять". То есть, люди взяли профессиональные продаваемые инструменты и на их базе сделали консюмерский продукт.
По их словам, у них есть сотни тысяч установок и отличный от нулевого ARPU. Компания хочет увеличить долю b2c'шной прибыли. Из проекта по разным причинам ушли лиды и большая часть команды, а тут руководство всполошилось "ай, мы теряем людей, техдир, срочно ищи, вот деньги". Техдир нашёл меня.


AG>Возможно, позволяет держать некую долю рынка аналогичных программных продуктов?

Они про себя гордо говорят что 25%, я не знаю, насколько это правда. Довольно нишевый продукт.


AG>Просто проанализировал всё, что меня окружало, и сумел принять верное решение

Ну, вот, я сдерживаюсь. И это нормально получается, но "умище, умище-то куда девать?"

D>>Доктор Форум, это нормально?

AG>Да, вполне нормально.
Спасибо, доктор!

AG>Давай анализировать:

AG>В больших компаниях — главное профит (в малых — то же самое).
AG>Компания продаёт Программный Продукт...
AG>Первично — впечатления Заказчика/Конечного пользователя; сроки поставки новых версий; оперативность и качество сопровождения.
AG>Как этот продукт устроен внутри: архитектура; стиль написания кода; имена классов, интерфейсов, методов и переменных — важно, но вторично.
AG>Ещё раз подчеркну — для Заказчика, который финансирует разработку, это вторично.

AG>Так, например, нефункциональный либо непродуманный GUI, или отсутствии пользовательской документации, сразу бросаются в глаза Заказчику

AG>Однако, метод класса, содержащий более тысячи строк (который просто просится разбить его на несколько методов или классов),
AG>вероятно останется виден только для Разработчика...
AG>Только Разработчик, будет по ночам, в кошмарном сне, представлять себе как рефакторит этого монстра!

AG>Вывод: всё делать step-by-step. Не торопиться!

AG>Если ты на работе первые пару недель, то пока — просто изучай проект. Набирайся в нем опыта! Пока — НЕ трогай то, что работает!
Работаю с 1 ноября. Вот, пошли вторые пара недель

AG>Записывай — что НЕ пронравилось в решениях по проекту.

AG>Через полгода — исправишь!
AG>А возможно, над какими-то замечаниями и сам посмеёшся, поняв свои заблуждения.
Годно, спасибо. Надо начать.

AG>приглядываться не только к коду, но и к коллегам, которые работают с тобой, или даже связаны с тобой дистанционно;

AG>приглядываться к организации рабочих процессов в компании, к тому, как коллеги выполняют возложенные на них роли.
Это мне необходимо делать просто по должностным обязанностям техлида.

AG>Успехов на новом рабочем месте, уважаемый Dair!

Спасибо!
Re[2]: Старый код на новом месте
От: Dair Россия https://dair.spb.ru
Дата: 18.11.16 10:15
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>Есть замечательный критерий. Надо попытаться оценить людей, делавших проект безотносительно кода самого проекта. Если эти не на порядок хуже, глупее, ленивее, непрофессиональнее тебя, то нет оснований считать, что получится на порядок более читаемый и поддерживаемый проект.


Сложно оценить тех, кто начинал проект с нуля и писал его пять лет, а потом уволился.
Код можно, да.

Про имеющихся понятно, да.
Re[2]: Старый код на новом месте
От: Skorodum Россия  
Дата: 18.11.16 10:21
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>Есть замечательный критерий. Надо попытаться оценить людей, делавших проект безотносительно кода самого проекта. Если эти не на порядок хуже, глупее, ленивее, непрофессиональнее тебя, то нет оснований считать, что получится на порядок более читаемый и поддерживаемый проект.

Профессионализм понятие о-о-о-о-чень растяжимое.
Вот случай из конкретно моей практики: проект начат ~25 лет назад на чистом анси-С, лет 10 назад перекочевал на С++. В проекте основа: БД и компилятор, т.е. можно сказать по определению писали не глупые люди, но сейчас им уже по 60+ лет, а в 60 лет довольно тяжело осваивать новые технологии и воспринимать новые отраслевые стандарты программирования, особенно если они по 20-30 лет не меняли работу.
Читабельность/поддерживаемость тоже очень субъективный фактор. То, что было нормально 20 лет назад, сейчас считается плохим тоном.
Re[3]: Старый код на новом месте
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 18.11.16 16:10
Оценка:
Здравствуйте, turbocode, Вы писали:

D>>>Теряюсь.

K>>Почему? Просто когда фиксишь баги начинай проводить небольшой рефакторинг который сильно не влияет на соседний модули, а фичи изолируй и пиши уже в нормальном виде.

T>Баги нужно срочно фиксить максимум за два часа.

Если багу можно починить за 2 часа, то код в котором эта бага относительно хорошо написан чтобы его понять, внести правку, оттестировать и проревьювить.
Sic luceat lux!
Re[3]: Старый код на новом месте
От: licedey  
Дата: 18.11.16 16:57
Оценка:
Здравствуйте, DiPaolo, Вы писали:

L>>Спрашивал 5 лет назад тоже самое
Автор: licedey
Дата: 18.03.11
. Часто тут такое спрашивают. Резюме:

L>>- Спрашивать в деталях, что за проект и в каком он состоянии до оффера

DP>Для реально крупного проекта в большой компании это не работает (за исключением пункта 1, и то — не всегда можно углубиться в детали на собеседовании).


Что же то тогда работает?

Хоть и незнаю, что имеется ввиду под "реально крупный проект в большой компании" (мб вы про Microsoft Windows?), но последний пункт — изучать код ->
спрашивать у коллег -> создавать свою базу знаний, доселе работал.
Re: Старый код на новом месте
От: SaprXM СССР  
Дата: 18.11.16 23:04
Оценка:
D>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?.. С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.

предлагаю атаковать

напади на них
выпотроши весь код втихую сам
а потом покажи как надо, унизь всех
Re[3]: Старый код на новом месте
От: mgu  
Дата: 19.11.16 00:26
Оценка:
Здравствуйте, Antidote, Вы писали:

mgu>>Это менталитет. Ничего личного, я сам такой и каждый раз, приступая к новому проекту, я хватаюсь за пистолет. Ни у кого больше я не видел позывов "разрушим до основанья, а затем", даже у потомков маоистов.


A>Причём тут менталитет? У нас австрал такой был. Нарушил много


Статистическая погрешность.

mgu>> Если что, мой код по всем параметрам лучше,


A>Вот это здорово, Дартаньяны одобря


По объективным признакам -- функциональность та же, а объём -- в разы, производительность -- в десятки раз...

mgu>>поэтому я выслушиваю претензии из цикла "так не пишут", "другим не понять" и т. п..


A>А вот это очень важно, "гениальные" поделки придётся править и поддерживать обычным людям. Обычно непонятный запутанный код пишут студенты, чтобы "круто"


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

mgu>>Я сам сижу сейчас на подобной куче, и мне уже попало за применение тернарного оператора.


A>Слабая команда?


Это ещё сильная, я видывал похуже.

A>Становиться значимой фигурой в конторе, к которой прислушиваются, и потихоньку менять мир к лучшему Простых рецептов тут нет.


Я, может, местами и д'Артаньян, но уж точно не дон Кихот.
Re[5]: Старый код на новом месте
От: Олег К.  
Дата: 19.11.16 04:53
Оценка:
A>Ну и зачем всех под одну гребёнку? Во всех больших конторах поработал что-ли? Всякое бывает, везде, всё зависит от людей.

А это так и есть. Едут на том, кто позволяет везти.
Re[4]: Старый код на новом месте
От: turbocode  
Дата: 19.11.16 08:13
Оценка:
T>>Баги нужно срочно фиксить максимум за два часа.
K>Если багу можно починить за 2 часа, то код в котором эта бага относительно хорошо написан чтобы его понять, внести правку, оттестировать и проревьювить.

Нет, ты ж синьор.
Re[4]: Старый код на новом месте
От: Antidote  
Дата: 20.11.16 06:06
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>>>Это менталитет. Ничего личного, я сам такой и каждый раз, приступая к новому проекту, я хватаюсь за пистолет. Ни у кого больше я не видел позывов "разрушим до основанья, а затем", даже у потомков маоистов.

A>>Причём тут менталитет? У нас австрал такой был. Нарушил много
mgu>Статистическая погрешность.

Где статистика-то?
Со сколькими иностранцами приходилось работать, из каких стран? И никогда никто из этого огромного количества иностранцев не хотел переписать с нуля проект?

mgu>"Обычным людям" непонятна многопоточность и регулярные выражения. Да чего уж там, они не используют тернарные операторы и инкременты, а с приоритетом операций совсем туго, вот и лепят скобки.

mgu>Это ещё сильная, я видывал похуже.

Ну то-есть контора не подходит, всё плохо, работу менять тогда только. Я помню топик от вас про работу, если не путаю, поиск был долгий и муторный, получается не вариант. Ну тогда только что-то пытаться сделать, но ваш следующий коммент:

mgu>Я, может, местами и д'Артаньян, но уж точно не дон Кихот.


То есть так, просто поныть, они все плохие и не ценят меня гения?
Чему бы грабли ни учили, а сердце верит в чудеса.
Re[3]: Старый код на новом месте
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 20.11.16 17:19
Оценка:
Здравствуйте, bazis1, Вы писали:

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


B>Результат — "недостаточное влияние на команду" и ревью ниже плинтуса. А чел, который яростно тыкал палки в колеса и настаивал на переименовании всех переменных, к которым обращался рефакторенный код, и даже не понимал, как оно работает, получил повышение, ибо хороший командный игрок. Да, коммит в итоге не прошел в релизный бранч и был потерян где-то в дебрях внутренних веток, а я стал врагом №1 за то, что раздал партнерам из соседних команд исправленный билд, который работал и не содержал косяков, из-за которых все и затевалось.

Дай угадаю, чел был индус или китайец, да? Что значит это "недостаточное влияние на команду"? Надо же наооборот вносить подобные изменения и на их основе обучать команду, т.е. подтягивать уровень команды, а не снижать его занижая планку. Что потом, кстати, говорили прани котрые получили новый билд, но в итоге вернулись на старый?
Sic luceat lux!
Отредактировано 20.11.2016 17:49 Kernan . Предыдущая версия .
Re[3]: Старый код на новом месте
От: CEMb  
Дата: 20.11.16 17:45
Оценка:
Здравствуйте, Dair, Вы писали:

D>>>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).

CEM>>У тебя же вроде была своя собственная работа?
D>Ты меня с кем-то путаешь. Никогда не было.
Хм, игры делал? Народ набирал?

CEM>>Если, да, то что заставило тебя сменить её да ещё на КМК(крупную международную компанию)?

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

CEM>>По теме: если код достаточно модульный, а причины переписать объективные: надо переписать.

D>Короче, у меня тут был разговор с руководством. Видимо, всё что есть, будем переписывать вообще с нуля, затачивая под кроссплатформенность. Видимо, на Qt.

D>Так что проехали — легаси будем поддерживать в том же стиле, что есть, пока не будет готова кроссплатформенная версия продукта.

Ааа... какая до боли знакомая ситуация...
Re[5]: Старый код на новом месте
От: mgu  
Дата: 20.11.16 18:22
Оценка:
Здравствуйте, Antidote, Вы писали:

A>Где статистика-то?

A>Со сколькими иностранцами приходилось работать, из каких стран? И никогда никто из этого огромного количества иностранцев не хотел переписать с нуля проект?

Переписать с нуля можно эволюционно и революционно. Можно "хотеть", а можно понимать необходимость. Насчёт количества иностранцев сбился со счёта, работал даже с чернокожим программистом. И только среди наших (к счастью, не большинство) попадаются че гевары.

A>Ну то-есть контора не подходит, всё плохо, работу менять тогда только.


"А других нет".

A>Я помню топик от вас про работу, если не путаю, поиск был долгий и муторный, получается не вариант.


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

A>Ну тогда только что-то пытаться сделать, но ваш следующий коммент:


mgu>>Я, может, местами и д'Артаньян, но уж точно не дон Кихот.


A>То есть так, просто поныть, они все плохие и не ценят меня гения?


Не понял связи -- ни д'Артаньян, ни дон Кихот уж явно не гении. И ещё: ни разу не видел, чтобы гениев где-то ценили.
Re[6]: Старый код на новом месте
От: mgu  
Дата: 20.11.16 18:28
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>А это так и есть. Едут на том, кто позволяет везти.


Возможности Боливаров ограничены.
Re[4]: Старый код на новом месте
От: Dair Россия https://dair.spb.ru
Дата: 20.11.16 19:01
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>>>У тебя же вроде была своя собственная работа?

D>>Ты меня с кем-то путаешь. Никогда не было.
CEM>Хм, игры делал? Народ набирал?

Так точно, но в роли наёмного техлида. Теперь я наёмный техлид в другом месте.
Re[5]: Старый код на новом месте
От: SaprXM СССР  
Дата: 20.11.16 20:45
Оценка:
B>>>Результат — "недостаточное влияние на команду" и ревью ниже плинтуса. А чел, который яростно тыкал палки в колеса и настаивал на переименовании всех переменных, к которым обращался рефакторенный код, и даже не понимал, как оно работает, получил повышение, ибо хороший командный игрок. Да, коммит в итоге не прошел в релизный бранч и был потерян где-то в дебрях внутренних веток, а я стал врагом №1 за то, что раздал партнерам из соседних команд исправленный билд, который работал и не содержал косяков, из-за которых все и затевалось.
K>>Дай угадаю, чел был индус или китайец, да?
B>Нет, но из одной солнечной страны, о лени и тупости обитателей которой слагаются легенды.
K>>Что значит это "недостаточное влияние на команду"? Надо же наооборот вносить подобные изменения и на их основе обучать команду, т.е. подтягивать уровень команды, а не снижать его занижая планку.
B>В больших компаниях это политкорректный вариант для "он мне не нравится" и почти всегда имеет больший приоритет, чем какие-либо результаты. Чел, который подсказывал фигню, был ВНЕЗАПНО земляком лида и водил его по кабакам, оплачивая бухло.
K>>Что потом, кстати, говорили прани котрые получили новый билд, но в итоге вернулись на старый?
B>Спросили меня "какого хрена". Так как я к тому времени все понял, то перенаправил к лиду с формулировкой "я человек маленький и такими глыбами не ворочаю", лид ничего внятного не ответил, и через пару итераций тему похоронили. А потом я досидел свой обязательный год до канадского permanent residence и откланявшись сбежал. К огромному удивлению команды, которая была уверена, что я прогнулся по гроб жизни.

ну у вас походу был особый вариант, зажратый при том по баблу и бенефициям
российским реалиям хоть это к счастью чуждо (в основном)
Re[6]: Старый код на новом месте
От: Antidote  
Дата: 20.11.16 21:04
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>Переписать с нуля можно эволюционно и революционно. Можно "хотеть", а можно понимать необходимость. Насчёт количества иностранцев сбился со счёта, работал даже с чернокожим программистом. И только среди наших (к счастью, не большинство) попадаются че гевары.


Может просто только с нашими были близкие доверительные отношения, и они говорили, то что думали

A>>Ну то-есть контора не подходит, всё плохо, работу менять тогда только.


mgu>"А других нет".

mgu>Не понял связи -- ни д'Артаньян, ни дон Кихот уж явно не гении. И ещё: ни разу не видел, чтобы гениев где-то ценили.

Просто непонятно, к чему было изначальное ваше сообщение? ТС просил совета, ваш совет: "смириться и не рыпаться"?
Чему бы грабли ни учили, а сердце верит в чудеса.
Re[7]: Старый код на новом месте
От: mgu  
Дата: 20.11.16 23:37
Оценка:
Здравствуйте, Antidote, Вы писали:

mgu>>Переписать с нуля можно эволюционно и революционно. Можно "хотеть", а можно понимать необходимость. Насчёт количества иностранцев сбился со счёта, работал даже с чернокожим программистом. И только среди наших (к счастью, не большинство) попадаются че гевары.


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


Никакой связи. Зато китайцы от одного слова "рефакторинг" выражали оскорблённость религиозных чувств.

A>Просто непонятно, к чему было изначальное ваше сообщение? ТС просил совета, ваш совет: "смириться и не рыпаться"?


Наверно, да: такая ситуация типична, а за попытки улучшить мир отведут на Голгофу.

Кстати, в свете способа разрешения проблемы (переведём всё на %модная технология%), мой совет бессмыслен -- это совсем другая песня, к рефакторингу отношения не имеющая.
Re[8]: Старый код на новом месте
От: Antidote  
Дата: 21.11.16 00:06
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>Никакой связи. Зато китайцы от одного слова "рефакторинг" выражали оскорблённость религиозных чувств.


Мне редко встречаются китайцы-программисты, про них не могу сказать ничего.

A>>Просто непонятно, к чему было изначальное ваше сообщение? ТС просил совета, ваш совет: "смириться и не рыпаться"?

mgu>Наверно, да: такая ситуация типична, а за попытки улучшить мир отведут на Голгофу.

Хорошо, что не все так думают.

mgu>Кстати, в свете способа разрешения проблемы (переведём всё на %модная технология%), мой совет бессмыслен -- это совсем другая песня, к рефакторингу отношения не имеющая.


Да ТС не один же такой, тут много заинтересованных лиц читают
И как правильно тут уже говорили — модные технологии тут не помогут, если та же команда. Перепишут всё так-же, но "модно"
Чему бы грабли ни учили, а сердце верит в чудеса.
Re[9]: Старый код на новом месте
От: mgu  
Дата: 21.11.16 03:04
Оценка:
Здравствуйте, Antidote, Вы писали:

A>Мне редко встречаются китайцы-программисты, про них не могу сказать ничего.


А мне разве что ближневосточные (не считая израильских) программисты не попадались.

mgu>>Наверно, да: такая ситуация типична, а за попытки улучшить мир отведут на Голгофу.


A>Хорошо, что не все так думают.


Хорошо, но я лично нацеливаюсь на результат, не перед всеми стоит метать бисер.

A>И как правильно тут уже говорили — модные технологии тут не помогут, если та же команда. Перепишут всё так-же, но "модно"


Это смотря какая цель. Бывает, что старые пердуны никак не могут слезть со своего Вижуал Бейсика, а молодые от него воротят нос. И нужен человек, который позволит омолодить коллектив. И тут появляюсь я, весь в коричневом.
Re[10]: Старый код на новом месте
От: Antidote  
Дата: 21.11.16 03:12
Оценка:
Здравствуйте, mgu, Вы писали:

A>>Хорошо, что не все так думают.

mgu>Хорошо, но я лично нацеливаюсь на результат, не перед всеми стоит метать бисер.

Да всё правильно, просто на работе мы проводим 8 часов в день, и если всё это время "терпеть и не высовываться" — как-то грустно всё совсем выглядит

A>>И как правильно тут уже говорили — модные технологии тут не помогут, если та же команда. Перепишут всё так-же, но "модно"

mgu>Это смотря какая цель. Бывает, что старые пердуны никак не могут слезть со своего Вижуал Бейсика, а молодые от него воротят нос. И нужен человек, который позволит омолодить коллектив. И тут появляюсь я, весь в коричневом.

Ещё грустнее
Чему бы грабли ни учили, а сердце верит в чудеса.
Re[5]: Старый код на новом месте
От: CEMb  
Дата: 21.11.16 05:16
Оценка:
Здравствуйте, Dair, Вы писали:

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


CEM>>>>У тебя же вроде была своя собственная работа?

D>>>Ты меня с кем-то путаешь. Никогда не было.
CEM>>Хм, игры делал? Народ набирал?

D>Так точно, но в роли наёмного техлида. Теперь я наёмный техлид в другом месте.

Нет вжизни щастья
А работа интересная? Интереснее же вроде делать игры самому? Иначе работа в game development ничем не отличается от других областей IT?

upd: Опять же проблема старого кода почти полностью отпадает
Отредактировано 21.11.2016 5:18 CEMb . Предыдущая версия .
Re[2]: Старый код на новом месте
От: AlexGin Беларусь  
Дата: 21.11.16 08:09
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Спокойствие, только спокойствие

+100500

bnk>Главное, никаких революций, иначе сам же можешь пасть их жертвой. А вот постепенное улучшение работает.

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

bnk>Упрощение кода, обкладывание автоматическими тестами, автоматические commit policy

bnk>навроде "функция не больше экрана", "код не коммитится без ссылки тикет".
bnk>Постараться чтобы всякая "хрень" не разрасталось, ну или по крайней мере, не так быстро.
Эти действия правильнее предпринимать когда:
1) Ты достаточно хорошо разобрался как в стеке технологий, принятыз на проекте, так и в проектных решениях;
2) Твой авторитет в коллективе вырастет.
Как подсказывает мой личный опыт, это происходит примерно через 5-6 месяцев работы над проектом (где-то раньше, где-то и позже).

bnk>Нужно поднимать общий уровень команды, почаще проводить код ревью, обсуждения проекта вообще,

bnk>посылать людей на курсы, ну и т.п.
+100500
Это верно, но здесь также следует действовать без фанатизма
Сразу же ломать устоявшуюся систему — не нужно.

bnk>А вообще, сложно это.. даже не то чтобы даже просто переписать, а переписать так,

bnk>чтобы "апач" твой код понял, почувствовал приемущества твоего подхода для себя, и смог этот код развивать.
Для этого, нужно не просто предоставить этот подход, но и суметь "на пальцах" разъяснить этому "апачу" все его приемущества...
Здесь есть такой момент: пока сам "чуешь нутром" приемущества твоего подхода, но не в состояниии (по каким-либо причинам)
разъяснить это коллегам из твоей команды — подожди, созрей сам, и тогда — действуй!

bnk>И поскольку это "КМК", то еще желательно переписывать так, чтобы твои шефы/коллеги увидели в этом переписывании не наезд,

bnk>а возможность роста, конечно же если хочешь задержаться или расти в этой компании. В общем думать о людях.
+100500
Отредактировано 21.11.2016 8:20 AlexGin . Предыдущая версия . Еще …
Отредактировано 21.11.2016 8:17 AlexGin . Предыдущая версия .
Отредактировано 21.11.2016 8:11 AlexGin . Предыдущая версия .
Re[4]: Старый код на новом месте
От: Skorodum Россия  
Дата: 21.11.16 11:48
Оценка:
Здравствуйте, antonio_banderas, Вы писали:

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


L>>>- Спрашивать в деталях, что за проект и в каком он состоянии до оффера

S>>+1
S>>Я прошу показать пример текущих задач и как они выполняются, последние коммиты.
_>И что, показывают?
Обычно — да. Почему бы и нет?
Сам по себе старый код куда меньшая проблема, чем желание обмануть или не желание меняться.

_>Или уклоняются под разными предлогами и обходятся словесным описанием? "Ну что вы, у нас самый качественный и самый хороший код, используем все паттерны, юнит-тесты, и вообще всё по новейшим технологиям".

_>А потом выходишь на работу, смотришь код, и...
Мне такое не встречалось, обычно по собеседованию более-менее понятно чего ожидать.
Re[5]: Старый код на новом месте
От: greenpci  
Дата: 21.11.16 12:20
Оценка:
Здравствуйте, Antidote, Вы писали:

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


Это ты зря, Антидот. Я проработал во многих конторах и со многими людьми разговаривал. И описанные выше ошибки тоже совершал, по неопытности. То, что базис1 и _кот2 говорят, очень верно подмеченная тенденция. Для новичков, у которых нет интернационального опыта, эти посты бесценны. Я благодарен одному аксакалу, который потратил час своего времени, чтобы мне все это объяснить в телефонном разговоре, а у других не было такой помощи. Если бы не знал, на столько граблей наступил бы, а с этими знаниями все гладко проходило. Со своим российским менталитетом можно легко дров наломать.
Re[6]: Старый код на новом месте
От: El Camino Real США  
Дата: 21.11.16 15:17
Оценка:
Здравствуйте, greenpci, Вы писали:

G>Это ты зря, Антидот. Я проработал во многих конторах и со многими людьми разговаривал. И описанные выше ошибки тоже совершал, по неопытности.

Я, кстати, так и не понял какие специфичные для русского человека ошибки были совершены. Плюнул в спину ушедшему коллеге и умудрился отдать налево несанкционированный билд? Это универсальное, но розги обычно помогают.
Re[10]: Старый код на новом месте
От: __kot2  
Дата: 22.11.16 21:18
Оценка:
Здравствуйте, turbocode, Вы писали:
T>Предполагаю что ты работаешь в команде азиатов поэтому у тебя складывается неправильное впечатление об американской работе.
работал

T>Как раз наоборот они болеют за проект и часто в недоумении почему наемный работник так легко берет и уходит по звонку домой, когда на работе куча недоделанной работы.

болеь за проект и показывать лояльность это разные вещи.
как-то мой любимый тимлид в микрософте сказал мне "приходи в субботу работать". я — "зачем?", в смысле мы все делали по плану, никакой реальной причины я не видел, мне интересовало какую задачу он собирался решить субботней работой. его ответ "это что, проблема?". нет, блин, не проблема. я люблю свою работу! я приду туда в субботу! ну а воскресенье я там справлю день рожденья.

правда, к слову сказать, на новой работе я часто коннектюсь из дома на выходных посмотреть как там что считается. на выходных как раз удобно насчитать результаты, чтобы потом на неделе с ними работать
Отредактировано 22.11.2016 21:21 __kot2 . Предыдущая версия .
Re[12]: Старый код на новом месте
От: El Camino Real США  
Дата: 23.11.16 17:25
Оценка:
Здравствуйте, __kot2, Вы писали:

__>я как вспомнил этот проклятый микрософт, мне сразу примерно такая зарисовочка в голове появилась:

Мне тоже периодически прилетают идиотские запросы от высоко стоящего начальства. Идиотскими они становятся, естественно, не сразу, а после детального обсуждения с product managementом и применения развитого внутреннего чутья ака опыт. Так вот, если кто-то из команды решит без отмашки всерьёз и по правилам заняться "переходом с sql на nosql", то хорошей оценки на ревью он может и не получить. Ибо перфекционизм и overengineering. Есть задачи, которые нужно сделать, а есть — о которых нужно отчитаться, что сделано.
Re[14]: Старый код на новом месте
От: El Camino Real США  
Дата: 23.11.16 21:12
Оценка:
Здравствуйте, __kot2, Вы писали:

__>то есть наврать? и через несколько лет работы ведь это уже не кажется чем-то плохим, не правда ли?

Плохо/хорошо — это мораль на уровне детского сада. У нас же задача — сделать для мира что-то светлое и доброе, вопреки злой воле недалёких людей. Тут, конечно, важно внимательно следить, чтобы Тёмная Сторона Силы не поглотила окончательно и если работа команды превращается в сплошную череду победных реляций наверх без продвижения какой-то основной идеи, то вовремя признаться самому себе и свалить. Либо спокойно принять правила игры и весело доиграть в неё до пенсии (но это режим для для людей 40+ скорее).
Re[12]: Старый код на новом месте
От: turbocode  
Дата: 24.11.16 00:43
Оценка:
__>я как вспомнил этот проклятый микрософт, мне сразу примерно такая зарисовочка в голове появилась:
__>просто переименовал "sql server" в "nosql server" и все.

Если всё так плохо, то кто же тогда в микрософт сделал Azure DocumentDB?
Re[13]: Старый код на новом месте
От: __kot2  
Дата: 24.11.16 03:17
Оценка:
Здравствуйте, turbocode, Вы писали:
T>Если всё так плохо, то кто же тогда в микрософт сделал Azure DocumentDB?
я не участвовал, но был свидетелем исполнения команды о начальства "а теперь мы все переводим в Azure". ответ от Azure был — "воу, воу, полегче, Azure не подходит для хранения данных, которые вам жалко потерять". я не знаю, как там сейчас, но в то время это была типичная технология из говна и палок
Отредактировано 24.11.2016 3:41 __kot2 . Предыдущая версия . Еще …
Отредактировано 24.11.2016 3:25 __kot2 . Предыдущая версия .
Re[15]: Старый код на новом месте
От: __kot2  
Дата: 24.11.16 19:28
Оценка:
Здравствуйте, El Camino Real, Вы писали:
ECR>Плохо/хорошо — это мораль на уровне детского сада. У нас же задача — сделать для мира что-то светлое и доброе, вопреки злой воле недалёких людей.
вообще, я рад что кто-то проговорил, наконец в слух, что "работа в большой компании" часто представляет из себя фальсификацию результатов для удовлетворения идиотских требований спускаемвых сверху, в то время как руководство всех уровней сознательно предпочитает оставаться в неведении насчет технчиеских деталей реализации, чтобы когда это все вскрывается, как в случае Фольксвагена, искренне разыгрывать дурку и валить все на подчиненных
Re[2]: Старый код на новом месте
От: Mr.Delphist  
Дата: 25.11.16 15:38
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>В Союзе, кстати, такое же было и в электронике. Принципиальные схемы, транзисторы, резисторы... Вместо того чтобы сделать просто, такое наворотят...


А потом после выкидывания выясняется, что "навороченное" как раз и обеспечивало комфортный токовый режим, меньше помех на ВЧ-участках и т.п. А теперь на руках есть горячий во всех смыслах проект
Re: Старый код на новом месте
От: white_znake  
Дата: 25.11.16 21:48
Оценка:
Здравствуйте, Dair, Вы писали:

D>С 1 числа вот копаюсь в коде, и уже три дня (когда более-менее разобрался в нём) бью себя по рукам от желания переписать ***** вообще всё.

Это очень непрофессиональный подход, потому что:

1. Код мог быть написан давно. Реально, в каждом языке сейчас появляется чуть-ли не каждый год новый "синтаксический сахар", который помогает писать более простой и лаконичный код.
Сравни эволюцию в js: от $(document).ready() { function () {} } до promises и async/await. Большие компании, с большим объемом legacy кода будут не охотно переходить на новые версии языка.
2. Подходы в программировании тоже эволюционируют: лет 15-20 тому назад использовали возвращаемые значения кодов для обработки ошибок — сейчас исключения. Большие компании не охотно будут использовать новые подходы в программировании, новые паттерны, потому что возникает ложное желание единообразия кода и подходов в программировании.
3. В программировании одну и ту же задачу, как правило можно решить различными способами, но у каждого программиста есть свои любимый способ решения каждого типа задач. Вполне вероятно, что код нормальный, но он тебе не нравиться, потому что его написал не ты.

Что делать? Да ни чего, с опытом — пройдет

Есть еще вариант, что проект был "стартапный", а сейчас начал вырастать из уровня стартапа — это тоже эволюция. Красивого кода в сжатый срок не бывает
Re[7]: Старый код на новом месте
От: bazis1 Канада  
Дата: 25.11.16 23:11
Оценка:
Здравствуйте, El Camino Real, Вы писали:

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


G>>Это ты зря, Антидот. Я проработал во многих конторах и со многими людьми разговаривал. И описанные выше ошибки тоже совершал, по неопытности.

ECR>Я, кстати, так и не понял какие специфичные для русского человека ошибки были совершены. Плюнул в спину ушедшему коллеге и умудрился отдать налево несанкционированный билд? Это универсальное, но розги обычно помогают.
Какое плюнул, какое налево? bazis1 пришел на работу, куда его прособеседовал директор отдела. директор в первый же день сказал "вот тебе проект, сделай так, чтобы оно работало, вот тебе партнер из соседнего подразделения". в то же время нарисовался мутный лид с мутным "да ладно, тебе деньги и так платят, что тебе на месте не сидится, давай лучше перегонять из пустого в порожнее".

Соответственно, моя тогдашняя логика:
* Директор выше лида и должен иметь больший вес
* Проект реальный, есть внутренние и внешние партнеры
* Лид пытается меня подставить, чтобы потом заявить, что я ничего не делаю и не справляюсь
* Лид вообще мутный и немного тронутый крышей (на 1:1 с заговорческим видом рассказывая, как он плакал дома после работы в первый год)

Мои ошибки:
* Сразу не посмотрел историю коммитов, чтобы понять, что команда вообще ничего не делает. Т.е. меня не пытались конкретно подставить, а хотели просто опустить до среднего уровня.
* Сидеть в такой команде — карьерное самоубийство. Надо было-таки делать проект против воли лида, но 50% усилий тратить на то, чтобы впечатлить этим людей из других команд (хотя бы того же партнера) и быстро к ним свалить, до того как начнется клоунада с ревью.
* Я реально пытался переубедить людей, что постоянно переименовывать переменные вместо поиска конкретных проблем — время на ветер. Вместо этого надо было со всем соглашаться (даже необязательно де-факто переименовывать), быстро завершать этап и валить в другую команду, если бы я хотел остаться в компании.

Но самый главный вывод, который я сделал — вся эта корпоративная возня — прямой путь к шизе, антидепрессантам и проблемам с печенью от попыток залить проблемы бухлом. Поэтому если у вас есть много времени до полтинника, лучше потратить его на изучение того, как работает бизнес, как создавать и выводить продукты (или хотя бы услуги). Этот путь хоть и требует больших усилий, чем оттачивание умения лизать чужие ботинки, но позволяет прожить жизнь в гораздо большей гармонии с собой.
Re[8]: Старый код на новом месте
От: mgu  
Дата: 25.11.16 23:36
Оценка:
Здравствуйте, bazis1, Вы писали:

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


Как человек, которому осталось немного до полтинника, выражу своё мнение, что в бизнесе ещё хуже, чем в разработке. Сейчас читаю житие Маска (http://www.urantia-s.com/library/vance/musk/1), и мой скептицизм только возрастает. Пока что мне нравится путь профессора из "Атлант раздвинул ноги", который стал делать замечательные гамбургеры.
Re[9]: Старый код на новом месте
От: bazis1 Канада  
Дата: 25.11.16 23:54
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>Как человек, которому осталось немного до полтинника, выражу своё мнение, что в бизнесе ещё хуже, чем в разработке. Сейчас читаю житие Маска (http://www.urantia-s.com/library/vance/musk/1), и мой скептицизм только возрастает. Пока что мне нравится путь профессора из "Атлант раздвинул ноги", который стал делать замечательные гамбургеры.

Бизнес разный бывает. Общее правило "95% всего — фейк" никто не отменял.
P.S. Мне там больше пират нравился в плане подхода.
Отредактировано 26.11.2016 1:26 bazis1 . Предыдущая версия .
Re[2]: Старый код на новом месте
От: AlexGin Беларусь  
Дата: 29.11.16 13:16
Оценка:
Здравствуйте, white_znake, Вы писали:

_>Подходы в программировании тоже эволюционируют: лет 15-20 тому назад использовали возвращаемые значения кодов для обработки ошибок — сейчас исключения.

И тогда и сейчас — есть и то и другое
"возвращаемые значения" — подход характерный для си-шного API (и как пример — для Windows API);
"исключения" — характерны для C++ и для современных языков (C#, Java).

_>Большие компании не охотно будут использовать новые подходы в программировании, новые паттерны, потому что возникает ложное желание единообразия кода и подходов в программировании.

Почему же НЕохотно?
Или считаете, что в больших компниях все разработчики низкой квалификации?
Нужно и важно — обосновать все эти нововведения. Обосновать — реальной пользой для проекта.

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

+100500
Тут надо отметить, что если даже и писал ты, но лет 10 назад — этот код также часто воспринимается как "ненормальный"
Отредактировано 29.11.2016 13:19 AlexGin . Предыдущая версия .
Re[3]: Старый код на новом месте
От: white_znake  
Дата: 29.11.16 14:32
Оценка:
Здравствуйте, AlexGin, Вы писали:

_>>Большие компании не охотно будут использовать новые подходы в программировании, новые паттерны, потому что возникает ложное желание единообразия кода и подходов в программировании.

AG>Почему же НЕохотно?
AG>Или считаете, что в больших компниях все разработчики низкой квалификации?
AG>Нужно и важно — обосновать все эти нововведения. Обосновать — реальной пользой для проекта.

Ходил я к одним ребяткам беседовать, пишут они UI на js с 2010 года, спрашиваю: а ECMA 6, ECMA 2015, Babel, TypeScript — не используете?
— Не используем. Только ECMA262, только хардкор
— Почему?
— А у нас уже много кода написано на ECMA262, выработаны паттерны. В общем, хотим, что бы все было единообразно, пусть и безобразно.

И не сказать, что они плохие специалисты, спецы они отличные, сами понимают плюшки TypeScript & Babel. Просто менеджмент реально боится изменений, типа лучшее — враг хорошего, а если и так все хорошо, за чем менять?
Так что во многих крупных компаниях пишут на ECMA262, .NET 2.0, С++ 98 и нет ни каких TypeScript, Babel, .NET Core, C++ 11, не потому что не кайф, а потому что дополнительные риски, а сработавшие риски — потеря денег.

Понятно, что есть исключения и в крупных фирмах, но я лично не сталкивался. Даже для себя отметил, что на последних собеседованиях на позицию .NET в крупных компаниях про async/await не спрашивали и про TPL вопросов тоже не было, но за то было много вопросов про примитивы синхронизации на уровне ОС, а в аутсорсинговых конторах, на оборот. Так что показатель...
Re: Старый код на новом месте
От: Andrew.W Worobow https://github.com/Worobow
Дата: 29.11.16 14:41
Оценка:
Здравствуйте, Dair, Вы писали:

D>Теряюсь.


А чем плох код? Что в нем плохо РАБОТАЕТ? Есть много ошибок? В чем именно (обобщенно) код не так сделан?
Не все кто уехал, предал Россию.
Re[2]: Старый код на новом месте
От: Victor Ivanidze Россия  
Дата: 30.11.16 08:11
Оценка:
ОК>В Союзе, кстати, такое же было и в электронике. Принципиальные схемы, транзисторы, резисторы... Вместо того чтобы сделать просто, такое наворотят...

Расскажите про это подробнее. Где и кто искусственно усложнял принципиальные схемы?
Отредактировано 30.11.2016 12:31 Victor Ivanidze . Предыдущая версия .
Re: Старый код на новом месте
От: The Passenger Голландия  
Дата: 16.12.16 15:33
Оценка:
Здравствуйте, Dair, Вы писали:

D>Теряюсь.


Мне в этом плане повезло — я когдато поддерживал продукт начатый еще в 90х CodeWarrior
до сих пор вспоминаю его с теплотой по многим причинам — одна из них — на его примере я понял как действительно выглядит хороший код
( сильно подозреваю что на примере этого продукта и родились паттерны GOF )
поэтому переписать его не хотелось.
Весь мир — Кремль, а люди в нем — агенты
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.