powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Карта модулей приложения
62 сообщений из 62, показаны все 3 страниц
Карта модулей приложения
    #39439543
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно составлять карту модулей приложения?
Есть большое запутанное приложение, в котором много различных модулей, и они постоянно друг друга вызывают и связи эти по первой можно вообще запутаться в этих макаронных вызовах, хочется понять спросить узнать, есть ли какие-нибудь методики описания структуры связей модулей приложения? как-то отслеживать вложенность вызовов, документировать этот процесс в наиболее понятную форму? Придать этому многообразию структурированный вид?
Кто сталкивался и чкакие подходы использвал в этом случае?
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39439554
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015, да многие сталкивались с так называемым монолитным приложением.
Кто-то до сих пор с ним живёт, а кто-то распилил на отдельные сервисы и зарефакторил, отдав тем самым технический долг.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39439557
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39439558
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA https://habrahabr.ru/post/249183/
https://habrahabr.ru/company/it-grad/blog/273583/
Спасибо, Брат )))) Ты понимаешь лдей и их боль ))))
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39439643
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015Как правильно составлять карту модулей приложения?
Указываешь линкеру при сборке соответствующий ключик и он сам эту карту составит. Как ты её потом будешь визуализовать - другой вопрос.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39439670
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015Кто сталкивался и какие подходы использвал в этом случае? Графы, и ещё раз графы. И не жалеть букв на коменты. Если doxygen поймёт исходники, то можно его+graphviz.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39439712
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovRMagistr2015Как правильно составлять карту модулей приложения?
Указываешь линкеру при сборке соответствующий ключик и он сам эту карту составит. Как ты её потом будешь визуализовать - другой вопрос.
а это как?
А можно пример пожалуйста пожалуйста...?
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39439912
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос автора разбит на 2 части ИМХО. 1) собственно извлечение сведений о модулях (кст что такое модуль?)
и определение связей между ними. Здесь же я предлагаю уточнить что "вызывает" и "зависит/наследует" и "включает"
это разные смыслы и их надо по разному определять. Технически этот сбор сведений может быть осуществлен
через статический анализ сорцов или через отладку. В maven есть специальные плагины которые рисуют
отчеты по зависимостям пакетов и версий.

2) Визуализация. Средств - навалом. Про graphviz уже говорили. Добавлю что если не побрезгуете .js
разработками то сильно удивитесь насколько там уже много всего создано для визуализации данных
и знаний. Так-то.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39439923
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВопрос автора разбит на 2 части ИМХО. 1) собственно извлечение сведений о модулях (кст что такое модуль?)
и определение связей между ними. Здесь же я предлагаю уточнить что "вызывает" и "зависит/наследует" и "включает"
это разные смыслы и их надо по разному определять. Технически этот сбор сведений может быть осуществлен
через статический анализ сорцов или через отладку. В maven есть специальные плагины которые рисуют
отчеты по зависимостям пакетов и версий.

2) Визуализация. Средств - навалом. Про graphviz уже говорили. Добавлю что если не побрезгуете .js
разработками то сильно удивитесь насколько там уже много всего создано для визуализации данных
и знаний. Так-то.
По визуализации JS можно ример пожалуйста?
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39439960
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015, я сам не использовал js либы т.к. не специалист в js.
Но если поискать в github по data+visualization то можно найти
достаточно много результатов.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39440056
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015Как правильно составлять карту модулей приложения?
Имхо, правильно её не составлять. Ибо это совершенно бессмысленное занятие - для мало-мальски большого приложения, как ни определяй правила построения этой "карты", получится неимоверных размеров необозримый граф, годный только висеть распечаткой во всю стену со словами "вот как у нас хреново охрененно".

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

