disclaimer: я скорее жалуюсь, чем прошу совета, но совет тоже интересен
Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).
Тут, как и везде у меня на последних местах работы, есть долгоиграющий проект, который начат годы назад, сейчас в поддерживаемом и развиваемом состоянии.
С 1 числа вот копаюсь в коде, и уже три дня (когда более-менее разобрался в нём) бью себя по рукам от желания переписать ***** вообще всё.
А тут ещё общаюсь с соседними отделами, которые пишут библиотеки, которые вставляются в разные продукты, в том числе и в один из наших, так там ВООБЩЕ караул.
Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?.. С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.
Помнится, я тоже в такое попадал. Сначала чесались руки все переписать к чертям. Но примерно через полгода я в том коде ориентировался совершенно свободно. Со всеми его прелестями: функциями со средним размером 1000 строк (максимальный — 3500), макаронами, константами с именами ONE, TWO, ..., FIFTY, переменными var1, var2. Править его было тяжеловато. Но ничего, справлялся.
Здравствуйте, Олег К., Вы писали:
ОК>В общем, относись к этому проще и учись работать в рамках существующего кода. Это и отличает синьйора от не-синьйора.
Ну вот, да, примерно те же мысли, пока так и собираюсь делать. Но мне "владеть" этим продуктом. Новые фичи буду по-своему уже делать, старое переделывать буду только если это будет непосредственно противоречить идеологии нового.
Здравствуйте, Dair, Вы писали:
D>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).
Поздравляю. Теперь занимайся своим визибилити, так быстрее поростешь (не шутка).
D>Тут, как и везде у меня на последних местах работы, есть долгоиграющий проект, который начат годы назад, сейчас в поддерживаемом и развиваемом состоянии.
D>С 1 числа вот копаюсь в коде, и уже три дня (когда более-менее разобрался в нём) бью себя по рукам от желания переписать ***** вообще всё.
D>А тут ещё общаюсь с соседними отделами, которые пишут библиотеки, которые вставляются в разные продукты, в том числе и в один из наших, так там ВООБЩЕ караул.
D>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?..
Это зависит от того — что ты хочешь. Если хочешь тайтлов и денег — трать больше времени на митинги, знакомься с людьми.
D>Или не стоит прогибаться, надо прогибать?..
Ты не первый такой.
D>С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.
Это называется "пилить якорь за ипотеку".
D>Теряюсь.
Если через полгода будешь задаваться вопросом — какого х я тут делаю, в чем моя роль — ищи новую работу.
Здравствуйте, Dair, Вы писали:
D>Теряюсь.
Почему? Просто когда фиксишь баги начинай проводить небольшой рефакторинг который сильно не влияет на соседний модули, а фичи изолируй и пиши уже в нормальном виде.
D>>Теряюсь. K>Почему? Просто когда фиксишь баги начинай проводить небольшой рефакторинг который сильно не влияет на соседний модули, а фичи изолируй и пиши уже в нормальном виде.
Здравствуйте, Dair, Вы писали:
D>Теряюсь.
Какие нынче джуниоры впечатлительные пошли. Это у вас в институте можно было озаботиться качеством кода в рамках курса "Code-monkey skills 101", а у нас тут на заводе всё по-челябински сурово — тяп-ляп и в продакшн.
Попытайся что-нибудь новое сделать с правильной оргнизацией процесса, архитектурой и всем прочим. Будет возможность показать на наглядном примере, если в сроки уложишься. И если компания действительно "крупная и международная" лучше без резких движений. Возможно, те, кто этот огород нагородил уже продвинулись на хорошие должности и им будет неприятно слышать, какой гамокод они творили по молодости.
Здравствуйте, Dair, Вы писали:
D>disclaimer: я скорее жалуюсь, чем прошу совета, но совет тоже интересен
D>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).
D>Тут, как и везде у меня на последних местах работы, есть долгоиграющий проект, который начат годы назад, сейчас в поддерживаемом и развиваемом состоянии.
D>Теряюсь.
. Часто тут такое спрашивают. Резюме:
— Спрашивать в деталях, что за проект и в каком он состоянии до оффера
— Создать отдельный брэнч и неспешно переписывать по своему
— Перенести критичные части в библиотеку, остальное писать по своему
— Перевестись на другой проект
— Если систему не сломать, что наиболее вероятно в "крупной бюррократической компании" — завести свой knowledgebase документ, куда выписывать
как ОНО работает, классы/модули/архитектура/преметная область/воркфлоу итд. Неделя, две, три — и вы уже в теме.
L>как ОНО работает, классы/модули/архитектура/преметная область/воркфлоу итд. Неделя, две, три — и вы уже в теме.
В корпоративе даже отдельные модули могут весить сотни мегабайт кода с нетривиальной логикой но это еще не все потому что быдлокод может быть следствием быдлобазы данных менять структуру которой не просто (так как она уже используется тысячами сторонних клиентов).
Здравствуйте, Dair, Вы писали:
D>Я тут успешно сменил работу. Теперь работаю в "крупной международной компании" (не шутка).
Поздравляю!
D>Тут, как и везде у меня на последних местах работы, есть долгоиграющий проект, который начат годы назад, сейчас в поддерживаемом и развиваемом состоянии.
Копролит мамонта – типичное состояние проекта в "крупной международной компании"
D>Доктор Форум, это нормально? Это пройдёт? Надо пить Новопассит?.. Или не стоит прогибаться, надо прогибать?.. С одной стороны, я уверен, что, как я придумаю, будет всем лучше (опыты прошлых работ это показывали), но я-то один, а тут десятки умных людей с высшими образованиями.
Надо понять кое какие вещи. Во-первых, оно работает и приносит компании деньги. Это самое важное. Во-вторых, слоев говна обычно много и неаккуратно тронув один ты по цепочке, с неопытности работы с этой субстанцией, можешь много что развалить. А оно приносит деньги. В-третьих, обычно, все понимают проблему, но помня о "во-первых" и "во-вторых" бздят что-либо менять. Поэтому, если хочется рискнуть и есть понимание того, как это сделать, то терпеть не нужно.
Я обычно делаю следующее. Так как весь этот копролит обычно никакими тестами не покрыт стараюсь донести идею полезности автоматического тестирования. Если удалось (пока не удалось только в Самсунге), то начинаем добавлять тесты для новых модулей и для того, за что отвечаешь лично ты. Если лезешь в какой-то кусок, то пишешь тесты и начинаешь не только новые фичи прикручивать, но и делать рефакторинг, не спеша, по чуть-чуть. Дальше зависит от твоей настойчивости и навыка влияния на людей, будут слушать или нет, не забросят ли это дело и так далее, но это уже тема для отдельного разговора.
Здравствуйте, Kernan, Вы писали:
K>Почему? Просто когда фиксишь баги начинай проводить небольшой рефакторинг который сильно не влияет на соседний модули, а фичи изолируй и пиши уже в нормальном виде.
Да в том-то и дело, что какая-нибудь переменная внезапно™ может оказаться чуть юолее глобальной, чем она выглядела. И в результате отвалится что-нибудь, казалось бы, никак не связанное с редактируемым модулем.
И чаще всего проблемный модуль обкладывают костылями. Это, на первый взгляд, проще. И народ не задумывается о том, что такие костыли со временем превращаются в грабли.
Здравствуйте, Dair, Вы писали:
D>Теряюсь.
А вот мне такое даже нравится, если временных ресурсов хватает на попутный рефакторинг, главное сильно не увлекаться.
Это как уборка: легко и сразу виден результат. Ну и еще чувствуешь себя умнее и лучше предшественника
S>А вот мне такое даже нравится, если временных ресурсов хватает на попутный рефакторинг, главное сильно не увлекаться. S>Это как уборка: легко и сразу виден результат. Ну и еще чувствуешь себя умнее и лучше предшественника
Предшественника гнали в шею, а тебе подавай временные ресурсы -> значит что ты ничем не лучше.
Здравствуйте, turbocode, Вы писали:
T>Предшественника гнали в шею, а тебе подавай временные ресурсы -> значит что ты ничем не лучше.
Вы своими предположениями говорите о себе гораздо больше, чем стоило бы.
Здравствуйте, licedey, Вы писали:
L>- Спрашивать в деталях, что за проект и в каком он состоянии до оффера
+1
Я прошу показать пример текущих задач и как они выполняются, последние коммиты.
L>- Создать отдельный брэнч и неспешно переписывать по своему L>- Перенести критичные части в библиотеку, остальное писать по своему
Если временные ресурсы есть.
L>- Перевестись на другой проект
Редко возможно, ИМХО.
L>- Если систему не сломать, что наиболее вероятно в "крупной бюррократической компании" — завести свой knowledgebase документ, куда выписывать L>как ОНО работает, классы/модули/архитектура/преметная область/воркфлоу итд. Неделя, две, три — и вы уже в теме.
+1
Расслабится, в смысле не стремится переписать все за один день, и постараться получать удовольствие от работы.