LINUX.ORG.RU
ФорумTalks

Пощупал ынтырпрайс ERP известного финансового конгломерата

 , , , ,


0

2

Пощупал корпоративную ынтырпрайс ERP систему известного транснационального финансового конгломерата. Написано это убожество на Java 5.

Казалось бы - простейшая задача: поменять user и password для database connection для деплоя в тестовое окружения.

Ага щаз: оказывается эти credentianals разбросаны по всему проекту. И их примерно 1600 штук. Как в джава коде, так и xml конфигах Томката.

Вы сейчас мне скажете - делай новый бранч в гите и меняй все Find & Replace .. ом, commit и вуаля - женька билдит артефакты тестовой сборки из той бранчи.

Но дело в том, что у нас тут не сбертех, а конгломерат. И гита у нас нет. И не будет в ближайшие 30 лет. А есть Subversion. Где фактически нет бранчей. И все коммитится в мастер.

Чешу репу и хочу уйти назад в микросервисы на ноде. Там хоть конфиги есть. Да.



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

Ответ на: комментарий от wandrien

Достался на разработку проект, который существовал в единственной копии на продакшене. Команда, которая изначально его пилила, давно свалила в закат вместе с CI и репами. После неё проект допиливали кто во что горазд прямо на продакшене.

Да это наверно у всех такое. Я работаю с кодом, где ни единого теста не было (или не сохранилось). Как это вообще делали? И работает же. А идентификаторы на немецком как вам понравятся? Так что нужно быть хипстером, и делать проекты исключительно на rust nightly. А всем остальным лучше заготавливать верёвку, мыло и всё такое.

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

А у нас полу-хипстерский геймдев :) И какие критерии готовности ноды? На тот момент ей было уже пять лет.

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

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

Понятно что можно покрыть тестами, можно аккуратно дробить и тд. Но всё это опять же бюджет. А вот есть ли он, это вопрос. Допустим у вас контора, вам заказали запилить какие-то фичи. Вы понимаете, что запилить сможете за указанные деньги скажем в течении полугода и вроде бы всё неплохо, деньги неплохие. Но вы также знаете, что на тесты денег не хватит, на реорганизацию процесса разработки не хватит и тд и тп. Хватит в лучшем случае запихнуть это всё в тот же git вместе с зависимостями, повесть какое-то количестве тестов и поместить это дело в управляемую среду, хотя бы в виртуалку. Откажетесь? Будете объяснять заказчику как оно должно быть и требовать увеличения бюджета в 4е раза? Может быть согласится. А если уже требовали и это последнее предложение?

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

От этого надо ставить тесты overnight, с пинанием причастных в случае поломки.

Причастные уволились, бюджет на проект ровно нулевой. Я там выше описывал реальный кейс из жизни. Но на самом деле все намного хуже: у нас есть пару штук проектов на пхп, которые имею в сумме под миллион уников в сутки - и у этих проектов вообще нет ни разработчиков, ни менеджмента; только команда девопсов, которые исторически отвечают за эти сервисы. Более того, на всю компанию есть ровно один пхпшник, которые на пхп пишет ~5% времени.

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

Допускаю, что свои пет-проекты они действительно вылизывают. Но в коммерческом коде всегда будут trade-offs между качеством и стоимостью.

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

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

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

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

И какие критерии готовности ноды?

Оказалось, что за это время на npmjs.org поменяли 1) урлы на загрузку; 2) формат хэш-сумм

Как минимум

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

1600 микросервисов
Пароли в каждом хранятся по своему

Обсуждения микросервисов на ЛОРе – они такие

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

Кстати как называется этот антипаттерн проектирования микросервисов? Как бы вы оформили Credentianals Storage? Это уровень отдельного микросервиса или нижележащий уровень, который архитектором в принудительном порядке делается унифицируется?

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

Кстати как называется этот антипаттерн проектирования микросервисов? Как бы вы оформили Credentianals Storage? Это уровень отдельного микросервиса или нижележащий уровень, который архитектором в принудительном порядке делается унифицируется?

Антипаттерн называется «набрали кодеров по объявлениям». Как бы ты там не оформлял хранилище реквизитов аутентификации, все равно систему превратят в гору костылей и хардкода. Более того, если сервис аутентификации напишет кто-то криворукий, то хардкод и костыли гарантированы, потому что выяснится, что этой аутентификацией крайне неудобно пользоваться — и тогда считай, что никакой ценарального сервиса никогда не писалось. Особенно высокий риск такого сценария в команде без грамотного лида происходит из-за того, что обычно самые тупые и бездарные не могут разобраться в трех соснах, и потому начинают «организовывать» проект до того, как более грамотные разрабы определятся с требованиями.

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

