LINUX.ORG.RU
ФорумTalks

Маленькие радости легаси

 , ,


0

1

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

Мне лично за любовь к разбивке всего и вся на «микросервисы» без особого понимания зачем и как, в итоге вместо 4 сервисов натурально 50, транзакции на базе юзать нереально, дикая нагрузка просто из-за наличия этих самых 50 сервисов и прочие радости жизни

жж -20 пошёл дальше копать мёд лопатой

★★★★★

Нет никакого прежнего разраба. Есть прога, а ля 1С, и мы её допиливаем напильником.

За то, что в пред-предыдущей версии проги функционал работал, и на нынешнем железе не тормозил. «Не было печали - обновы накачали». А так, там вполне грамотные ребята.

tiinn ★★★★★
()
Ответ на: комментарий от crypt

но… но… но мне говорили, что микросервисы - это хорошо!

Да, даешь по микросервису на каждый endpoint!

Правда мне всегда казалось, что легаси — это мамонты еще монолитных времен.

Zhbert ★★★★★
()
Последнее исправление: Zhbert (всего исправлений: 1)
Ответ на: комментарий от crypt

но мне говорили, что микросервисы - это хорошо

Это просто чудесно, в идеальном мире с розовыми единорогами и прочим. В реальности к сожалению из них крайне легко сделать треш и угар, который падает так что потом концов не найти. Аналогично с mq, идея хорошая но блин не надо её вместо rpc юзать если это не 100% нужно для задачи

upcFrost ★★★★★
() автор топика
Ответ на: комментарий от upcFrost

вместо rpc юзать

а ты самописные «rpc» из post видел?:) причем такие... когда код rpc отдельно не существует, а просто копипейстятся блоки кода каждый раз... даже у меня, админа, волосы дыбом встали... даже я объектов не знаю, но код лучше пишу:)

crypt ★★★★★
()
Ответ на: комментарий от upcFrost

в идеальном мире с розовыми единорогами и прочим

а у нас тут есть несколько розовых пони, кстати... может, у них спросить...

crypt ★★★★★
()
Ответ на: комментарий от grem

или не так как хочешь ты

Точно. Значит надо все переписать на расте!

Zhbert ★★★★★
()
Ответ на: комментарий от zgen

В смысле? А разве это не так делается? но.. но.. но……

Во, я придумал! Ловит запрос по ендпоинту один микросервис, потом отправляет JSON на другой микросервис, а тот уже отвечает! Надо больше микросервисов!!!

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Вася, ты что-ли? Прости, не узнал! Ты лучше 17й эндпоинт поправь, а то там в json'е кодировка левая и парсер обваливается!

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)

Мне лично за любовь к разбивке всего и вся на «микросервисы» без особого понимания зачем и как, в итоге вместо 4 сервисов натурально 50, транзакции на базе юзать нереально, дикая нагрузка просто из-за наличия этих самых 50 сервисов и прочие радости жизни

Моё любимое: дернуть service1.GetAllObjects(), дернуть service2.GetAllObjects(), заджойнить в памяти, выбрать пару жалких штук и сделать с ними что-нибудь.

derlafff ★★★★★
()

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

Еще фабрики фабрик, даже с IDE пройтись по коду очень сложно, тк как надо следить какая реализация интерфейса прокинута итд, в итоге на 5 уровне вложенности классов запутываешься.

Все в общем сводится к ненависти из за лишнего переусложнения.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)

за что вам чаще всего хочется убить прежнего разраба?

За использование технологий, библиотек ради интереса, а не ради решения задачи, из моей области - сувание везде подряд спрингов кафок и чего-то поверх jdbc

bubvalet
()

в некотором царстве… дамным дамно… опщем ковырял я однажды крестовый код под который была запилена самописная стандартно-нестандартная либа с чем-то вроде stl в комплекте, но не stl, а неведома зверушка.

пользуясь случаем хочу передать привет.

olelookoe ★★☆
()

Мне как-то раз приходилось фиксить код написанный на ASP. Подчеркиваю - не ASP.Net, а классический ASP который «наш ответ PHP но с синтаксисом от бейсика», который самому майкрософту нахер не сдался. Так к тому-же клиентская часть там была не на JS, а на VB.Script. Опять же тот который самому Майкрософту нахер не сдался. В итоге работало оно только в IE, причем старых версий.

Надо ли говорить что внутрях был страх и ужас и лапша из крайне тяжелых SQL запросов составленных обычной конкатенацией?

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

YogSagot ★★★
()

в итоге вместо 4 сервисов натурально 50

с легаси проще запилить ещё один новый, чем ковырять старый, жиза

anonymous_sapiens ★★★★★
()
Ответ на: комментарий от anonymous_sapiens

Все шишки в том что когда люди вместо 4 сервисов пилили 50 это ещё не было легаси

upcFrost ★★★★★
() автор топика

какое-то у тебя легаси ненастоящее, в каком году эти самые микросервисы вошли в моду, у тебя говнокод и говноархитектура просто

Harald ★★★★★
()
Ответ на: комментарий от YogSagot

внутрях был страх и ужас и лапша из крайне тяжелых SQL запросов составленных обычной конкатенацией?