RMagistr2015хочется понять спросить узнать, есть ли какие-нибудь методики описания структуры связей модулей приложения? как-то отслеживать вложенность вызовов, документировать этот процесс в наиболее понятную форму? Придать этому многообразию структурированный вид?
Чтобы придать этому многообразию структурированный вид, нужно не отслеживать вызовы, а определить правила и добиться их соблюдения. Самое древнее и стандартное правило называется "чётко определить интерфейс каждого модуля, сделать его минимально возможным и не лазить в модуль мимо интерфейса".
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39440160
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer неимоверных размеров необозримый граф, годный только висеть распечаткой во всю стену
Не для спора - забудьте об этом. Даже самые простые инструменты помогают. Это к вопросу анализа объёма бедствий. По вопросу синтеза "модулей" высказался softwarer выше.
Во-первых существует графический формат SVG, он неимоверно зуммируется без графических лесенок.
Во-2-х, по исходникам составляются эксел-сводные_таблицы "кто куда откуда", они достаточно удобно фильтруются.
В-3-х, вкупе с 1 и 2, помогает явление автоматизированной кластеризации по связям.
В-4-х, как по кластерам рисуем отдельные подграфы, к-рые легко разводятся руками и влазят в полстраницы.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39440775
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже который раз сталкиваюсь с подобного рода задачей.

1. Первый раз решили проблему(причем очень успешно) разбив программу на два относительно независимых модуля, буквально два отдельных приложения. Далось это достаточно сложно, но оно окупилось, т.к. предыдущая монолитная версия просто съедала все ресурсы на отладку, поддержку, исправление багов. Еще пришлось пойти на урезания функционала, все что было не "шибко нужно" или сделано в "общем виде" было удалено. Конечно подход так-себе, но он сработал и позволил хоть как-то выбраться из нескончаемого потока жалоб пользователей.

Предыдущие разы, просто переписывали все с нуля) Причем помню был один проект, его три раза переписывали, в течении четырех лет три разных команды.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39440780
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANARMagistr2015, да многие сталкивались с так называемым монолитным приложением.
Кто-то до сих пор с ним живёт, а кто-то распилил на отдельные сервисы и зарефакторил, отдав тем самым технический долг.
Помню что-то в визио делали, диаграмму классов или диаграмму объектов, но все это особой пользы не принесло, единственное что помогало это изоляция "модулей" (кстати что такое модуль?). На мой взгляд автор больше интересуется не как можно визуализировать и т.д., а кто как визуализировал и у кого какие были в этом деле успехе, полагаю когда человек долго сидит над подобного рода проектом, он буквально "набивает руку" и начинает в оперативной памяти держать все эти взаимосвязи.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39440786
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17он буквально "набивает руку" и начинает в оперативной памяти держать все эти взаимосвязи.
По-хорошему, приложение нужно строить так, чтобы не было необходимости держать взаимосвязи в оперативной памяти. Вот есть кирпич - и кто бы как бы его ни вызывал, он работает как надо. Соответственно, при реструктуризации нужно приближать приложение к этому состоянию, тогда и не потребуется анализировать цепочки вызовов.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39440880
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
все мы знаем как "по-хорошему", но тут речь, что делать когда уже "по-плохому"
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39440887
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17,

что делать... брать наиболее горячие проблемные куски и аккуратно переписывать на "по-хорошему".
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39441254
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17softwarer,
все мы знаем как "по-хорошему", но тут речь, что делать когда уже "по-плохому"
Рефакторинг/переписывание/расплатиться с техническим долгом...
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39441608
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015,

Ещё наверное можно использовать утилиту depends...
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39441715
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17Предыдущие разы, просто переписывали все с нуля) Причем помню был один проект, его три раза переписывали, в течении четырех лет три разных команды.

Ну это конечно полный Пэ, потратить 4-е года жизни и так и не дописать, нет лов от таких шикарных заказчиков )))) Где они живут, расскажите )))
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39441806
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA https://habrahabr.ru/post/249183/
https://habrahabr.ru/company/it-grad/blog/273583/

в общем случае эти все микросервисы такой-же тупик, как и микроядра.

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

