Что на самом деле представляет из себя монолит в архитектуре программы?

  Рет қаралды 14,022

S0ER

S0ER

Күн бұрын

#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - t.me/softwaree...
Спонсорство - donate.s0er.ru
Сайт платным контентом - soer.pro
Зеркало для видео Дзен Видео - zen.yandex.ru/...
GitHub - github.com/soe...
Чат для программистов - / discord
Группа ВК - codeart...

Пікірлер: 86
@ЕрболУтегенов-й5ю
@ЕрболУтегенов-й5ю 4 жыл бұрын
soer батя, самый опытный и зрелый it-ютубер; если честно ни бороду, ни остальных не могу серьезно воспринимать
@jorikvartanov8063
@jorikvartanov8063 4 жыл бұрын
Ербол Утегенов Поддерживаю, Соер Настоящий программист в полном понимании этого слова
@deniskoeppen
@deniskoeppen 3 жыл бұрын
Ну у Бороды и формат другой
@deniskoeppen
@deniskoeppen 3 жыл бұрын
В МСА разве нет проблем с физ. и лог. моделями данных?
@ronnie_rocketo
@ronnie_rocketo 4 жыл бұрын
ну наконец то видосы, я уже думал что канал заброшен. Один из немногих кого я смотрю. Было бы обидно...
@vitiok78
@vitiok78 4 жыл бұрын
Очень интересно, спасибо! Давно хотел подобной информации к размышлению
@TotalCom4
@TotalCom4 4 жыл бұрын
Попробуйте почитать еще Боб Мартин "Чистая архитектура " 2017г., если конечно не читали, там даже с примерами из жизни.
@zcbesaba
@zcbesaba 4 жыл бұрын
с возвращением, продолжай, хороший контент.
@theman5628
@theman5628 4 жыл бұрын
Сначала не прочитал название канала в уведомлениях. Подумал шо какой-то ролик по сталкеру....
@AlexanderSavchenko91
@AlexanderSavchenko91 4 жыл бұрын
Зашел в комменты чтобы написать этот коммент хахахах
@ilnurryazhapov
@ilnurryazhapov 4 жыл бұрын
Почаще выпускай видео, очень интересно
@ВладКаченя
@ВладКаченя 4 жыл бұрын
Очень интересно. Спасибо!
@lightlocdog
@lightlocdog 4 жыл бұрын
топчик, кратко и понятно, спасибо
@oeaoo
@oeaoo 4 жыл бұрын
Мало кто умеет соблюсти разумную достаточность. А вот наплодить ненужных архитектурных сущностей за деньги заказчика и потом еще это обслуживать могут наверное все.
@absenteg
@absenteg 4 жыл бұрын
Помимо распределения нагрузки микросервисная архитектура позволяет еще и обеспечивать переиспользование этих самых сервисов. То есть если у компании несколько проектов в которых требуется реализация одинаковой и сложной бизнес-логики, то микросервисный подход будет вполне оправдан.
@michaelkronenberg3712
@michaelkronenberg3712 4 жыл бұрын
Расскажи тоже самое про облачную архитектуру где десятки разных микросервисов )
@originalbiketricks
@originalbiketricks 4 жыл бұрын
Круто, значит я не говнокод пишу, а монолит )
@fj8017
@fj8017 4 жыл бұрын
😄
@sixaxisization
@sixaxisization 4 жыл бұрын
:)
@RusBear1993
@RusBear1993 4 жыл бұрын
копролит
@MDunaev
@MDunaev 4 жыл бұрын
Спасибо, Соер, слушать интересно. Блики и отражения в очках -- отвлекают, мешают сосредоточиться.
@kianmeli
@kianmeli 4 жыл бұрын
Спасибо за тему!
@dev_zloi
@dev_zloi 4 жыл бұрын
Хороший архитектор должен предвидеть все возможности расширения системы и провести "невидимые" границы между компонентами. В идеале архитектура должна быть такой, чтобы можно было легко от монолитной перейти к микросервисной и наоборот.
@user-10248
@user-10248 4 жыл бұрын
Дмитрий Попов реальность обычно такова, что этот хороший архитектор появляется только тогда, когда уже наломали дров и сами не справляются. Потому что мало стартапов могут себе позволить нанять опытного архитектора на начальном этапе проекта
@dev_zloi
@dev_zloi 4 жыл бұрын
@@user-10248 ну а кто спорит, я написал про идеальный случай.
@rsakutin
@rsakutin 4 жыл бұрын
Отличное видео!
@alexsokol9447
@alexsokol9447 4 жыл бұрын
Звук не совпадает с картинкой
@ИванИванов-н9т9ъ
@ИванИванов-н9т9ъ 4 жыл бұрын
Вам нужно обратиться в учреждение, где ставят диагнозы и выписывают рецепты.
@vyacheslavgvorus3883
@vyacheslavgvorus3883 4 жыл бұрын
Это нормально, визуальная информация обрабатывается дольше, на звук реакция быстрее, живи с этим фактом
@sixaxisization
@sixaxisization 4 жыл бұрын
@@ИванИванов-н9т9ъ ....
@dsalodki
@dsalodki 4 жыл бұрын
сейчас в решении (сборке всех проектов) столько проектов (длл) что сама среда разработки не выдерживает и перезагружается, хотя ОЗУ хватает. верное видео в целом. что бы понять что хотели написать, в каком проекте нужно было что-то исправить использовал VS code и поиск по всему... и правда много проектов, уровней в веб апи путает. а методы не отрефакторенные это вообще два часа провёл и не понял что ещё нужно поменять.
@olegnagaylenko132
@olegnagaylenko132 4 жыл бұрын
Картинка просто прекрасна
@ВалентинаСахарова-ь3б
@ВалентинаСахарова-ь3б 4 жыл бұрын
спасибо!
@JohnDoe-ji1zv
@JohnDoe-ji1zv 4 жыл бұрын
Soer на чем ты разворачиваешь сервисы ? Было бы интересно узнать. Спасибо за видео
@thomwhite4565
@thomwhite4565 4 жыл бұрын
Я правильно понял, что трехслойная архитектура, это монолит? Можете подробнее раскрыть вопрос ахрихетуры? трехслойную легче покрыть более точными тестами, чем монолит, следовательно проблемы выявляются еще на этапе разработки, проброс экзепшнов, так же дает более подробный стек и за счет того, что каждый слой делает свою работу, расширять и править его проще. Мне нужно соблюдать контракты между слоями, изменение которых не частое явление, а саму логику можно менять как угодно. - это как у меня получается. Но вот модульная архитектура, для меня теория.
@fpv_am
@fpv_am 4 жыл бұрын
Я думаю, всё монолит, даже микросервисы, всё ровно же всё ото всего зависит, и идёт месседжинг между микросервисами
@fj8017
@fj8017 4 жыл бұрын
Ну, не совсем и не всегда. Возьмём в пример виджет отображения погоды на смартфоне. Если что-то пошло не так и виджет выбрасывает исключение, то можно этот виджет просто скрыть, на состояние всей операционной системы это влиять не будет. Но модульность можно организовать только на масштабных проектах, на небольших это сделать нереально, да и не нужно. Я, пока что, не сталкивался с ситуацией, где можно обойтись без монолитности.
@crutchmaster9637
@crutchmaster9637 4 жыл бұрын
s/#сложно/#сложна!/
@drak0an
@drak0an 3 жыл бұрын
Эти 14 минут в своё время сэкономят миллион
@MaximDementiev
@MaximDementiev 4 жыл бұрын
Если разбито на пакеты, то это уже не монолит, по-моему. Монолит - мне больше напоминает, например, ядро Линукса, которое собрано всё вместе, со всеми модулями, без возможности подгрузить ещё что-то. А в видео, похоже, идёт речь о непродуманности интерфейсов между слоями, когда рождается это самое "зацепление", когда взаимная реализация слоёв определяет этот интерфейс между ними. Нового ничего, к сожалению, не узнал.
@BASic_37
@BASic_37 4 жыл бұрын
Чет я тупой такой что ли? Но по-моему тема не раскрыта... Вот сегодня внес изменение даже не в трехзвенку, а в двух - изменил прямо на горячую хранимку (оптимизация запроса) и ничего не сломалось... А если, например, микросервис авторизации какой-нибудь выкючить/сломать и все пользователи не могут войти в систему, вот тебе и модульность... Дак в чем все таки принципиальное отличие?
@dev_zloi
@dev_zloi 4 жыл бұрын
Что вы подразумеваете по словом двухзвенка? Модульность характеризует независимую разработку и развертывание этих самых модулей. И понятное дело что каждый модуль играет разную роль в работоспособности системы, и скорее всего без одного модуля система не будет работать должным образом, но все же это модули и они обладают свойствами которые я написал выше.
@BASic_37
@BASic_37 4 жыл бұрын
@@dev_zloi В данном ПО отсутствует сервер приложений. Клиентское десктоп приложение работает напрямую с бд, причем основная бизнес логика вынесена в бд(про гениальность решения не будем...). В данном случае слой бд не зависит от клиента и с ней теоретически может работать другой клиент. Это модульность?
@dev_zloi
@dev_zloi 4 жыл бұрын
@@BASic_37 скорее всего в данном случае нет. Если приложении изначально разрабатываллсь не как модульное, то это монолит.
@BASic_37
@BASic_37 4 жыл бұрын
@@dev_zloi т.е. модульность это на уровне ощущения?
@S0ERDEVS
@S0ERDEVS 4 жыл бұрын
А при чем тут отказоустойчивость и модульность? Модульность - это про организацию совместной работы большого количества команд, независимое развертывание и тестирование, горизонтальное масштабирование.
@sixaxisization
@sixaxisization 4 жыл бұрын
Жаль что про встраиваемые системы речь не идет :(
@redserjogha
@redserjogha 4 жыл бұрын
Норм ликбез.
@feoktant
@feoktant 3 жыл бұрын
Кардинально неверное объяснение монолита. Разделение на монолит и SOA в первую очередь означало одну простую вещь - монолит отвечает за фронтэнд, а сервисы - нет. Старые java приложения с апплетами, jsp; Python Django, RubyOnRails вот типичные инструменты для монолитов. С приходом SOA, а в последствии и microservices, фронт в вебе начали рисовать не на сервере, а на клиенте, и произошел бум ajax. Есть жесткие связи, или нет - да и микросервис можно в спагетти превратить. Это квалификация разработчика. Модульный монолит лишь подразумевает, что это такой же монолит, отрисовывающий фронт, но на модулях. Хватит говорить о жестких связях. У вас может быть Джанго приложение, в котором будет N аппликейшионов, но общаться все эти аппы будут через сообщения по кафке. Слабо связанные компоненты, никак друг от друга не зависящие. А благодаря темплейтам - всё равно монолит, хоть и модульный. Мода жесткие связи называть монолиты пришла с хайпом вокруг микросервисов. SOLID, DDD, куча других практик как писать хороший жестко не связанный код был до этого десятилетия. Но нужен был хайп
@S0ERDEVS
@S0ERDEVS 3 жыл бұрын
Судя по всем у вас "фронтенд головного мозга", очень распространено среди людей, которые не застали программирование до появления веба. "Монолит - это приложение, которое отвечает за фронт"? Эм... надо запомнить этот тезис.
@feoktant
@feoktant 3 жыл бұрын
@@S0ERDEVS может быть и фронтэнд головного мозга) нужно заменить "фронтэнд" на "клиент", и всё станет на свои места. Клиент же может быть на чем угодно. Это разделение так же есть и в ядре ОС, и в компиляторе. И мне абсолютно непонятно как термин утратил первоначальный смысл.
@S0ERDEVS
@S0ERDEVS 3 жыл бұрын
@Anton Feoktistov "монолит отвечает за клиент"? Т.е. только клиент-серверные решения могут быть монолитными? Тогда с чего микросервисы не монолитны, у них нет клиента? Может все же откажетесь от этого тезиса? Очевидно же, что глупость сказали.
@feoktant
@feoktant 3 жыл бұрын
@@S0ERDEVS наоборот, клиент-сервисные решения по определению не являются монолитом. Томас Эрл, в его книге о SOA, с этого начинает, что есть сервисы и они выставляют АПИ, чаще всего rest или soap(книга 2005-го года). Монолит же не выставляет АПИ для процессинга данных. Как самый яркий пример я привел вебсервисы, которые сами рисуют view - django, ror, jsp, java applets. С приходом микросервисов монолит обрел негативный окрас, и начали говорить о жесткой структуре. Хотя до этого 10 лет все говорили о layers, solid, di и ddd, где и рассказывали как жесткости избежать
@S0ERDEVS
@S0ERDEVS 3 жыл бұрын
@Anton Feoktistov, чем дальше, тем веселее. Если ROR приложение выдало HTML, то оно монолит, если JSON, то нет?
@qr46654
@qr46654 4 жыл бұрын
Как можно "плавно" перейти от монолита к микросервисам?
@qr46654
@qr46654 4 жыл бұрын
@Румяные Блины микросервис, в данном контексте - это не маленький сервер или сервис с маленьким количеством услуг. "Микросервисы" - это порождение проблемы компилируемых языков (Java, c++, ...), а точнее способ снижения количества кода, который необходимо перекомпиллировать, чтобы внести изменения и быстрее вновь запустить приложение. В мире интерпретируемых языков типа рнр - такой проблемы просто не существует. Только сама перекомпиляция может занимать много времени
@oshyshko
@oshyshko 3 жыл бұрын
скорость 1.75
@_RUDE_
@_RUDE_ 4 жыл бұрын
Чувак не вдавливай очки себе в лицо! Перед людьми все таки выступаешь!
@S0ERDEVS
@S0ERDEVS 4 жыл бұрын
Вообще-то перед камерой. Но поржал с твоего коммента.
@dmitrypichugin7449
@dmitrypichugin7449 4 жыл бұрын
Очень достойно. Так просто описать такие сложные понятия, дорогого стоит.
@Denis.Zhelnerovich
@Denis.Zhelnerovich 4 жыл бұрын
Спасибо за полезную информацию, что бы посоветовал почитать на эту тему?
@socketam4524
@socketam4524 Жыл бұрын
Действительно очень хорошее объяснение, по делу и с реальными примерами. Спасибо!
@Адриан-у4т
@Адриан-у4т 3 жыл бұрын
И монолит можно проектировать так, чтобы выделение отдельных сервисов в будущем, если это потребуется, доставляло минимум боли. И жесткие связи и зависимости внутри монолитной системы можно успешно ограничивать (фасады, стратегии, Protected Variations/OCP, инверсия зависимостей). Другое дело, что у программистов зачастую недостаточно квалификации, чтобы так проектировать архитектуру. И недостаточно дисциплины, чтобы следовать всем необходимым правилам. А должность системного архитектора (тот кто и должен следить за всем этим) у нас почему-то не прижилась.
@yaolegoleynik
@yaolegoleynik 4 жыл бұрын
Очень много умных слов монолит, архитектура, микросервисы и т.д. а тема монолита не раскрыта... За попытку объяснить 5, за объяснение 2 :(
@feoktant
@feoktant 3 жыл бұрын
Что скажете о модульных монолитах на уровне кода?
@fpv_am
@fpv_am 4 жыл бұрын
10:20 ЖИЗА ЖИЗА ЖИИИИИИИИИИИИЗАААААААААААААААААА
@user-10248
@user-10248 4 жыл бұрын
AntiBlog неистово плюсую. Потом ещё выясняется что разделили неправильно. И это обрастает костылями для того, чтобы это неправильное разделение компенсировать
@ME-ls9de
@ME-ls9de 4 жыл бұрын
Что значит "трех-слойное приложение"?
@ME-ls9de
@ME-ls9de 4 жыл бұрын
Апи-сервис-работа с бд?
@crutchmaster9637
@crutchmaster9637 4 жыл бұрын
Что значит "трёх"? Программисты не знают такого. Есть многослойное приложение. Это понятно.
@grigorii9019
@grigorii9019 3 жыл бұрын
+
@компаниядоставкиЕдадомой.ру
@компаниядоставкиЕдадомой.ру 4 жыл бұрын
Дык, а что ж такое монолитная архитектура и модульная.
@oqqa5295
@oqqa5295 4 жыл бұрын
Акторная модель в коде считается монолитом?
@toperarley7777
@toperarley7777 4 жыл бұрын
Ничего не понял, но это было круто.
@ЛАКЕТОР
@ЛАКЕТОР 4 жыл бұрын
На скорости 1.25, самое оно)
@ostrov11
@ostrov11 4 жыл бұрын
Всему своё время и место
Проектирую архитектуру чата
16:28
Help Me Celebrate! 😍🙏
00:35
Alan Chikin Chow
Рет қаралды 26 МЛН
Watermelon magic box! #shorts by Leisi Crazy
00:20
Leisi Crazy
Рет қаралды 8 МЛН
Денис Цветцих - Модульный монолит вместо микросервисов: Как, когда и зачем
1:00:37
DotNext — конференция для .NET‑разработчиков
Рет қаралды 6 М.
G.R.A.S.P | шаблоны проектирования
12:09
Help Me Celebrate! 😍🙏
00:35
Alan Chikin Chow
Рет қаралды 26 МЛН