Декомпозиция предметной области (на примере магазина)

  Рет қаралды 44,699

Sergey Nemchinskiy

Sergey Nemchinskiy

Күн бұрын

В этот раз я рассказываю более подробно о декомпозиции простого веб-магазина.
Полный плейлист: • Основы архитектуры при...
Учебный центр: bit.ly/2zw59Jj

Пікірлер: 73
@basimal-jawahery70
@basimal-jawahery70 4 жыл бұрын
Спасибо! Метод быть пнутой у табуретки, вместо пнуть у человека. Прям как инсайт, осознал причину многих своих трудностей этапа проектирования. всё встало на свои места. Спасибо! :)
@SergeyNemchinskiy
@SergeyNemchinskiy 4 жыл бұрын
Отлично! Я сам долго в это въезжал по началу
@kolob204
@kolob204 3 жыл бұрын
@@SergeyNemchinskiy а метод "быть пнутой" делегирует выполнение человеку - "пнуть" ? Ибо участие объекта "человек" в этом процессе должно быть зафиксировано, с точки зрения модели реального мира ))
@revetastogne
@revetastogne 3 жыл бұрын
или "пнуться человеком"
@nikudaorg
@nikudaorg 2 жыл бұрын
Спасибо, это просто гениальная лекция! Почему то на Ютубе почти нет видео на подобные темы - только читай книги, учись в универе или набирайся опыта в реальной компании
@Dimon-pokemon2249
@Dimon-pokemon2249 Жыл бұрын
а что плохого в книгах или работы в реальной компании?
@СветланаМ-з6о
@СветланаМ-з6о 3 жыл бұрын
God object и метод табуретки "быть пнутой" - это прекрасно и на самом деле многое объясняет, спасибо!
@fakeprince3025
@fakeprince3025 9 жыл бұрын
По поводу поднятой шумихи о качестве звука и видео: были проблемы в первом видео у вас с отключением звука во время пауз вашего рассказа, действительно не совсем удобно было слушать и казалось что будто пропускаются слова, но это вы уже исправили. Во всем остальном качество звука и видео, а так же дикция и предоставление материала на вполне достойном уровне для видео лекций. Если вам ребята не нравится качество звука или микрофон Сергея, скиньтесь и подарите ему хороший студийный микрофон, я думаю он это заслужил) За лекции большое спасибо, тема действительно интересная и сложная, жду с нетерпением продожения)
@fakeprince3025
@fakeprince3025 9 жыл бұрын
Ага Free To Play RPG "Байки по Java"))) А с женой согласен, да и "зрители" обнаглевшие пошли, мало им того что человек личное время тратит, что бы сделать качественный курс, так еще им и стерео звук подавай, скоро наверно 3д картинку просить будут))
@nikulin_vrn
@nikulin_vrn Жыл бұрын
@@fakeprince3025 Привет из 2023 - требуют :D
@НаталіяБурдейна-щ9г
@НаталіяБурдейна-щ9г 9 жыл бұрын
Добрый день, Сергей! Огромное спасибо за видео! Если разместите ссылку "поблагодарить денежным переводом" - думаю что как минимум на микрофон, о котором некоторые все время говорят, сразу получится собрать. У меня кстати к звуку претензий нет - все отлично. И, не смотря на отсутствие проблем со звуком, денежную благодарность я бы с удовольствием отправила. Есть у меня некоторая "добавка" к объяснению про группы и их вложенности - если заранее определить уровень вложенности групп товаров, то в дальнейшем нельзя будет добавить еще один уровень, не переписывая уже написанное. Т.е. при такой реализации теряется гибкость и масштабируемость. Извините, если "добавка" не в тему.
@PuHLiY92
@PuHLiY92 3 жыл бұрын
Спасибо за потраченное Вами время, очень интересно и информативно.
@ПавелОсипенко-ч2е
@ПавелОсипенко-ч2е 9 жыл бұрын
Ребята, то у вас в голове шумит ... мозг закипает :D Сергей - спасибо огромнейшее!
@ОлександрТищенко-ь2с
@ОлександрТищенко-ь2с 8 жыл бұрын
Всем привет. Я по поводу звука :). В начальных видео, когда Сергей ничего не говорил, то звук (шипение тишины) полностью затихал. Когда начинал говорить, то шум появлялся и это реально меня напрягало. В этом видео уже этого нету. Несмотря не это я благодарен автору за видео. Если кого-то не устраивает, то идите на платные курсы или купите хорошую аппаратуру и подарите Сергею. Он и так делает хорошее дело, что записывает такое видео. Спасибо!
@siriusdiamond
@siriusdiamond 8 жыл бұрын
по группам товаров - это дерево каждая запись имеет id каждая группа имеет родителя товар может иметь список из id групп
@levtolstoy425
@levtolstoy425 4 жыл бұрын
Супер лекция! Особенно понравилось, цитирую: "И так мы дойдём до Адама и Евы.", "God object", "И в этом классе мы и умрём!" 😂
@olek_tar
@olek_tar 9 жыл бұрын
Всё отлично! Спасибо! Продолжайте в том же духе!
@suchbaka1277
@suchbaka1277 8 жыл бұрын
-Не надо меня докомпозировать, я здесь хорошо сижу ©
@СергейШемшур-к9ъ
@СергейШемшур-к9ъ 9 жыл бұрын
Спасибо за видео. Со звуком все норм!
@goshmailbox
@goshmailbox 9 жыл бұрын
спасибо. видео как всегда замечательное. а вот звук. ну блин. может вам на телефон звуковую дорожку писать. всяко лучше должно быть. или попросить благодарных зрителей на микрофон скинуться.
@АртемДегтярьов-щ3ь
@АртемДегтярьов-щ3ь 9 жыл бұрын
Не понимаю почему у большинства из видео в видео проблемы со звуком. Мне все отлично слышно начиная с первого видео. Видео очень понравилось. Веселое :)
@sergionolastname6719
@sergionolastname6719 9 жыл бұрын
Слушайте смысл, а не отдельные слова, тогда норм звук, и отличный материал. Я даже когда прочитал комментарии, не понимаю, чем звук не нравиться.
@Dream1Lord
@Dream1Lord 9 жыл бұрын
В StarUML что бы написать Map необходимо запятую заменить точкой. Он не хочет рисовать там запятые и ругается из-за этого. Спасибо за видео!
@oleksandrromashko812
@oleksandrromashko812 5 жыл бұрын
Выбрав поле, в окне "Properties" (вне диаграмы, там где шрифт и стили) можно в поле "type" вручную вписать "Buyer, Cart". Тогда работает.
@gallaxos
@gallaxos 7 жыл бұрын
Спасибо за видео. Я недавно проходил обучение в большой компании и там подход к декомпозиции такой: нам давали задание построить графическую схему таблиц в БД вместе с их связями (ну понятное дело, что ориентируясь на функционал, что описан в ТЗ (станция технического обслуживания)) Потом мы это в Sql переводили, и потом функционал реализовывали. Вот сейчас думаю, что мы так делали только потому, что менторы прекрасно понимали дальнейший ход и этот этап (UML классов) о котором вы говорите в видео они просто пропустили. Или же это действительно другой подход к задачи декомпозиции?
@gallaxos
@gallaxos 7 жыл бұрын
Спасибо за ответ
@mashinostroitel
@mashinostroitel 4 жыл бұрын
Спасибо : ) КРУД видимо потому, что это аббревиатура и читается так как произносятся буквы :)
@kolob204
@kolob204 3 жыл бұрын
C - си, R - ар, U - ию, D ди = СИАРИЮДИ )))
@andriilogoshko8881
@andriilogoshko8881 9 жыл бұрын
Сергей, правильно ли я понимаю, что во взаимоотношениях между Cart и Shop нужно было использовать символ агрегации (ромб) вместо ассоциации (простая стрелочка)? Да, и в каких случаях возможна ассоциация без агрегации? Ведь для того, чтобы объект А вызвал у объекта Б какой-то метод, первый (как мне кажется) должен хранить в себе либо сам объект Б, либо его предка?
@maximyastrebov9569
@maximyastrebov9569 9 жыл бұрын
Андрей Логошко Когда мы передаём экземпляр объекта как параметр метода, мы же можем вызывать у него методы
@andriyvandam5978
@andriyvandam5978 10 ай бұрын
Ну дуже сумнівна штука насправді. Декомпозиція в тому вигляді в якому вона показана тут, це ніщо інше як спроба вгадати бізнес вимоги, що робити не дуже добре. Декомпозицію ,так би мовити, має дати нам клієнти у вигляді АС, а ми в свою чергу маємо намалювати архітектуру відповідно до АС, що і показано в відео. Буду радий критиці)
@КонстантинКонашенков-и2ф
@КонстантинКонашенков-и2ф 6 жыл бұрын
"меньше стрелок" наверное стоило назвать "меньшая связанность". И как результат части системы проще будет менять / заменять. К примеру реализацию BuyItem. P.s. а может стоит говорить про программирование на уровне интерфейсов, а не реализаций ?
@MS-fz3qc
@MS-fz3qc 9 жыл бұрын
Спасибо за видео. Сергей подскажите, между Shop и Bayer вы нарисовали связь Aggregation, может там лучше использовать Dependency?
@stanislavstashchuk711
@stanislavstashchuk711 4 жыл бұрын
Дякую!
@Mike19910711
@Mike19910711 4 жыл бұрын
Очень полезное видео. Спасибо)
@andrii-marynets
@andrii-marynets 9 жыл бұрын
Класне відео, слухаю в навушниках - ніяких проблем зі звуком. У мене є питання по ООП: багато де в приклад класу наводять Автомобіль, а от Audi A6 є екземпляром даного класу. Чи правдиве таке твердження? Я схиляюсь до думки що клас Автомобіль більше підходить в ролі інтерфейсу, оскільки автомобілі бувають різними(від форми і конструкції до способу пересування і тд). Тут доцільніше зробити клас AudiASeries(або взагалі Tesla) який успадковується від інтерфейсу Автомобіль. Чи правильно я думаю? І чи доцільно наводити як приклад класу - план будинку, а збудований будинок як екземпляр? Дякую
@burialstance
@burialstance 3 жыл бұрын
Серега ты такой оказывается такой красавчик)
@MegaL1oN
@MegaL1oN 9 жыл бұрын
Спасибо за видео, все легко и понятно. Мой вопрос немного не по теме. Сейчас представилась возможность попасть на практику в компанию, которая занимается разработкой приложений под Android. После успешного прохождения практики есть возможность начать работать в этой компании, но возникла дилема. Кроме Андроида также интересно направление Java EE. На сколько будет трудно в дальнейшем переключится с Андроида на Java EE?
@ДенисЧеб-м6ф
@ДенисЧеб-м6ф 2 жыл бұрын
Не могу понять как устроен класс Group, можно где ни будь посмотреть пример реализации этого класса?
@vladimirr.1260
@vladimirr.1260 Жыл бұрын
Да. Самое трудное в программировании - придумать названия сущностей (объектов, переменных, модулей, пакетов).
@olek_tar
@olek_tar 9 жыл бұрын
Мне кажется, что последние три видео - это байки не про Java, а про проектирование. Java там почти нет.
@maxlich9139
@maxlich9139 7 жыл бұрын
"И где здесь Джава?" (С) Сергей Немчинский
@AndreySvyat
@AndreySvyat 4 жыл бұрын
хуже можно только использовать часто в качестве типов полей, переменных и параметров Object
@brunkovsky
@brunkovsky 9 жыл бұрын
тю, блин. а я - то думал, что это я один из-за ограниченности ума зависаю над декомпозицией. оказывается, спецы тоже))) может, и я спец?
@АндрейКулагин-е1ш
@АндрейКулагин-е1ш 8 ай бұрын
Это же диаграмма классов а не модель предметной области получается
@Comfmore
@Comfmore 9 жыл бұрын
спасибо, очень познавательно :)
@Per4ik92
@Per4ik92 8 жыл бұрын
Чет не уловил, зачем в классе "Shop" поле "root (group)". Какую задачу оно решает?
@itforrest2990
@itforrest2990 2 жыл бұрын
Сергей тут такой молодой)
@ДимаГоликов-с6ш
@ДимаГоликов-с6ш 3 жыл бұрын
что за программа?
@sergeyshestakov4936
@sergeyshestakov4936 Жыл бұрын
СПС
@webcerebrium
@webcerebrium 9 жыл бұрын
блин действительно. звук - явное слабое звено ваших видео. Микрофон который у вас в кадре - не годится для youtube записей. Некачественный звук, звук с шумом, где нужно вслушиваться в расказчика - это действительно неуважение к зрителям. Любая USB моделька от Samson/Audio-Technica/Rode в диапазоне $150-200 позволит нормально убирать шум (даже если стоит рядом с системным блоком)
@helios8567
@helios8567 Жыл бұрын
вы такой упор ставите на правильный нейминг, а сами называете классы и поля супер-непонятно и неправильно с точки зрения смысла..
@nikolaiii3
@nikolaiii3 9 жыл бұрын
Первый смотрю!
@mikedastro2930
@mikedastro2930 Жыл бұрын
Фуххх блин !!!!!!!!!! Декомпозировать декомпозировать - сделать теоретический чертёж с данными ,и методами .... Блин декомпозировать )) ........
@azizxonzufarov7787
@azizxonzufarov7787 2 жыл бұрын
Хреновое обьяснение. Вот смотрите как выглядит алгоритм декомпозиции задач: kzbin.info/www/bejne/eJekmauubb6cr68 Лучшего не найдёте!
@tatyanayurchenko6840
@tatyanayurchenko6840 2 жыл бұрын
Как называется это программа в которой вы uml рисуете?
@tatyanayurchenko6840
@tatyanayurchenko6840 2 жыл бұрын
Я потом разглядела название на экране StarUML
@EugenePolischuk
@EugenePolischuk 2 жыл бұрын
Хуже неправильных имен это глобальные константы которые очень давно живут в коде...
@basimal-jawahery70
@basimal-jawahery70 4 жыл бұрын
Мне кажется не нужно начинать декомпазицию предметной области с бизнес- уровня. Важно начать с useCase'ов, а именно useCase и для него class diagram, затем следующий useCase - class diagram. Тогда и легче не выйти за пределы скоупа и многие методы станут более адекватные. Например, никто не выбирает количество товара и потом нажимает кнопку добавить в корзину. Достаточно, например, корзине иметь метод добавить товар и корзина сама увеличивает счётчик.
@SergeyNemchinskiy
@SergeyNemchinskiy 4 жыл бұрын
в теории - да. но если вы заставите программистов писать юз кейсы - они вообще нефига делать не будут
@shamkhan2636
@shamkhan2636 3 жыл бұрын
14:50 Категория блин. Category
@ssurrokk
@ssurrokk 9 жыл бұрын
Респект и уважуха, продолжайте пож-та
@hamil1806
@hamil1806 8 жыл бұрын
very helpful thanks
@levtolstoy425
@levtolstoy425 4 жыл бұрын
Поначалу, я пытался как можно быстрее придумать названия членам класса. Но потом, после того, как код разростался, становилось сложно ориентироваться, т.к. не понимал по идентификаторам who is who. Теперь, больше уделяю времени для того, чтобы дать выразительной имя мэмберам.
@volodyakrajetsky8245
@volodyakrajetsky8245 9 жыл бұрын
Сергій часто так буває що весь код в кінці сходиться в контроллерах серверу, а ви говорили, що це поганий знак, як тут можна з цим боротися?
@indeoo_
@indeoo_ 7 жыл бұрын
Подскажите пожалуйста, зачем нам нужно делать объект cart который агрегирует buyitem, а потом cart маппировать с юзером через shop. Не проще ли просто в юзера засунуть List? Такая вариация подойдет, или в класе cart есть какой-то неочевидный для меня смысл?
Работа с Базами данных (DAO layer) в Java
50:08
Sergey Nemchinskiy
Рет қаралды 31 М.
How Strong is Tin Foil? 💪
00:26
Preston
Рет қаралды 121 МЛН
Bike Vs Tricycle Fast Challenge
00:43
Russo
Рет қаралды 98 МЛН
Шаблоны разработки. ООП и основы UML
59:13
Sergey Nemchinskiy
Рет қаралды 78 М.
Разбор кода DAO Layer на Java
30:06
Sergey Nemchinskiy
Рет қаралды 34 М.
Трехтировое (трехслойное) приложение
15:04
Sergey Nemchinskiy
Рет қаралды 22 М.
HTTP в 1С за 3 часа
3:23:54
IRONSKILLS - Курсы по 1С
Рет қаралды 446 М.
How Strong is Tin Foil? 💪
00:26
Preston
Рет қаралды 121 МЛН