а какие ожидают прелести трассировки микросервисов (а поди собери трейс лог по десяткам нод в реалтайме) - это вообще неописуемо.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39441809
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015Как правильно составлять карту модулей приложения?
Есть большое запутанное приложение, в котором много различных модулей, и они постоянно друг друга вызывают и связи эти по первой можно вообще запутаться в этих макаронных вызовах, хочется понять спросить узнать, есть ли какие-нибудь методики описания структуры связей модулей приложения? как-то отслеживать вложенность вызовов, документировать этот процесс в наиболее понятную форму? Придать этому многообразию структурированный вид?
Кто сталкивался и чкакие подходы использвал в этом случае?

и какой смысл в этом описании, если не секрет?

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

проблема/задача то какая стоит, на самом деле? "задокументировать все" - это не задача, это ИБД
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39441825
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchмало того, что цена межмодульных вызовов возростает многократно
Если не доходить до идиотизма в микромизации, то эти расходы можно сделать приемлемыми, а возможно и оказаться в итоговом плюсе.

dbpatchтак еще и порождается целый пласт новых проблем
Как и пласт новых возможностей.

dbpatchмониторить и деплоить монолитное приложение куда проще, чем следить за здоровьем тысяч микросервисов.
Если добавить в "деплоить" условие "без прерывания обслуживания" - ещё вопрос, назовём так.

dbpatchа какие ожидают прелести трассировки микросервисов (а поди собери трейс лог по десяткам нод в реалтайме) - это вообще неописуемо.
Прелести есть везде. Просто для примера - давайте просчитаем сценарий "одна из операций снабжена устойчивой утечкой памяти" для случая монолитного приложения и для случая микросервисов.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39441925
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchskyANA https://habrahabr.ru/post/249183/
https://habrahabr.ru/company/it-grad/blog/273583/

в общем случае эти все микросервисы такой-же тупик, как и микроядра.

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

а какие ожидают прелести трассировки микросервисов (а поди собери трейс лог по десяткам нод в реалтайме) - это вообще неописуемо.мой опыт показывает, что с теоретиками спорить - это долго и бессмысленно:)
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39441944
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchRMagistr2015Как правильно составлять карту модулей приложения?
Есть большое запутанное приложение, в котором много различных модулей, и они постоянно друг друга вызывают и связи эти по первой можно вообще запутаться в этих макаронных вызовах, хочется понять спросить узнать, есть ли какие-нибудь методики описания структуры связей модулей приложения? как-то отслеживать вложенность вызовов, документировать этот процесс в наиболее понятную форму? Придать этому многообразию структурированный вид?
Кто сталкивался и чкакие подходы использвал в этом случае?

и какой смысл в этом описании, если не секрет?

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

проблема/задача то какая стоит, на самом деле? "задокументировать все" - это не задача, это ИБД
полагаю поддерживать функционал задача стоит, надо ведь с чего-то начинать. Так составишь граф вызовов, поймешь связь между структурами данных. Все проще чем с чистого листа код читать, а где проще, там и дело быстрей идет.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39441945
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015da17Предыдущие разы, просто переписывали все с нуля) Причем помню был один проект, его три раза переписывали, в течении четырех лет три разных команды.

Ну это конечно полный Пэ, потратить 4-е года жизни и так и не дописать, нет лов от таких шикарных заказчиков )))) Где они живут, расскажите )))
проект кстати успешно заработал, проблема была в масштарбируемости, скорости работы и т.д. Одна версия была рабочая, но невозможно было поддерживать и все слишком медленно, вторую писали-писал и выкинули, начали писать заново и третья вроде успешно работает.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39441980
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015da17Предыдущие разы, просто переписывали все с нуля) Причем помню был один проект, его три раза переписывали, в течении четырех лет три разных команды.

Ну это конечно полный Пэ, потратить 4-е года жизни и так и не дописать, нет лов от таких шикарных заказчиков )))) Где они живут, расскажите )))

почему же, для кого-то это - четыре года жить на хорошей зарплате в свое удовольствие и еще получать ценный опыт...
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442008
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivRMagistr2015пропущено...


Ну это конечно полный Пэ, потратить 4-е года жизни и так и не дописать, нет лов от таких шикарных заказчиков )))) Где они живут, расскажите )))

