Трехтировое (трехслойное) приложение

  Рет қаралды 22,326

Sergey Nemchinskiy

Sergey Nemchinskiy

Күн бұрын

Продолжаем обсуждение декомпозиции. В этот раз я остановился на очень важной концепции - трехуровневом (трехзвеном, трехлеерном) приложении
Полный плейлист: • Основы архитектуры при...

Пікірлер: 47
@DmitrijRuss
@DmitrijRuss 9 жыл бұрын
Благодарю за видео, Сергей. Вас приятно слушать - у вас приятный голос и смотреть, поскольку видно, что вы получаете от этого удовольствие. Успехов вам!
@DmitrijRuss
@DmitrijRuss 9 жыл бұрын
***** любите рок - это хорошо. У вас есть аудиозаписи музыки, которую играла ваша группа, аудиозаставка ваших рук дело?
@b.g.5106
@b.g.5106 4 жыл бұрын
Привет из 2020 г . Спасибо за это видео
@andyanderson222
@andyanderson222 Жыл бұрын
Очень хорошее объяснение. Большое спасибо!
@alexandrbaranezky3029
@alexandrbaranezky3029 9 жыл бұрын
Дякую тобi Сергій. Дуже цікаво...
@ИмяФамилия-у2у4л
@ИмяФамилия-у2у4л 9 жыл бұрын
Спасибо за видео, Сергей! Вопрос - а разве эта "Трехтировая архитектура", не есть чистокровное MVC?
@rudolfsikorsky7900
@rudolfsikorsky7900 3 жыл бұрын
@@FreemanFromSteppe MVC - это Model-View-Controller. Очень понятно объяснено здесь: kzbin.info/www/bejne/kGrHp42vetSZd8k
@ConfidenceGold
@ConfidenceGold 2 жыл бұрын
Спасибо, прилетела более менее крупная задачка, смотрю и учусь. CRUD это не retrieve, a read)
@sergeyshestakov4936
@sergeyshestakov4936 Жыл бұрын
Спасибо
@venom5583
@venom5583 9 жыл бұрын
Внезапный переход с процедурного видео на обьектно-ориентированное :D
@scrsa
@scrsa 9 жыл бұрын
То есть в такой архитектуре нет места для хранимых процедур БД? (ну если конечно не вся бизнес логика на PL/SQL описана) А вообще хотелось бы узнать ваше мнение по поводу расположения бизнес логики в приложениях активно работающих с БД
@denyskrupenov2246
@denyskrupenov2246 5 жыл бұрын
Покороче и почаще это верно по всей видимости :)
@andrii-marynets
@andrii-marynets 9 жыл бұрын
розкажіть в якомусь із наступних відео про TDD в ентерпайзі та взагалі
@GMByteJavaTM
@GMByteJavaTM 9 жыл бұрын
Класс! Спасибо, очень интересно! :-)
@GMByteJavaTM
@GMByteJavaTM 9 жыл бұрын
***** Спасибо за ваш труд! Продолжайте в том же духе :-)
@GMByteJavaTM
@GMByteJavaTM 9 жыл бұрын
***** :-)
@user-not_defined
@user-not_defined 6 жыл бұрын
Прекрасно объясняет
@TheHNKNTOS
@TheHNKNTOS 9 жыл бұрын
Сейчас всё прекрасно слышно. В прошлых видео были проблемы со звуком при записи экрана, наверное это было шумоподавление.
@sergiuszlech8607
@sergiuszlech8607 4 жыл бұрын
Помимо зачетного содержания видео, хотел бы отдельно лайкнуть музыкальное оформление. Бодрит..
@maxlich9139
@maxlich9139 7 жыл бұрын
12:00 что-то не понял: так минуя бизнес-логику, напрямую, или нет?
@lexzcq
@lexzcq 9 жыл бұрын
У меня появился такой вопрос - а как собственно реализуется в коде взаимодействие этих слоёв? Тоесть банально используются геттеры и сеттеры или же всё таки как-то иначе?
@MichioSempai
@MichioSempai 5 жыл бұрын
Обычно элементы этого приложения разнесены физически. А значит их связь происходит через какой нибудь Rest API
@algotua
@algotua 9 жыл бұрын
Классные видео. Еще бы микрофон выносной был, вообще бы было замечательно :)
@cgstudio2010
@cgstudio2010 9 жыл бұрын
***** Думаю здесь замечание не на громкость звука, а на качество :-)
@algotua
@algotua 9 жыл бұрын
***** Слышно, но копеечная петличка сделает качество звука намного лучше.
@antaki93
@antaki93 Жыл бұрын
Насколько я знаю, трёхуровневая архитектура описывает несколько(!) приложений, разнесённых физически и взаимодействующих по сети (см. хотя бы Википедию). А вы здесь описываете шаблон построения одного(!) приложения. Т.е., по сути, под ваше описание скорее подходит какой-нибудь MVP.
@nmodonov
@nmodonov 2 жыл бұрын
Привет 2021. MVC выросло из этой же концепции? Или это она и есть? Или MVC существовала и в 2015, а три уровня - это про другое?
@MrRagday
@MrRagday 2 жыл бұрын
мвс появилось в 79 году. трехслойная архитектура появилась позже.
@ronrcf
@ronrcf 9 жыл бұрын
Спасибо за видео такие байки для меня очень актуальны! У меня вопрос про JPA (Java Pesistence API). Считаете ли вы JPA слоем DAO? Если нет не могли бы вы пояснить почему. Я пришел к выводу что таки ДА JPA это оно самое DAO и есть. И вот как я к этому мнению пришел. Постигаю Java опытом.=) Пишу небольшой проект интернет магазина. Взял Servlet API и JPA. Решил начать работу с DAO слоя. DAO объектах стал писать логику JPA запросов и в итоге понял что мои DAO будут пополнятся методами определяющими конкретные запросы что отдает неприятным душком.) Решил отрефакторить) из чего стала получатся какая-то обертка над JPA и Creteria API что тоже отдает не очень.) В итоге пришел к выводу что JPA и есть DAO слой а логику запросов стоит вынести в бизнес сущности манипулирующие коллекциями объектов.
@lexzcq
@lexzcq 9 жыл бұрын
Сергей Кондратьев а разве JPA не есть частный случай (на уровне языка) реализации DAO концепции? Кстати, а почему вы начали с DAO слоя, а не со слоя Domain? Ведь в именно в нём реализуется все бизнес процессы, а DAO и UI слои отвечают за "техническую поддержку" (фактически работу) самой бизнес логики реализованной как раз в Domain слое.
@ronrcf
@ronrcf 9 жыл бұрын
Похоже так и есть. Меня смущало то что в JPA нужно конструировать запрос как SQL. Мне казалось DAO должно состоять из методов получающих параметры для запросов и возвращающих бизнес сущности. В итоге JPA стал вторым SQL. А когда я попытался сделать DAO гибче получилась какая-то обертка над JPA. Цель проекта получить опыт использования различных API как в данной итерации это Servlet API и JPA.
@volodyakrajetsky8245
@volodyakrajetsky8245 9 жыл бұрын
Можеш розказати про потоки, асинхронність і взаємодію між рівнями 3-рівневої архітектури?
@volodyakrajetsky8245
@volodyakrajetsky8245 9 жыл бұрын
***** ну ти ж професіонал і тому, я прошу в тебе щоб ти якраз розказав про всю цю жесть, з точки зору досвідчиного дева, бо в "ентерпрайзі" це досить часто зустрічається.
@volodyakrajetsky8245
@volodyakrajetsky8245 9 жыл бұрын
значить тобі більше везе))
@HELLO_AGAIN
@HELLO_AGAIN 3 жыл бұрын
CRUD - Create Read Update Delete
@petroandriiets8842
@petroandriiets8842 9 жыл бұрын
Кто дислайк влепил? А ну по айпи его вычислять и адрес мне... :)
@petroandriiets8842
@petroandriiets8842 9 жыл бұрын
***** ага. Иван Головач ставит дислайки, скорее всего. :)))
@qr46654
@qr46654 4 жыл бұрын
Если правильно понял, то "бизнес-логика" должна размещаться в контроллере, но, например в статье про MVC, на Википедии ( ru.wikipedia.org/wiki/Model-View-Controller#Наиболее_частые_ошибки ), указано, что - это ошибочно и ее следует размещать в "модели". В MVP - бизнес-логика - в Presenter ( ru.wikipedia.org/wiki/Model-View-Presenter ). Где же размещать "бизнес логику" и почему?
@ЛёхаБодунов-б7ж
@ЛёхаБодунов-б7ж 4 жыл бұрын
Я джун, поэтому к моему ответу отнеситесь критически, если я сказал чушь - пусть опытные товарищи подскажут, где я неправ. MVC - это архитектурный паттерн, который отвечает за взаимодействие бизнес логики и пользовательского интерфейса. И он является надстройкой над трёхслойной моделью. View и Controller относится к UI, а всё остальное к Model. Задача View состоит в представлении интерфейса для пользователя, будь то отрисовка со всякими анимациями или что-то ещё. Больше она ничем не занимается. Контроллер же отвечает за взаимодействие пользователя с бизнес-логикой. Никогда не использовал MVC, так что я могу быть не прав. В MVP бизнес логика не находится в презентере, он отвечает за представление, и в нём находится только логика непосредственно интерфейса, он управляет VIew, туда приходит пользовательский ввод, он же обеспечивает взаимодействие с Model. Допустим ваше приложение считает сколько калорий вы получили, сколько потратили, следит за здоровьем и всё в таком духе. Убрали View Controller или View Presenter, перешли например на MVVM, переписали под другой фреймворк, дизайнер сделал полностью новый дизайн. Бизнес логика не изменилась. Приложение по-прежнему считает калории и следит за вашим здоровьем. Данные точно так же сохраняются в бд и загружаются на облако. Надеюсь понятно всё объяснил и нигде не ошибся.
@ЛёхаБодунов-б7ж
@ЛёхаБодунов-б7ж 4 жыл бұрын
Хотя мне кажется, Сергей уже ответил на этот вопрос в своём видео, но я этого не видел.
@aset2335
@aset2335 9 жыл бұрын
Знаменитый "китаец" Yong Mook Kim кореец
@voksus
@voksus 7 жыл бұрын
Видео хоть и не новое, но я как-то не понял откуда взялась новая интерпретация для CRUD? (где-то с 10й минуты видео) Wiki об этом использует другие слова. Сокр. от англ.: Create, Read, Update, Delete - т.е. «создать, прочесть, обновить, удалить». Или это что-то новенькое у тебя?
@K8Abadzheva
@K8Abadzheva Жыл бұрын
Смотрю вам по рекомендации своего джава-ментора. Спасибо огромное!
@ostvsvl7712
@ostvsvl7712 4 жыл бұрын
Добрый день, расскажите пожалуйста, про архитектуру приложения расширяемого плагинами. Есть ли тонкости?
@SergeyNemchinskiy
@SergeyNemchinskiy 4 жыл бұрын
эм. что именно рассказать? У меня есть тренинг про энтерпрайз паттерны, там немного дофига материала. Вот он: foxminded.com.ua/enterprise-patterns-advanced-course/
@ostvsvl7712
@ostvsvl7712 4 жыл бұрын
@@SergeyNemchinskiy ​ Уточню вопрос. Есть клиентское приложение, функционал которого расширяется плагинами. Стоит ли в один плагин включать все три слоя: данные/логика/гуй, а основное приложение просто сервис для отображения гуев от плагинов+работа с запросами к серверу. Или стоит работать в другой конфигурации?
@TheKotopec
@TheKotopec 5 жыл бұрын
14:21 -☝
БЕЛКА СЬЕЛА КОТЕНКА?#cat
00:13
Лайки Like
Рет қаралды 2,2 МЛН
Running With Bigger And Bigger Lunchlys
00:18
MrBeast
Рет қаралды 104 МЛН
Создаем масштабируемую архитектуру
14:56
Декомпозиция, типовые решения
44:31
Sergey Nemchinskiy
Рет қаралды 37 М.
Многослойная архитектура - NTier vs NLayer
11:02
Как Стать Хорошим Программистом
Рет қаралды 6 М.
Шаблоны разработки ПО. Шаблоны GRASP
1:05:12
Sergey Nemchinskiy
Рет қаралды 31 М.
Основы архитектуры Java приложения. UML
27:33
Sergey Nemchinskiy
Рет қаралды 50 М.