Спасибо! Метод быть пнутой у табуретки, вместо пнуть у человека. Прям как инсайт, осознал причину многих своих трудностей этапа проектирования. всё встало на свои места. Спасибо! :)
@@SergeyNemchinskiy а метод "быть пнутой" делегирует выполнение человеку - "пнуть" ? Ибо участие объекта "человек" в этом процессе должно быть зафиксировано, с точки зрения модели реального мира ))
Спасибо, это просто гениальная лекция! Почему то на Ютубе почти нет видео на подобные темы - только читай книги, учись в универе или набирайся опыта в реальной компании
Всем привет. Я по поводу звука :). В начальных видео, когда Сергей ничего не говорил, то звук (шипение тишины) полностью затихал. Когда начинал говорить, то шум появлялся и это реально меня напрягало. В этом видео уже этого нету. Несмотря не это я благодарен автору за видео. Если кого-то не устраивает, то идите на платные курсы или купите хорошую аппаратуру и подарите Сергею. Он и так делает хорошее дело, что записывает такое видео. Спасибо!
По поводу поднятой шумихи о качестве звука и видео: были проблемы в первом видео у вас с отключением звука во время пауз вашего рассказа, действительно не совсем удобно было слушать и казалось что будто пропускаются слова, но это вы уже исправили. Во всем остальном качество звука и видео, а так же дикция и предоставление материала на вполне достойном уровне для видео лекций. Если вам ребята не нравится качество звука или микрофон Сергея, скиньтесь и подарите ему хороший студийный микрофон, я думаю он это заслужил) За лекции большое спасибо, тема действительно интересная и сложная, жду с нетерпением продожения)
Ага Free To Play RPG "Байки по Java"))) А с женой согласен, да и "зрители" обнаглевшие пошли, мало им того что человек личное время тратит, что бы сделать качественный курс, так еще им и стерео звук подавай, скоро наверно 3д картинку просить будут))
Добрый день, Сергей! Огромное спасибо за видео! Если разместите ссылку "поблагодарить денежным переводом" - думаю что как минимум на микрофон, о котором некоторые все время говорят, сразу получится собрать. У меня кстати к звуку претензий нет - все отлично. И, не смотря на отсутствие проблем со звуком, денежную благодарность я бы с удовольствием отправила. Есть у меня некоторая "добавка" к объяснению про группы и их вложенности - если заранее определить уровень вложенности групп товаров, то в дальнейшем нельзя будет добавить еще один уровень, не переписывая уже написанное. Т.е. при такой реализации теряется гибкость и масштабируемость. Извините, если "добавка" не в тему.
спасибо. видео как всегда замечательное. а вот звук. ну блин. может вам на телефон звуковую дорожку писать. всяко лучше должно быть. или попросить благодарных зрителей на микрофон скинуться.
Не понимаю почему у большинства из видео в видео проблемы со звуком. Мне все отлично слышно начиная с первого видео. Видео очень понравилось. Веселое :)
Класне відео, слухаю в навушниках - ніяких проблем зі звуком. У мене є питання по ООП: багато де в приклад класу наводять Автомобіль, а от Audi A6 є екземпляром даного класу. Чи правдиве таке твердження? Я схиляюсь до думки що клас Автомобіль більше підходить в ролі інтерфейсу, оскільки автомобілі бувають різними(від форми і конструкції до способу пересування і тд). Тут доцільніше зробити клас AudiASeries(або взагалі Tesla) який успадковується від інтерфейсу Автомобіль. Чи правильно я думаю? І чи доцільно наводити як приклад класу - план будинку, а збудований будинок як екземпляр? Дякую
Мне кажется не нужно начинать декомпазицию предметной области с бизнес- уровня. Важно начать с useCase'ов, а именно useCase и для него class diagram, затем следующий useCase - class diagram. Тогда и легче не выйти за пределы скоупа и многие методы станут более адекватные. Например, никто не выбирает количество товара и потом нажимает кнопку добавить в корзину. Достаточно, например, корзине иметь метод добавить товар и корзина сама увеличивает счётчик.
Сергей, правильно ли я понимаю, что во взаимоотношениях между Cart и Shop нужно было использовать символ агрегации (ромб) вместо ассоциации (простая стрелочка)? Да, и в каких случаях возможна ассоциация без агрегации? Ведь для того, чтобы объект А вызвал у объекта Б какой-то метод, первый (как мне кажется) должен хранить в себе либо сам объект Б, либо его предка?
Спасибо за видео, все легко и понятно. Мой вопрос немного не по теме. Сейчас представилась возможность попасть на практику в компанию, которая занимается разработкой приложений под Android. После успешного прохождения практики есть возможность начать работать в этой компании, но возникла дилема. Кроме Андроида также интересно направление Java EE. На сколько будет трудно в дальнейшем переключится с Андроида на Java EE?
Спасибо за видео. Я недавно проходил обучение в большой компании и там подход к декомпозиции такой: нам давали задание построить графическую схему таблиц в БД вместе с их связями (ну понятное дело, что ориентируясь на функционал, что описан в ТЗ (станция технического обслуживания)) Потом мы это в Sql переводили, и потом функционал реализовывали. Вот сейчас думаю, что мы так делали только потому, что менторы прекрасно понимали дальнейший ход и этот этап (UML классов) о котором вы говорите в видео они просто пропустили. Или же это действительно другой подход к задачи декомпозиции?
"меньше стрелок" наверное стоило назвать "меньшая связанность". И как результат части системы проще будет менять / заменять. К примеру реализацию BuyItem. P.s. а может стоит говорить про программирование на уровне интерфейсов, а не реализаций ?
Ну дуже сумнівна штука насправді. Декомпозиція в тому вигляді в якому вона показана тут, це ніщо інше як спроба вгадати бізнес вимоги, що робити не дуже добре. Декомпозицію ,так би мовити, має дати нам клієнти у вигляді АС, а ми в свою чергу маємо намалювати архітектуру відповідно до АС, що і показано в відео. Буду радий критиці)
Подскажите пожалуйста, зачем нам нужно делать объект cart который агрегирует buyitem, а потом cart маппировать с юзером через shop. Не проще ли просто в юзера засунуть List? Такая вариация подойдет, или в класе cart есть какой-то неочевидный для меня смысл?
Поначалу, я пытался как можно быстрее придумать названия членам класса. Но потом, после того, как код разростался, становилось сложно ориентироваться, т.к. не понимал по идентификаторам who is who. Теперь, больше уделяю времени для того, чтобы дать выразительной имя мэмберам.
блин действительно. звук - явное слабое звено ваших видео. Микрофон который у вас в кадре - не годится для youtube записей. Некачественный звук, звук с шумом, где нужно вслушиваться в расказчика - это действительно неуважение к зрителям. Любая USB моделька от Samson/Audio-Technica/Rode в диапазоне $150-200 позволит нормально убирать шум (даже если стоит рядом с системным блоком)
Спасибо! Метод быть пнутой у табуретки, вместо пнуть у человека. Прям как инсайт, осознал причину многих своих трудностей этапа проектирования. всё встало на свои места. Спасибо! :)
Отлично! Я сам долго в это въезжал по началу
@@SergeyNemchinskiy а метод "быть пнутой" делегирует выполнение человеку - "пнуть" ? Ибо участие объекта "человек" в этом процессе должно быть зафиксировано, с точки зрения модели реального мира ))
или "пнуться человеком"
Супер лекция! Особенно понравилось, цитирую: "И так мы дойдём до Адама и Евы.", "God object", "И в этом классе мы и умрём!" 😂
God object и метод табуретки "быть пнутой" - это прекрасно и на самом деле многое объясняет, спасибо!
Спасибо, это просто гениальная лекция! Почему то на Ютубе почти нет видео на подобные темы - только читай книги, учись в универе или набирайся опыта в реальной компании
а что плохого в книгах или работы в реальной компании?
Спасибо за потраченное Вами время, очень интересно и информативно.
Ребята, то у вас в голове шумит ... мозг закипает :D
Сергей - спасибо огромнейшее!
Всем привет. Я по поводу звука :). В начальных видео, когда Сергей ничего не говорил, то звук (шипение тишины) полностью затихал. Когда начинал говорить, то шум появлялся и это реально меня напрягало. В этом видео уже этого нету. Несмотря не это я благодарен автору за видео. Если кого-то не устраивает, то идите на платные курсы или купите хорошую аппаратуру и подарите Сергею. Он и так делает хорошее дело, что записывает такое видео. Спасибо!
Всё отлично! Спасибо! Продолжайте в том же духе!
По поводу поднятой шумихи о качестве звука и видео: были проблемы в первом видео у вас с отключением звука во время пауз вашего рассказа, действительно не совсем удобно было слушать и казалось что будто пропускаются слова, но это вы уже исправили. Во всем остальном качество звука и видео, а так же дикция и предоставление материала на вполне достойном уровне для видео лекций. Если вам ребята не нравится качество звука или микрофон Сергея, скиньтесь и подарите ему хороший студийный микрофон, я думаю он это заслужил) За лекции большое спасибо, тема действительно интересная и сложная, жду с нетерпением продожения)
Ага Free To Play RPG "Байки по Java"))) А с женой согласен, да и "зрители" обнаглевшие пошли, мало им того что человек личное время тратит, что бы сделать качественный курс, так еще им и стерео звук подавай, скоро наверно 3д картинку просить будут))
@@fakeprince3025 Привет из 2023 - требуют :D
Спасибо за видео. Со звуком все норм!
по группам товаров - это дерево
каждая запись имеет id
каждая группа имеет родителя
товар может иметь список из id групп
Добрый день, Сергей! Огромное спасибо за видео! Если разместите ссылку "поблагодарить денежным переводом" - думаю что как минимум на микрофон, о котором некоторые все время говорят, сразу получится собрать. У меня кстати к звуку претензий нет - все отлично. И, не смотря на отсутствие проблем со звуком, денежную благодарность я бы с удовольствием отправила. Есть у меня некоторая "добавка" к объяснению про группы и их вложенности - если заранее определить уровень вложенности групп товаров, то в дальнейшем нельзя будет добавить еще один уровень, не переписывая уже написанное. Т.е. при такой реализации теряется гибкость и масштабируемость. Извините, если "добавка" не в тему.
Респект и уважуха, продолжайте пож-та
-Не надо меня докомпозировать, я здесь хорошо сижу ©
Слушайте смысл, а не отдельные слова, тогда норм звук, и отличный материал. Я даже когда прочитал комментарии, не понимаю, чем звук не нравиться.
спасибо. видео как всегда замечательное. а вот звук. ну блин. может вам на телефон звуковую дорожку писать. всяко лучше должно быть. или попросить благодарных зрителей на микрофон скинуться.
Не понимаю почему у большинства из видео в видео проблемы со звуком. Мне все отлично слышно начиная с первого видео. Видео очень понравилось. Веселое :)
Очень полезное видео. Спасибо)
Серега ты такой оказывается такой красавчик)
В StarUML что бы написать Map необходимо запятую заменить точкой. Он не хочет рисовать там запятые и ругается из-за этого. Спасибо за видео!
Выбрав поле, в окне "Properties" (вне диаграмы, там где шрифт и стили) можно в поле "type" вручную вписать "Buyer, Cart". Тогда работает.
Спасибо : ) КРУД видимо потому, что это аббревиатура и читается так как произносятся буквы :)
C - си, R - ар, U - ию, D ди = СИАРИЮДИ )))
Не могу понять как устроен класс Group, можно где ни будь посмотреть пример реализации этого класса?
Класне відео, слухаю в навушниках - ніяких проблем зі звуком.
У мене є питання по ООП: багато де в приклад класу наводять Автомобіль, а от Audi A6 є екземпляром даного класу. Чи правдиве таке твердження? Я схиляюсь до думки що клас Автомобіль більше підходить в ролі інтерфейсу, оскільки автомобілі бувають різними(від форми і конструкції до способу пересування і тд). Тут доцільніше зробити клас AudiASeries(або взагалі Tesla) який успадковується від інтерфейсу Автомобіль.
Чи правильно я думаю?
І чи доцільно наводити як приклад класу - план будинку, а збудований будинок як екземпляр?
Дякую
Спасибо за видео.
Сергей подскажите, между Shop и Bayer вы нарисовали связь Aggregation, может там лучше использовать Dependency?
Дякую!
Мне кажется не нужно начинать декомпазицию предметной области с бизнес- уровня. Важно начать с useCase'ов, а именно useCase и для него class diagram, затем следующий useCase - class diagram. Тогда и легче не выйти за пределы скоупа и многие методы станут более адекватные. Например, никто не выбирает количество товара и потом нажимает кнопку добавить в корзину. Достаточно, например, корзине иметь метод добавить товар и корзина сама увеличивает счётчик.
в теории - да. но если вы заставите программистов писать юз кейсы - они вообще нефига делать не будут
Сергей, правильно ли я понимаю, что во взаимоотношениях между Cart и Shop нужно было использовать символ агрегации (ромб) вместо ассоциации (простая стрелочка)? Да, и в каких случаях возможна ассоциация без агрегации? Ведь для того, чтобы объект А вызвал у объекта Б какой-то метод, первый (как мне кажется) должен хранить в себе либо сам объект Б, либо его предка?
Андрей Логошко
Когда мы передаём экземпляр объекта как параметр метода, мы же можем вызывать у него методы
Как называется это программа в которой вы uml рисуете?
Я потом разглядела название на экране StarUML
Спасибо за видео, все легко и понятно. Мой вопрос немного не по теме. Сейчас представилась возможность попасть на практику в компанию, которая занимается разработкой приложений под Android. После успешного прохождения практики есть возможность начать работать в этой компании, но возникла дилема. Кроме Андроида также интересно направление Java EE. На сколько будет трудно в дальнейшем переключится с Андроида на Java EE?
Сергій часто так буває що весь код в кінці сходиться в контроллерах серверу, а ви говорили, що це поганий знак, як тут можна з цим боротися?
спасибо, очень познавательно :)
Сергей тут такой молодой)
Спасибо за видео. Я недавно проходил обучение в большой компании и там подход к декомпозиции такой: нам давали задание построить графическую схему таблиц в БД вместе с их связями (ну понятное дело, что ориентируясь на функционал, что описан в ТЗ (станция технического обслуживания)) Потом мы это в Sql переводили, и потом функционал реализовывали.
Вот сейчас думаю, что мы так делали только потому, что менторы прекрасно понимали дальнейший ход и этот этап (UML классов) о котором вы говорите в видео они просто пропустили. Или же это действительно другой подход к задачи декомпозиции?
Спасибо за ответ
Чет не уловил, зачем в классе "Shop" поле "root (group)". Какую задачу оно решает?
"меньше стрелок" наверное стоило назвать "меньшая связанность".
И как результат части системы проще будет менять / заменять. К примеру реализацию BuyItem.
P.s. а может стоит говорить про программирование на уровне интерфейсов, а не реализаций ?
тю, блин. а я - то думал, что это я один из-за ограниченности ума зависаю над декомпозицией. оказывается, спецы тоже))) может, и я спец?
Ну дуже сумнівна штука насправді. Декомпозиція в тому вигляді в якому вона показана тут, це ніщо інше як спроба вгадати бізнес вимоги, що робити не дуже добре. Декомпозицію ,так би мовити, має дати нам клієнти у вигляді АС, а ми в свою чергу маємо намалювати архітектуру відповідно до АС, що і показано в відео.
Буду радий критиці)
very helpful thanks
что за программа?
Да. Самое трудное в программировании - придумать названия сущностей (объектов, переменных, модулей, пакетов).
Подскажите пожалуйста, зачем нам нужно делать объект cart который агрегирует buyitem, а потом cart маппировать с юзером через shop. Не проще ли просто в юзера засунуть List? Такая вариация подойдет, или в класе cart есть какой-то неочевидный для меня смысл?
хуже можно только использовать часто в качестве типов полей, переменных и параметров Object
Это же диаграмма классов а не модель предметной области получается
Мне кажется, что последние три видео - это байки не про Java, а про проектирование. Java там почти нет.
"И где здесь Джава?" (С) Сергей Немчинский
Поначалу, я пытался как можно быстрее придумать названия членам класса. Но потом, после того, как код разростался, становилось сложно ориентироваться, т.к. не понимал по идентификаторам who is who. Теперь, больше уделяю времени для того, чтобы дать выразительной имя мэмберам.
СПС
14:50 Категория блин. Category
Первый смотрю!
блин действительно. звук - явное слабое звено ваших видео. Микрофон который у вас в кадре - не годится для youtube записей. Некачественный звук, звук с шумом, где нужно вслушиваться в расказчика - это действительно неуважение к зрителям.
Любая USB моделька от Samson/Audio-Technica/Rode в диапазоне $150-200 позволит нормально убирать шум (даже если стоит рядом с системным блоком)
вы такой упор ставите на правильный нейминг, а сами называете классы и поля супер-непонятно и неправильно с точки зрения смысла..
Хуже неправильных имен это глобальные константы которые очень давно живут в коде...
Хреновое обьяснение.
Вот смотрите как выглядит алгоритм декомпозиции задач:
ruclips.net/video/BfAhxx8YiyM/видео.html
Лучшего не найдёте!
Фуххх блин !!!!!!!!!! Декомпозировать декомпозировать - сделать теоретический чертёж с данными ,и методами .... Блин декомпозировать )) ........