что правда везде leave?

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

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

Я работаю с кодом, где ни единого теста не было (или не сохранилось).

Мне кажется, у нас их и не было никогда. Следов их присутствия я не нашел.

А как вам такое: у проекта нет исходников вёрстки фронта. Файлы с CSS были обработаны каким-то алгоритмом, превращающим CSS в винегрет. Для каждого уникального типа страниц был сформирован отдельный файл CSS, содержащий стили только этой конкретной страницы. А так как типов страниц очень много, на выходе мы имеем под сотню файлов в которых причудливо смикшированы полные дубли, частичные дубли и уникальные для страницы стили.

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

А результат этой обработки потом инлайнится прямо в HTML.

Так что нужно быть хипстером, и делать проекты исключительно на rust nightly.

Которые через полгода не соберутся даже на машине разработчика? :)

Вот этому я sh применяю зачастую. Никогда не знаешь, в какой системе придётся запускать скрипт.

А всем остальным лучше заготавливать верёвку, мыло и всё такое.

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

Шок бывает у тех, кто до этого жил в мире розовых пони.

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

Мне кажется, у нас их и не было никогда. Следов их присутствия я не нашел.
А как вам такое: у проекта нет исходников вёрстки фронта

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

А как вам такое: у проекта нет исходников вёрстки фронта. Файлы с CSS были обработаны каким-то алгоритмом, превращающим CSS в винегрет. Для каждого уникального типа страниц был сформирован отдельный файл CSS, содержащий стили только этой конкретной страницы. А так как типов страниц очень много, на выходе мы имеем под сотню файлов в которых причудливо смикшированы полные дубли, частичные дубли и уникальные для страницы стили

Половина команды кончей, которые не могут запустить транслятор стилей, из-за чего в репу кидаются только готовые к употреблению файлы. Либо в системе сборки-деплоя нет скриптования для этой трансляции. Либо кто-то очень конкретно нагадил, потенциально для того, чтобы обезопасить свое рабочее место. Но, судя по всему, обезопасить онное у него так и не получилось — есть такая склонность у «коммерсов», которые лучше умеют перепродавать и разводить, чем создавать. Однако, как грица «чтобы что-то продать — нужно сначала что-то купить».

Вот этому я sh применяю зачастую. Никогда не знаешь, в какой системе придётся запускать скрипт

На винде.

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

Есть готовый софт для этого с простым апи. С ним интегрируйся и всё.

Legioner ★★★★★
()

Казалось бы - простейшая задача: поменять user и password для database connection для деплоя в тестовое окружения.

Ты привык, что надо делать правильно и думаешь не так. user/password надо подменять на уровне jdbc, если он там есть. Если не получится, делать подмену на уровне бд или протокола:) Так будет проще.

crutch_master ★★★★★
()

Только нишеброды держат тестовую бд на одном айпи с боевой

Jopich1
()
Ответ на: комментарий от wandrien

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

Вероятно был какой-нибудь main.css, откуда верстальщики таскали стили для каждой страницы, и что-то там доделывали, переделывали. А исходников нет, потому что и не было никаких исходников, всё это ручками набивали и копипастили.

А результат этой обработки потом инлайнится прямо в HTML.

Ну это нормально, раньше это было общей практикой. Проект небось из начала 2000-х.

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

Не, это 100% машинная обработка. Человек бы так ровно не накопипастил, всегда без пустой строки между стилями, всегда с одинаковыми отступами и т.п.

Вряд ли кто-то индентацию поверх гонял.

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

Так что нужно быть хипстером, и делать проекты исключительно на rust nightly.

Которые через полгода не соберутся даже на машине разработчика?

А и не надо. Через полгода хипстер уже в новом стартапе. Иначе это негодный хипстер, просроченный.

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

Просроченный хипстер :D

Были бы на форуме подписяшки, поставил бы в подпись.

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

Не, это 100% машинная обработка.

Значит это более продвинутая технология. Какой-то препроцессор таки задействовали. Но подход примерно тот же.

bread
()
Ответ на: комментарий от GAMer

вы так говорите, как будто S&R гораздо проще

GP
() автор топика

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

P.S. ветки в subversion есть, как и теги, и работать с ними можно абсолютно так же как и в гите, за исключением отсутствия бесплатных инструментов для ревью и прочего. Вполне себе можно в git flow на сэвээн фигачить, если на 30-40килобаксов софтом закупиться у того-же атлассиана. А вот чего будет дешевле пересесть на жит или закупиться это отдельный философский вопрос.

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

Вот да, фронт ей собирать весьма неплохо, кстати.

leave ★★★★★
()

известного транснационального финансового конгломерата

Ну ты, конечно, нашел где работать.

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

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

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

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

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

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

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