почему же, для кого-то это - четыре года жить на хорошей зарплате в свое удовольствие и еще получать ценный опыт...
Покажите где эти заказчики ))))
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442188
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivRMagistr2015пропущено...


Ну это конечно полный Пэ, потратить 4-е года жизни и так и не дописать, нет лов от таких шикарных заказчиков )))) Где они живут, расскажите )))

почему же, для кого-то это - четыре года жить на хорошей зарплате в свое удовольствие и еще получать ценный опыт...
Тут не в этом дело было, команды менялись из-за смены руководства. Первая команда быстро запустила проект и начала зарабатывать, затем компанию купили, поставили своих управляющих. Старую команду убрали, оставили только пару-тройку человек на поддержку.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442190
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, если вспомнить, то помню как в одном НИИ одну систему лет 6 люди писали, причем тут действительно каждый год-полтора переписывали все заново и каждая из этих систем дальше испытаний не шла.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442193
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAda17softwarer,
все мы знаем как "по-хорошему", но тут речь, что делать когда уже "по-плохому"
Рефакторинг/переписывание/расплатиться с техническим долгом...
есть успешный опыт подобного рода вещей? Одно дело в книгах, другое на практике.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442202
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17есть успешный опыт подобного рода вещей? Одно дело в книгах, другое на практике.
Да, есть. У меня, среди прочего, есть опыт, который я крайне ценю - полной переработки приложения, которое при этом работало 24x365. Полной - в том смысле, что к концу работы из старого кода незатронутыми не осталось и двух процентов строк программного текста. Переработки - в том смысле, что внесённые изменения сразу же шли в продакшн, а не висели в ожидании светлого будущего, когда мы целиком заменим старую версию новой.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442282
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer, и как все это делали? Параллельно все переписывали или меняли частями? Почему решили не переделывать все с нуля? У меня было два приложения, одно на 10 000 строк, тут изначально люди походили с планами "на долгую жизнь", так что за два месяца нарисовал все диаграммы, добавил нужный функционал и отправил в продакшн, второй раз тоже был модуль тысяч на 10-12, тут разбили на две части и всю логику переписали, без особых изменений в классах. Сейчас систему уже раза в два-три большего объема,
которую писали разные люди, с разными подходами и разной степенью дисциплины(комментариев в некоторых местах очень и очень не хватает, много мервтого кода и т.д.).
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442309
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17softwarer, и как все это делали?
Пришёл я однажды к начальству и сказал: я понимаю, что вы на эту хрень дышать боитесь, чтобы она окончательно не развалилась, но вот тут совсем задница, и я уже набрался достаточно нахальства, чтобы в неё лазить, поэтому предлагаю переписать вот это вот так. Получилось, стало получше. Внёс ещё несколько изменений. А там параллельно и у меня всё больше чесались руки, и у руководства разгорались и разгорались аппетиты.

da17Почему решили не переделывать все с нуля?
Самое главное - просто в голову не пришло Ну и никто бы мне этого не разрешил и не выделил бы ресурсов. Не говоря уже о том, что я на практике убедился, что риски такого вот аккуратного последовательного продвижения несравнимо ниже, чем у "а давайте всё сломаем и напишем с нуля". По сути, именно успех первых улучшений доказал, что стоит двигаться дальше.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442462
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerdbpatchмало того, что цена межмодульных вызовов возростает многократно
Если не доходить до идиотизма в микромизации, то эти расходы можно сделать приемлемыми, а возможно и оказаться в итоговом плюсе. .
Мы живем не в идеальном мире, и чаще всего мотицация на подобные "структурые имзменения" продиктована как раз локальными искажениями сознания, вида - наш босс прочитал в CIO Magazine статью, что микросервисы - это престижно, уменшает TCO и увеличивает ROI, или ... программист-архитектор Вася решил поиграть в "новые" технологии и попробовать эдакое.

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

К примеру сервис аунтетификации об FB/VK/G+/etc - значительно проще поставить рядом сервер с HybridAuth на борту, и туда проксировать эти вызовы. Аналогично с модулями платежей - там иначе просто и не сделать.

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

