Что такое архитектура приложения. Паттерны MVC, MVP, MVVM.

Данное видео - это краткая вводная лекция в архитектуру приложений. В нем я рассказываю о том, что такое архитектура, и какую роль она играет при развитии программного продукта. Так же пробежимся по паттернам проектирования, которые используются для построения пользовательского интерфейса, таким как:
Model-View-Controller
Model-View-Presenter
Model-View-ViewModel
Поддержать канал💰:
yoomoney.ru/to/410018856244871
Группа в Telegram:
t.me/ArhiTutorials
#ArhiTutorialsJava #ityoutubersru

Пікірлер: 95

  • @arhitutorials
    @arhitutorials3 жыл бұрын

    Сегодня у автора канала день рождения. Приму поздравления в любом виде)

  • @quantumtv9509

    @quantumtv9509

    3 жыл бұрын

    Сергей, с днём рождения! Желаю счастья, здоровья, успехов и творческого процветания! Продолжай выпускать видосы, мне они очень полезны! Спасибо за твой труд!)

  • @ramilskl

    @ramilskl

    3 жыл бұрын

    С Днем Рождения! Спасибо за Ваши труды! Всего наилучшего!

  • @Yornero

    @Yornero

    3 жыл бұрын

    С днем рождения, большое спасибо за ролики)

  • @user-yh8mj6pf9k

    @user-yh8mj6pf9k

    3 жыл бұрын

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

  • @user-zk9xo2hs6x

    @user-zk9xo2hs6x

    3 жыл бұрын

    С Днём Рождения)

  • @user-dt4bk5or6r
    @user-dt4bk5or6r Жыл бұрын

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

  • @user-oe1xo9xm3e
    @user-oe1xo9xm3e9 ай бұрын

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

  • @ivan_p3
    @ivan_p32 жыл бұрын

    За 15 минут узнал больше, чем за всякие курсы из 7 видео по 20 минут. Спасибо!

  • @user-ml1fd2em1b
    @user-ml1fd2em1b2 жыл бұрын

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

  • @LisTyrist
    @LisTyrist2 жыл бұрын

    Настолько всё понятно объяснил! НАКОНЕЦ-ТО поняла, где в схеме MVVM находится пользователь, а где бизнес-логика))) Спасибо!

  • @user-ow1he8qm2h
    @user-ow1he8qm2h3 жыл бұрын

    Очень полезные и понятные уроки. Спасибо за Ваш труд

  • @yushchenkoalexey
    @yushchenkoalexey3 жыл бұрын

    Очень полезное видео, как всегда, в общем :) Большое спасибо!

  • @vladimirmartynyuk5476
    @vladimirmartynyuk54762 жыл бұрын

    Большое спасибо и с прошедшим !) Видео очень помогло !)

  • @oigen1110
    @oigen11102 жыл бұрын

    Спасибо большое Сергей. Много слышал об этом, но не до конца всё понимал. Всё очень понятно и просто объяснено, как раз как и хотелось бы. Сразу стало понятнее. Теперь я увереннее могу отвечать на собеседовании что мне известно об этом.

  • @aaivanyutenko
    @aaivanyutenko Жыл бұрын

    Спасибо за короткое и предельно содержательное видео!

  • @ivanstrelka3448
    @ivanstrelka3448 Жыл бұрын

    Очень круто! Спасибо

  • @user-vj5fv6rv5u
    @user-vj5fv6rv5u6 ай бұрын

    Спасибо вам большое, очень интересное подробное объяснение. Рада, что нашла ваш канал!

  • @jiofef
    @jiofef Жыл бұрын

    Благодарю за видео, всё доходчиво объяснил

  • @ElChampi0
    @ElChampi0 Жыл бұрын

    Вот как раз и интересно обсуждать то, что не так очевидно

  • @Boyanist_so_stagem
    @Boyanist_so_stagem2 жыл бұрын

    Спасибо, все очень понятно.

  • @ereteysabler5997
    @ereteysabler59972 жыл бұрын

    Спасибо, очень было интересно

  • @withotsoul7252
    @withotsoul7252 Жыл бұрын

    Спасибо! Четкий видосик) Вы классный рассказчик!

  • @user-hk4ib3oo4y
    @user-hk4ib3oo4y Жыл бұрын

    Спасибо!

  • @mr.simiys6454
    @mr.simiys6454 Жыл бұрын

    Великолепный контент!

  • @bobrinoeschaste
    @bobrinoeschaste Жыл бұрын

    Нигде не мог найти толкового объяснения паттернов. Везде сухие статьи и вода. Спасибо автору!

  • @user-re8ux1lp5k
    @user-re8ux1lp5k2 жыл бұрын

    Ты очень круто обьясняешь архитектуру. Мне Java не интересна, но если будут еще подобные ролики, то подписка обеспечена

  • @user-mu4my8fq2e
    @user-mu4my8fq2e Жыл бұрын

    Моё почтение!

  • @VladimirDevyatoff
    @VladimirDevyatoff10 ай бұрын

    красаучег, четко пояснил) привет из Нюрнберга!

  • @kiriuskvartos6199
    @kiriuskvartos6199 Жыл бұрын

    С днем рождения!!!

  • @sloppyaerials4463
    @sloppyaerials44633 жыл бұрын

    Спасибо за хоткей с методами, не знал его

  • @AleksandrShtomov
    @AleksandrShtomov2 жыл бұрын

    Лучший видос по архитектурным паттернам. Еще бы ссылка на исходники, вообще б цены не было))

  • @user-ln8qx7wk9h
    @user-ln8qx7wk9h Жыл бұрын

    Самое понятное объяснение mvvm

  • @AlexDhyan
    @AlexDhyan Жыл бұрын

    лучшее видео про паттерны

  • @clickFinch
    @clickFinch2 жыл бұрын

    учу swift и очень долго искал подобный видос на тему архитектур. Супер понятно - спасибо!

  • @ihateidiots9484

    @ihateidiots9484

    2 жыл бұрын

    К архитектурам эти все mvc, mvp, mvvm не имеет никакого отношения

  • @drfclub777

    @drfclub777

    Жыл бұрын

    @@ihateidiots9484 а что имеет отношение?

  • @volodymyrholiev1187
    @volodymyrholiev11873 жыл бұрын

    С днём рождения! Всех благ)))

  • @user-om6xm3sw3b
    @user-om6xm3sw3b2 жыл бұрын

    Спасибо, достаточно понятное видео. Хотя было бы неплохо выделять или подсвечивать те команды/переменные и пр. элементы кода, о которых в даный момент идёт речь.

  • @auratarus
    @auratarus2 жыл бұрын

    спасибо, наглядно

  • @truth_Of_The_Life
    @truth_Of_The_Life3 жыл бұрын

    С днем рождения! Всех бла тебе! Раскажи о поисковых системах google и т.д. своим понятным языком. Принципы их работы. Ну а если что то покажешь на практике вообще огонь будет. Еще раз с днем рождения гений! Желаю тебе денег и здоровья!

  • @MrChelovek68

    @MrChelovek68

    2 жыл бұрын

    Блин,я не автор канала,но кхм. Поисковые краулеры кхм,если судить по примеру из шилдта и с хабра, просто ходят по ссылкам,качают страницы и сайты,а дальше сохраняют в бд. Сам сайт гугла это просто сайт,так же как и яндекса и любого другого поисковика. Помнится на хабре была статья как раз о написании поисковика. Для одного хабра в общем ушло около 600 гигов хранилища. Та и смысл,чтобы сделать поисковик для интернетов,нужно сначала скачать интернеты. Как то так. Надеюсь, люди поправят.

  • @RainbowJet1
    @RainbowJet19 ай бұрын

    Наконец-то я понял в чём отличие MVP от MVVM. Отличие в том, что при MVVM подписчиков(вьюх) может быть сколько угодно, и каждый раз когда от модели во ViewModel прилетает изменение, все подписанные вьюхи об этом уведомляются и изменяются. А при MVP каждый Презентор подписан на одну конкретную вьюху. Соответственно, если вьюх динамическое количество, то память засоряется кучей Презенторов на каждую вьюху. Если я правильно понял, получается MVVM лучше?

  • @ffjhfjidyfourho

    @ffjhfjidyfourho

    8 ай бұрын

    Чаво?! Непонятно нечаво! 😂

  • @dnr_8365
    @dnr_83655 ай бұрын

    В-деревья рулят не только в бд)

  • @olegzakhozhiy2133
    @olegzakhozhiy2133 Жыл бұрын

    Спасибо. Доходчиво объяснили суть и цель архитектурных паттернов, однако очень не хватило немного гайда. О том какова была компановка и иерархия каталогов и их файлов?! И какова структура стала после рефакторинга?! И немного подробней и наглядней пройтись по взаимодействию архитектурных разделений.

  • @user-dd9mm8kc6z
    @user-dd9mm8kc6zАй бұрын

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

  • @jurimudry62
    @jurimudry623 жыл бұрын

    С днём рождения!

  • @AA-ld2ix
    @AA-ld2ix9 ай бұрын

    Гигант

  • @Vladyslav_Sliusar
    @Vladyslav_Sliusar3 жыл бұрын

    Учу JavaScript, первое годное видео о MVC, MVP)

  • @Mr4oxide
    @Mr4oxide2 жыл бұрын

    Спасибо большое за объяснения, наконец-то нашел что-то краткое и четкое. По MVVM закрыли вопрос по поводу того, является ли гугловский компонент ViewModel тем же, что и термин ViewModel из Model-View-ViewModel, а также по поводу того, что компонент ViewModel может быть замещен на что-то свое. В общем, посмотрел с удовольствием, пользой и большим интересом. Спасибо!

  • @kafychannel
    @kafychannel3 жыл бұрын

    С днем рождения

  • @alice_wolfraider_gamdv
    @alice_wolfraider_gamdv2 жыл бұрын

    nice-nice 50

  • @user-yd9xy3rb4x
    @user-yd9xy3rb4x2 жыл бұрын

    Респект от iOS программиста

  • @mikhailshirokov8464
    @mikhailshirokov84642 жыл бұрын

    Спасибо за видео, много для себя почерпнул нового. Про MVP прошу уточнить: Presenter в приложении один или для каждого представления отдельный? Могу я допустим создать 1 Presenter, в котором будет сконцентрировано взаимодействие всех представлений и их связь с моделью (через коллбэки)? В этом случае модель и представления ничего не будут знать друг о друге, а общаться только через Presenter.

  • @arhitutorials

    @arhitutorials

    2 жыл бұрын

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

  • @mikhailshirokov8464

    @mikhailshirokov8464

    2 жыл бұрын

    ​@@arhitutorials, тогда другой вопрос: кто будет выбирать нужный презентер в нужный момент? Кто будет создавать презентеры и хранить ссылки на них? В случае с Android - Activity?

  • @arhitutorials

    @arhitutorials

    2 жыл бұрын

    @@mikhailshirokov8464 По разному бывает. В простейшем случае Activity. Но как тогда решить проблему пересоздания Activity при повороте экрана? Значит ссылку на презентер следует хранить где-то в другом месте. Создавать тоже можно по разному. Например, популярный вариант - внедрение зависимостей с помощью Dagger. Часто это все идет вместе с тестами. Если презентер не зависит от Андроид фреймворка, то его логику можно тестировать обычными юнит тестами. Отчасти ради этого весь этот MVP и затевается. Если для реализации паттерна MVVM есть общепринятые компоненты и гайдлайны от гугла, то MVP в этом смысле не стандартизирован. Сколько проектов с MVP столько и реализаций. Каждый делает в меру своего понимания.

  • @user-mx6uk6gi5e
    @user-mx6uk6gi5e3 жыл бұрын

    OK

  • @releyshic
    @releyshic2 күн бұрын

    а какой набор паттернов на бэкенде?

  • @user-yr9rq7we2n
    @user-yr9rq7we2n11 ай бұрын

    Существует некоторая путаница в понятиях. У разработчиков серверной части (бэк-энд) клиент-серверных приложений под MVC подразумевается MVP (MVC = MVP). А у разработчиков десктоп и мобильных приложений MVC и MVP это разные понятия.

  • @supfiger
    @supfiger2 жыл бұрын

    РефактОринг)

  • @dmitriykonopinskiy3793
    @dmitriykonopinskiy379310 ай бұрын

    а почему в MVC стрелка от View к контроллеру, а не от юзера к контроллеру?

  • @user-rj4lb2go8r
    @user-rj4lb2go8r2 жыл бұрын

    Здравствуйте. Если есть ссылка на репу с рассмотренными примерами добавьте, плз, в описание видео.

  • @arhitutorials

    @arhitutorials

    2 жыл бұрын

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

  • @user-ii9xe4pu6x
    @user-ii9xe4pu6x2 жыл бұрын

    А точно MVP, MVVM это именно архитектурный паттерн? Или может это презентационный?

  • @arhitutorials

    @arhitutorials

    2 жыл бұрын

    Это как вам угодно. Я бы сказал, что так как паттерн затрагивает несколько слоев приложения, то архитектурный. В эти слои входит также и слой презентации, по этому к презентации это тоже отношение имеет. Под слоями я подразумеваю эти: raw.githubusercontent.com/android10/Sample-Data/master/Android-CleanArchitecture/clean_architecture.png

  • @mrtwon8638
    @mrtwon86382 жыл бұрын

    3:22 Outofmemory программиста

  • @futureman8340
    @futureman83403 жыл бұрын

    честно я пытался, но ушел в трейдинг )) но программист - это ГОЛОВА!!! И даже прошел почти курс по java...

  • @arhitutorials

    @arhitutorials

    3 жыл бұрын

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

  • @futureman8340

    @futureman8340

    3 жыл бұрын

    @@arhitutorials ну это подход программиста... Тут надо руками... Когда сам а не робот довольно прибыльно...

  • @NotAFaken

    @NotAFaken

    3 жыл бұрын

    а я учу джаву) и трейдю))

  • @arhitutorials

    @arhitutorials

    3 жыл бұрын

    @@NotAFaken Трейдинг - это рулетка. Сегодня выиграл, завтра проиграл... И только казино стабильно в плюсе)

  • @NotAFaken

    @NotAFaken

    3 жыл бұрын

    @@arhitutorials именно поэтому и учу джаву)))))))

  • @sergekristal3100
    @sergekristal31002 жыл бұрын

    MVC был предложен 60 лет назад.

  • @_mirai
    @_mirai2 жыл бұрын

    4:20 заканчивается объяснение для чего это нужно

  • @uranproject
    @uranproject2 жыл бұрын

    апогей комьюнити андроид по архитектуре МВП... то ли чаю выпить, то ли повесится

  • @arhitutorials

    @arhitutorials

    2 жыл бұрын

    А что вас удивляет? Андроид - это фрондэнд, и типовая архитектура соответствующая: github.com/android10/Android-CleanArchitecture

  • @uranproject

    @uranproject

    2 жыл бұрын

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

  • @Mazaxict11
    @Mazaxict116 ай бұрын

    Вы грамотно объяснили паттерны, но ваш код уж извините пахнет плохо. Первый пример который вы показали для MVC ничего общего с этой архитектурой не имеет, ваши контроллеры это тоже view которые вы просто разбили на кусочки и потом напихали в одну Активити. Этот паттерн реализуется совсем не так 😊

  • @arhitutorials

    @arhitutorials

    6 ай бұрын

    Я считаю, что первичным является критерий принадлежности к определенному слою абстракции. Если объект содержит в себе логику презентации, то не важно как он устроен, по фэншую или нет, - это слой презентации. Слой презентации - это никак не может быть View, как не крути. Хорошо пахнет или плохо - это другой вопрос.

  • @alexkoty5877
    @alexkoty58777 ай бұрын

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

  • @ffh2000
    @ffh2000 Жыл бұрын

    Так и не понятно, зачем же разбивать один большой Activity на кучу классов. Так шаришься в одном файле, а так еще все то же самое по разным файлам + обвязки добавилось.

  • @drfclub777

    @drfclub777

    Жыл бұрын

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

  • @FyUajYpUlM39

    @FyUajYpUlM39

    Ай бұрын

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

  • @dekus80
    @dekus802 жыл бұрын

    Для тех кто так и не осилил родной язык: pattern - шаблон. Не Pattern проектирования (уж опредились с языком из двух), а шаблон проектирования. Не возможно слушать. P/S/ Для так же плохо владеющих и английским, Live это лайв, а не лив. Программист который даже говорить не смог научиться? мда...Андроид и java в 21 году, мда...

  • @arhitutorials

    @arhitutorials

    2 жыл бұрын

    "Шаблон" по английски - это template. А pattern означает "образец". Слово паттерн в русском языке есть и оно передает смысл английского оригинала лучше, чем слово шаблон. При чтении/написании кода нормально произносить слова в латинской транскрипции а не в английской. Потому что латинская транслитерация понятна всем, даже тем, кто не знает правил чтения английского языка. Java язык простой. Синтаксис элементарный, читается легко. Вы предлагаете новичков Котлином насиловать? Гуманнее надо быть.

  • @dekus80

    @dekus80

    2 жыл бұрын

    @@arhitutorials Бывает что одно слово можно перевести на несколько, не в курсе? Открой хотя бы google translate, перевод английский - русский и напиши слово pattern. Слово паттерн есть только у таких, которые не осилили русский, что переводится это с английского как шаблон. У них и гайды и т.д.

  • @arhitutorials

    @arhitutorials

    2 жыл бұрын

    @@dekus80 Вы дальше гугл транслейта языка не знаете? Слова имеют разный смысл. Например слова defence и protection - гугл транслейт переведет оба как защита. Хотя это два разных слова и смысл у них разный. Defence - соответствует русскому "оборона", а protection - да, защита кого-то от чего-то. Когда работаете с языками нужно вникать в реальный смысл слов, с которыми имеете дело, иначе так и будете глупости нести.

  • @MrChelovek68

    @MrChelovek68

    2 жыл бұрын

    Не срача для. Хотя я тот еще токсичный собеседник. Но паттерн реально переводится как шаблон. Это по сути то и есть шаблон. Мб неоднозначность связана со свойствами языков. Но опять же,паттерн -шаблон реализации того или иного действия🤔🤔 в остальном, та смысл цепляться к словам. Када суть интереснее и хорошо изложена,спасибо. Месяц назад я б душу дьяволу отдал за mvvm👌

  • @arhitutorials

    @arhitutorials

    2 жыл бұрын

    @@MrChelovek68 Ну тут вообще товарищ доказывал, что паттерн - это иностранное слово, а шаблон - это русское. Хотя на самом деле шаблон - это такое же самое заимствование, только из французского. Короче мрак...

  • @MrWellmos
    @MrWellmos Жыл бұрын

    Спасибо!

Келесі