Приветствую тебя почтенный анон. Пришло мое время охуеть от этого явления, но начну по порядку. Около 5 лет я работал в мелких и средних разработческих конторах. Везде была приблизительно одна схема работы. Нарезались задачи, распределялись между разработчиками, в конце месяца подсчет, зп оклад + премия от количества задач. Примерно пол года назад я устроился в очень крупную компанию, по размеру безусловно лидер по нашему региону, на поддержку и по сути первый раз я по настоящему столкнулся с сабжем. Вообще и раньше часто были задачи что-то доработать, переделать или исправить ошибки, оптимизировать, но все это была, как оказалось, полная херня и ни о чем по сравнению с тем, что я встретил тут. Полностью самописная ИС большая часть на дельфи, часть на сишарпе, есть еще веб-часть, но что там я вообще не знаю какие интернет платежи, магазин, онлайн кассы что-то еще. Полторы (и более) тысячнострочные процедуры формирующие невероятных размеров запросы в бд обращающиеся к таблицам в которых хуйзнает что и хуйзнает откуда пишется. Документации нет. Точнее она есть, но ее сухость поражает вооброжение "Модуль делает то-то.." А в этом модуле блядь чего только нет. Он и что-то пишет и что-то читает, и к веб-сервису обращается и сам что-то высирает короче один пиздец. Людей которые это все писали уже нет возможно в живых. Что-то спросить не у кого. Пару раз было что своими действиями я на несколько часов останавливал работу предприятия, но бог миловал удавалось свалить на админов (с администрированием этого всего я так понимаю тоже не все гладко). Задачи, как раньше никто не ставит, схема совершенно другая. Приходит начальник (хуйло) и спрашивает: "От такого-то отдела поступила вот такая-то заявка на доработку. Сколько времени это займет?" А я даже приблизительно не могу предположить то-ли неделю, то-ли пол года, то-ли год, то-ли это вообще невозможно сделать. ГЛАВНЫЙ ВОПРОС legacy-дворецкого legacy-господам:- КАК БЛЯДЬ С ЭТИМ РАБОТАТЬ?- Есть ли какие методики, книги, etc?- Как вообще в идеале должна быть построена работа когда уже написаны килотонны кода и приходит новый человек?- Как управлять сложностью в таких случаях?- Советы, охуительные истории как ты анон с честью выходил из ситуаций когда оказывался без вины виноват?
Бля вот так вот пишешь хуету, потому что на начальной стадии проекта тебя наняли хуярить за еду, а потом ведь это кому-то дорабатывать придется, и кто-то ведь так вечно будет работать над говном мамонта. И никакой хуе-летний опыт ему не поможет быстро и качественно дорабатывать твои высеры, потому что тупо ногу сломишь. Да еще и в глазах начальства этот бедняга будет тупым медленым пиздоболом, который говорил что умеет дохуя, а по факту нихуя не может, не то что тот шустрый джун-молодчага, который всё быстро и задешего делал. Эх, не хотет такое делать.
> - КАК БЛЯДЬ С ЭТИМ РАБОТАТЬ?Молча. Если тебя привлекает это предприятие, и ты хочешь на нем работать, то берешь себя в руки и познаешь как все это легаси говно работает. Со временем сможешь обосновать, что ту или иную часть стоит переписать. Чем больше ты погрузишься во все это, тем больше зп сможешь просить, т.к. начальнику будет невыгодно нанимать нового раба, который будет разбираться во всем этом полгода.
>>928511 (OP)Б3ГNhttps://www.youtube.com/watch?v=Cc-PeFXY0ZY
дык делаешь то что тебе скажуттолько если у вас вообще глушняк с поставленными процессами разработки (те тупо нет даже багтрекера), то проводишь всю постановку задач через почту хотя бы - те чтобы все поставленные тебе задачи проходили через нееникогда не выполняй указания со слов, требуй чтобы хотя бы письмом дублировали их
>>928511 (OP)Переписывать кусками (в основном экстрактить методы поначалу), чтобы понять логику.>>928597 - слушать этого.Когда поймешь логику, начать кусками переписывать.
>>928530фантазии. он так и проработает 1,5-2 года так и не особенно поняв как оно работает
>>929120И меня это пиздец печалит. Вокруг одни мартыханы, которые бездумно копируют существующий код, плодя говномодули один за одним. А потом их хуй спилишь.
>>929166Одно запомни, благодарности ты от этих людей не дождёшься.
>>928511 (OP)Сам охреневаю с легализовали и удивляюсь где они за бешеные деньги набирают обезьян, которые делают говно, которое потом надо чистить и доделывать за копейки? Мне ниразу с нуля ничего не давали делать зато от этих доработок чужого говна я охереваю
>>929207Вот этот вроде не совсем дебил.
>>929120>проработает 1,5-2 года так и не особенно поняв как оно работаетСамую суть ухватил. Только я нихуя не уверен а скорее даже уверен в обратном, что и отработав 3-5 лет не особенно буду понимать как оно работает.На всякий случай напомню основные вопросы> - Есть ли какие методики, книги, etc?> - Как вообще в идеале должна быть построена работа когда уже написаны килотонны кода и приходит новый человек?> - Как управлять сложностью в таких случаях?
/THRED
>>929207+1
>>929319вообще есть шанс, что никто не оценит, какой труд ты проделал разбираясь (просто не поймут), ведь все остальные участники срать хотели на это говно, их время слишком дорого им самим чтоб думать об этой "системе". им важнее свое, личное, ну и крысиная возня.- если действительно хочешь разобраться тебе надо сначала понимать _что_ оно делает, а потом уже _как_ (_как_ - это уже в коде пытаться понять)- можешь даже взяться документацию на нее на всю написать (но на то, что при увольнении ты сможешь ее "продать" не рассчитывай даже, дохлый номер, не те времена, не те люди). т.е. писать ее нужно только для себя. (и никому не показывать)- еще можно пытаться систему эту гробить дальше просто переписывая ее частями, но как правило это малореально
>>928631>в основном экстрактить методы поначалук примеру ты ПОТРАТИЛ 2 недели чистого времени чтобы экстракнуть два метода и гарантировано(кхм-кхм..) ничего не сломать.ты сэкономил топливо, сырье деньги конечной конторе? нет.ты ускорил процессы конечной конторе? нет.ты облегчил труд пользователям чтоб им было чуть легче жить("та женщина тебе будет успевать и ее не уволят")? нет.ты улучшил удовлетворил шизо-мазо желания своего менеджера чтоб он больше тебя любил и не нанял тебе другого программиста-конкурента? нет.ты уменьшил колическо багов чтоб не ломалось так часто? нет.ты добавил новый "функционал"? нет.
>>9294092 пресс-хаты этому отрицале.
>>928631>>929409Что значит экстрактить методы?
>>929445из лапши и говна макаки-предшественника выделять логические части и создавать методы.
Несколько советов1) Выполняй задачи по принципу минимального вмешательства. Меняй/добавляй только тот код без которого не обойтись. Чем меньше будет diff твоего merge request'а, тем проще ревьюверу и спокойнее вам обоим. Есть личности, которые любят "рефакторить" все подряд. Они чинят один баг и добавляют десяток новых. Никогда так не делай.2) Верь только тому что сам видел и проверял. Документации и комментариев к коду обычно нет, или они устарели. Проверяй все сомнительные места.3) Используй поиск в IDE, отладчик, профайлер, логи, ассерты и т.д. Ты должен в совершенстве владеть техникой "копания" (обычно в вакансиях этот скилл называют "умение разбираться в чужом коде"). Бывает что задачу можно решить правкой одного конфига, но если ты не знаешь про этот конфиг - ты потратишь неприлично много времени на это.
>>929409Правда жизни. Попытки чего-то там вникать, рефакторить всегда быстрее приводят к увольнению.Попробуй сказать менеджеру как есть: Проект большой, требует понимания программистом предметной области, бизнес-логики/бизнес-правил, код проекта не наивысшего качества. На одно только изучение мне потребуется 5 месяцев в течение которых никакой код вообще писаться не будет, но будет получено понимание и документация. Только после этого я смогу выполнять задачи, прикидывать как-то строки и сложность. Сразу же будешь уволен, хотя это и правда.
>>928631>экстракхуевый совет. совсем хуевый.- ОП не может проверить ничего (и хуюнит-хуирование тут не помогло бы ни грамма на самом деле). он точно будет ее ломать, т.к. даже если он будет понимать что оно делает, у него не будет возможности запустить эти процессы тестово, не отправив деньги не нарушив балансы, не отправив не тех писем и т.д.- иногда экстрактинг работает и вообще рулит. но бывает что весь экстрактинг в итоге осуществляется скорее на уровне синтакса и семантики языка. компилятор вот тоже манипулирует как угодно кодом в процессе оптимизации, но он что-то там понимает? вот ОП так же будет экстрактить. это просто мартышкин труд, причем крайне дорогой.obscureExtractedFunction(obscureParam1, obscureParam2, obscureParam3, obscureParam4, obscureParam5, obscureParam6, obscureParam7, obscureParam8, obscureParam9, obscureParam10, obscureParam11)
Зачем ты туда пришел вообще, лол, судя по ОП-посту еще и осознанно. Блять бывают же уебаны.