softwarerdbpatchтак еще и порождается целый пласт новых проблем
Как и пласт новых возможностей.
Все имеет свою цену. Добавить новый слой сложности очень легко - а вот обслуживать его кто потом будет?

softwarerdbpatchмониторить и деплоить монолитное приложение куда проще, чем следить за здоровьем тысяч микросервисов.
Если добавить в "деплоить" условие "без прерывания обслуживания" - ещё вопрос, назовём так.
ой, да ладно. в мире вебсервисов (а какие бывают еще?) вопрос деплоя без прерывания обслуживания давно решен за счет обратного proxy, в т.ч. и для внутренних соединений (haproxy, nginx - как без них?).

softwarerdbpatchа какие ожидают прелести трассировки микросервисов (а поди собери трейс лог по десяткам нод в реалтайме) - это вообще неописуемо.
Прелести есть везде. Просто для примера - давайте просчитаем сценарий "одна из операций снабжена устойчивой утечкой памяти" для случая монолитного приложения и для случая микросервисов.

не нужно путать понятие "монолитное приложение" и "общая разделяемая куча".

отдельная веб-сессия вполне может оперировать строго в рамках своей изолированной кучи, с периодическим отстрелом процесса
для профилактики (см. архитектуру apache/php).

ну потечет что-то, и что? время жизни сессии не более десятка секунд, и любой монитор моментально вычислит аномально вспухший PID и отстрелит его при случае, бояться подобного в наше время - даже как-то странно
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442465
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAdbpatchпропущено...


в общем случае эти все микросервисы такой-же тупик, как и микроядра.

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

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

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

абсурдность - он спрашивал про модульность, а ты зачем-то привел микросервисы. не знаешь или не понимаешь разницы?
ок, попробуй даже сугубо теоретически распилить софт масштаба Office на микросервисы, ибо монолит-же, все плохо!

обычно для наведения порядка в модулях вполне достаточно выделить пакеты, и разделить интерфейсы и реализацию, в любой среде есть та или иная реализация понятия package, описанного еще в IT-ном средневековье: https://books.google.com/books?id=AuMpAQAAMAAJ&redir_esc=y

Глава 7 - вполне четко поясняет, чем Package отличается от Component и от Class (последний часто приравнивают к Module, особенно в мире Java/C++, из-за чего у программистов получается сдвиг в понятийном аппарате сущностей для управления сложностью)
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442469
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerda17softwarer, и как все это делали?
Пришёл я однажды к начальству и сказал: я понимаю, что вы на эту хрень дышать боитесь, чтобы она окончательно не развалилась, но вот тут совсем задница, и я уже набрался достаточно нахальства, чтобы в неё лазить, поэтому предлагаю переписать вот это вот так. Получилось, стало получше. Внёс ещё несколько изменений. А там параллельно и у меня всё больше чесались руки, и у руководства разгорались и разгорались аппетиты.

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

микросервисы тут абсолютно ни при чем.
просто кто-то взял и переписал изначально хрупкое и плохо спроектированное решение, говоря проще - получил knowledge ownership

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

стратегия в принципе верная, даже в строительстве реальных зданий и сооружений (железобетонных и прочих) иногда куда проще построить заново, чем пытаться угадать, не развалится ли вот это никак не документировованная постройка, если к ней вот приделать мансарду или веранду. или просто заменить канализацию.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442575
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17skyANAпропущено...

Рефакторинг/переписывание/расплатиться с техническим долгом...
есть успешный опыт подобного рода вещей? Одно дело в книгах, другое на практике.
Есть на текущей работе. Также есть Amazon, Ozon...
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442578
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchskyANAпропущено...
мой опыт показывает, что с теоретиками спорить - это долго и бессмысленно:)

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

абсурдность - он спрашивал про модульность, а ты зачем-то привел микросервисы. не знаешь или не понимаешь разницы?
ок, попробуй даже сугубо теоретически распилить софт масштаба Office на микросервисы, ибо монолит-же, все плохо!