Да, это сочно. Один раз (ок, больше одного, не суть) дебажил перловый скрипт который делал джойн 20-30 таблиц и отправлял результат в соседний сервис. Запрос занимал два экрана 24" кажется, было весело

upcFrost ★★★★★
() автор топика
Ответ на: комментарий от Harald

В моду году в 2015, а так были и раньше

upcFrost ★★★★★
() автор топика
Ответ на: комментарий от cocucka

мне больше всего понравился опрос «часто ли вы читаете опесорсный код?»

что-то там такое отвечали... «иногда после того, как напишу»... что-то типа того:)

crypt ★★★★★
()

Когда что-то делают

без особого понимания зачем и как

За это завсегда

хочется убить

anc ★★★★★
()
Ответ на: комментарий от crypt

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

cocucka ★★★★☆
()

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

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

PolarFox ★★★★★
()

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

А дело то не в том что кто-то пишет плохо код

vertexua ★★★★★
()

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

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

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

shimon ★★★★★
()
Ответ на: комментарий от upcFrost

Да, это сочно. Один раз (ок, больше одного, не суть) дебажил перловый скрипт который делал джойн 20-30 таблиц и отправлял результат в соседний сервис. Запрос занимал два экрана 24" кажется, было весело

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

shimon ★★★★★
()
Ответ на: комментарий от shimon

Но у меня SQL может и огромен, но читабелен всегда.

Да да, все так говорят. Мои сраные list comprehension в 100500 строк тоже весьма читабельны.

upcFrost ★★★★★
() автор топика
Ответ на: комментарий от cocucka

По опыту глаза смотрят в код и находят уязвимости только если их слегка смазать деньгами. Тот же HackerOne

upcFrost ★★★★★
() автор топика

Безотносительно к микросервисам и прочей мутотени.

Есть ТЗ. Выстраиваешь стройную систему под это ТЗ, разбиваешь на подпрограммы. Всё очень логично, не крупно, не мелко. А потом, внезапно, в ТЗ добавляется пункт, который вообще никак не встраивается в написанное. И начинается внедрение костылей. Когда этих костылей становится много*, то проще всё переписать.

*У каждого своё понимание «много». У меня проекты не более 3 тыс строк. Но все – 100% велосипеды. Считаю, что мне повезло и мне не нужно вникать в чужие фреймворки и прочий чужой код. Чистое творчество. Не каждому так везёт.

rechnick ★★★
()
Ответ на: комментарий от rechnick

Выстраиваешь стройную систему под это ТЗ, разбиваешь на подпрограммы.

Fail, не зная про «внезапно, в ТЗ добавляется пункт» не надо пытаться разбить систему на подпрограммы

upcFrost ★★★★★
() автор топика
Ответ на: комментарий от upcFrost

Надо. Правка может прилететь через месяц. А программа уже работает. Уже внедрена в процесс.

rechnick ★★★
()
Ответ на: комментарий от upcFrost

Просто это к чему написано. Предположим, придёт новый человек, откроет мой код и скажет – нафига было так делать? Но он не знает, что это был живой процесс. Сначала было одно ТЗ, а потом другое. Вместо переписывания всего были добавлены костыли.

rechnick ★★★
()
Ответ на: комментарий от upcFrost

код - лучший комментарий

Такое прокатит разве что на ЯП максимально приближенных к естественным человеческим языкам.

mydibyje ★★★
()

Я со временем пришёл к пониманию, что на «качество» кода насрать. Если его control flow и data flow просты и понятны, похуй на глобальные переменные, синглтоны и на все-все на свете. Когда же в этих флоу черт ногу сломит, тогда поддерживать и развивать его — боль. Это особенно забавно, потому что зачастую сложную архитектуру оправдывают расширяемостью, поддерживаемостью и прочими мудацкими базвордами.

Микросервисы из той же оперы.

filosofia
()
Ответ на: комментарий от mydibyje

Такое прокатит разве что на ЯП максимально приближенных к естественным человеческим языкам.

Ты на брэинфаке или хаскеле пишешь? Обычно большая часть логики описывается композицией функций или классов и смазанных простой математикой. Даёшь этим сущностям нормальные имена и читаешь практически литературный английский в коде.

filosofia
()
Ответ на: комментарий от mydibyje

Не, такое ни на одном яп не прокатит. Если логика сложнее чем жсон в базу сложить, разумеется

upcFrost ★★★★★
() автор топика
Ответ на: комментарий от filosofia

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

mydibyje ★★★
()
Последнее исправление: mydibyje (всего исправлений: 1)

«микросервисы» и Легаси? Странное у вас легаси. Легаси это 10 лет проект от внедрения, всё что моложе это максимум зрелость. Всё мои легаси проекты это мои проэкты и они прекрасны +) ибо до сих пор работают. (1.4.2/1.5 java, maven 2.0.4 шо один шо второй).

vtVitus ★★★★★
()
Ответ на: комментарий от cocucka

Да и мой код тоже говно.

Своё говно не пахнет.

rupert ★★★★★
()

Когда на c++ создают макрос и называют так же как какая-нибудь функция. Типа для переопределения поведения.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Как, например, min/max при включении <windows.h>.

rupert ★★★★★
()
Ответ на: комментарий от upcFrost

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

Микросервисов настрогали, а про мониторинг, логирование и трассировку забыли — бывает.

Nervous ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.