обычно для наведения порядка в модулях вполне достаточно выделить пакеты, и разделить интерфейсы и реализацию, в любой среде есть та или иная реализация понятия package, описанного еще в IT-ном средневековье: https://books.google.com/books?id=AuMpAQAAMAAJ&redir_esc=y

Глава 7 - вполне четко поясняет, чем Package отличается от Component и от Class (последний часто приравнивают к Module, особенно в мире Java/C++, из-за чего у программистов получается сдвиг в понятийном аппарате сущностей для управления сложностью)
ТС фактически спросил: кто на практике сталкивался с легаси монолитом и что делали?
Я ему ответил: многие сталкивались, в том числе и мы. Распилили на части.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39442579
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443278
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, что такое "части" ?
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443282
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17skyANA, что такое "части" ?
куски
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443435
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые, я уважаю вас всех личный опыт, однако ТС спрашивал про понимание всего у него имеющегося, а тут его подталкивают к переписыванию , когда не до того. К переписыванию в гордой уверенности, что дело доведётся до конца, а результат превзойдёт ожидания. Может модератор тему переименует?

И я пойму, если ТС не захочет переделок. Мне достался десяток проектов, взаимоувязанных на уровне БД и исходников, отнюдь не монолит. Выше, упомянули 10 тыс строк? У меня сишки без комментов по 150 модулей/проект, среди них по 10-14тыс строк будут в 3-6 файлах/проект. Модуль здесь -- д'билдерная троица: dfm/h/cpp. К этому + пакеты БД + пара проектов в С#. Мелкие переделки/доработки постоянно, заставить переписывать дурных нет.

ТС'у: если СБ закрывает вложения, так хоть текстовые примеры под спойлерами вряд ли запрещены, я такой паранойи ещё не видал, что-то здесь не так как на самом деле.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443647
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98, у нас было 600 проектов в рамках одного солюшина. Если говорить терминами .Net.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443649
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17skyANA, что такое "части" ?
Был у нас один основной большой солюшн из шерстистая проектов. И пара маленьких. И вот разлетелся первый на части :)
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443650
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите мой планшет за опечатки..
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443782
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98Уважаемые, я уважаю вас всех личный опыт, однако ТС спрашивал про понимание всего у него имеющегося, а тут его подталкивают к переписыванию , когда не до того. К переписыванию в гордой уверенности, что дело доведётся до конца, а результат превзойдёт ожидания. Может модератор тему переименует?

И я пойму, если ТС не захочет переделок. Мне достался десяток проектов, взаимоувязанных на уровне БД и исходников, отнюдь не монолит. Выше, упомянули 10 тыс строк? У меня сишки без комментов по 150 модулей/проект, среди них по 10-14тыс строк будут в 3-6 файлах/проект. Модуль здесь -- д'билдерная троица: dfm/h/cpp. К этому + пакеты БД + пара проектов в С#. Мелкие переделки/доработки постоянно, заставить переписывать дурных нет.

ТС'у: если СБ закрывает вложения, так хоть текстовые примеры под спойлерами вряд ли запрещены, я такой паранойи ещё не видал, что-то здесь не так как на самом деле.

Меньшая проблема - разбивать или переписывать, большая проблема сделать сие чудище понятным для восприятия с прозрачным описанием архитектуры
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443788
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015, какая такая архитектура, когда все запутано? В лучшем случае получится картина Маурицы Эшера :)

А напомните, на чем у вас написано приложение?
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443794
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANARMagistr2015, какая такая архитектура, когда все запутано? В лучшем случае получится картина Маурицы Эшера :)

А напомните, на чем у вас написано приложение?
Это проблема не конкретного языка программирования, это проблема подхода в реализации приложения
в частности есть 2-е системы, которые имеют с точки зрения проектирования ИС одну и ту же болезнь:
1) Клиентская часть на Delphi, серверная часть, все обработки и правила на t-sql и хранятся в MS-SQL
2) Oracle и Apex, почтито же самое
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443844
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015, я спросил про язык потому, что инструменты поддерживают не всё их разнообразие.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443845
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015в частности есть 2-е системы, которые имеют с точки зрения проектирования ИС одну и ту же болезнь:
1) Клиентская часть на Delphi, серверная часть, все обработки и правила на t-sql и хранятся в MS-SQL
2) Oracle и Apex, почтито же самое
Однако как лихо Вы назвали болезнью Delphi, MS SQL, Oracle и Apex :)
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443897
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, тем более, что 600 ппрожектов, всё в голове не удержать, нужна материальная опора для подсказок

И вообще, пусть ТС не забывает об этом
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443910
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANARMagistr2015в частности есть 2-е системы, которые имеют с точки зрения проектирования ИС одну и ту же болезнь:
1) Клиентская часть на Delphi, серверная часть, все обработки и правила на t-sql и хранятся в MS-SQL
2) Oracle и Apex, почтито же самое
Однако как лихо Вы назвали болезнью Delphi, MS SQL, Oracle и Apex :)
Блин, да, прошу прощение, надо выражаться чётче ((
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443911
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98skyANA, тем более, что 600 ппрожектов, всё в голове не удержать, нужна материальная опора для подсказок

И вообще, пусть ТС не забывает об этом
Именно так ))
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39443956
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot skyANA]
Пользуясь случаем хочется спросить про ООП в Oracle, а менно про структуру Self...
Почти в любой литературе нахожу упоминание этой структуры при объявлении классов.
Это какая-то стандартная форма или что это такое вообще? )))
А так же смущает практически постоянное наличие слова member перед function
Литературу читаю и официальную то же, но смысла уловить не могу (( Как это простыми словами? ))
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39444012
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015Пользуясь случаем хочется спросить про ООП в Oracle, а менно про структуру Self...
Почти в любой литературе нахожу упоминание этой структуры при объявлении классов.
Это какая-то стандартная форма или что это такое вообще? )))
дык в документации по же расписано: https://docs.oracle.com/cd/B13789_01/appdev.101/b10807/10_objs.htm#i7523
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39444084
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANARMagistr2015Пользуясь случаем хочется спросить про ООП в Oracle, а менно про структуру Self...
Почти в любой литературе нахожу упоминание этой структуры при объявлении классов.
Это какая-то стандартная форма или что это такое вообще? )))
дык в документации по же расписано: https://docs.oracle.com/cd/B13789_01/appdev.101/b10807/10_objs.htm#i7523
Да, нашёл уже, спасибо большое )))
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39444116
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchв общем случае эти все микросервисы такой-же тупик, как и микроядра.

Т.е. в параллельной вселенной


dbpatchмало того, что цена межмодульных вызовов возростает многократно (три-четыре порядка, как минимум), так еще и порождается целый пласт новых проблем для DevOps - мониторить и деплоить монолитное приложение куда проще, чем следить за здоровьем тысяч микросервисов.

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

Модератор: Просьба выражаться без оскорблений

dbpatchа какие ожидают прелести трассировки микросервисов (а поди собери трейс лог по десяткам нод в реалтайме) - это вообще неописуемо.

Езжай на море, отдохни, расслабься. Не надо говорить о том, чего никогда не видел и не знаешь.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39445543
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot skyANA]
а кто видел визуализаторы-анализаторы связей как объектов тк и таблиц в БД oracle?
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39445588
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot RMagistr2015]skyANAа кто видел визуализаторы-анализаторы связей как объектов тк и таблиц в БД oracle?
Intellij Idea строит диаграммы связей для заданного объекта. Там есть наследование
и inner classes, а как насчет других свойств - ХЗ. Смотрите сами.
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39445826
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot mayton]RMagistr2015пропущено...

Intellij Idea строит диаграммы связей для заданного объекта. Там есть наследование
и inner classes, а как насчет других свойств - ХЗ. Смотрите сами.

А что на счёт - Erwin ?
...
Рейтинг: 0 / 0
Карта модулей приложения
    #39445876
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VS есть средства для рисования архитектуры и генерирования рисунков по коду.
...
Рейтинг: 0 / 0
62 сообщений из 62, показаны все 3 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Карта модулей приложения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]