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

Поделиться
HTML-код
  • Опубликовано: 1 ноя 2024

Комментарии • 73

  • @basimal-jawahery70
    @basimal-jawahery70 4 года назад +8

    Спасибо! Метод быть пнутой у табуретки, вместо пнуть у человека. Прям как инсайт, осознал причину многих своих трудностей этапа проектирования. всё встало на свои места. Спасибо! :)

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  4 года назад +3

      Отлично! Я сам долго в это въезжал по началу

    • @kolob204
      @kolob204 3 года назад +1

      @@SergeyNemchinskiy а метод "быть пнутой" делегирует выполнение человеку - "пнуть" ? Ибо участие объекта "человек" в этом процессе должно быть зафиксировано, с точки зрения модели реального мира ))

    • @revetastogne
      @revetastogne 3 года назад +1

      или "пнуться человеком"

  • @levtolstoy425
    @levtolstoy425 4 года назад +18

    Супер лекция! Особенно понравилось, цитирую: "И так мы дойдём до Адама и Евы.", "God object", "И в этом классе мы и умрём!" 😂

  • @СветланаМ-з6о
    @СветланаМ-з6о 3 года назад +2

    God object и метод табуретки "быть пнутой" - это прекрасно и на самом деле многое объясняет, спасибо!

  • @nikudaorg
    @nikudaorg 2 года назад +7

    Спасибо, это просто гениальная лекция! Почему то на Ютубе почти нет видео на подобные темы - только читай книги, учись в универе или набирайся опыта в реальной компании

    • @Dimon-pokemon2249
      @Dimon-pokemon2249 Год назад

      а что плохого в книгах или работы в реальной компании?

  • @PuHLiY92
    @PuHLiY92 3 года назад +2

    Спасибо за потраченное Вами время, очень интересно и информативно.

  • @ПавелОсипенко-ч2е
    @ПавелОсипенко-ч2е 9 лет назад +3

    Ребята, то у вас в голове шумит ... мозг закипает :D
    Сергей - спасибо огромнейшее!

  • @ОлександрТищенко-ь2с

    Всем привет. Я по поводу звука :). В начальных видео, когда Сергей ничего не говорил, то звук (шипение тишины) полностью затихал. Когда начинал говорить, то шум появлялся и это реально меня напрягало. В этом видео уже этого нету. Несмотря не это я благодарен автору за видео. Если кого-то не устраивает, то идите на платные курсы или купите хорошую аппаратуру и подарите Сергею. Он и так делает хорошее дело, что записывает такое видео. Спасибо!

  • @olek_tar
    @olek_tar 9 лет назад +5

    Всё отлично! Спасибо! Продолжайте в том же духе!

  • @fakeprince3025
    @fakeprince3025 9 лет назад +5

    По поводу поднятой шумихи о качестве звука и видео: были проблемы в первом видео у вас с отключением звука во время пауз вашего рассказа, действительно не совсем удобно было слушать и казалось что будто пропускаются слова, но это вы уже исправили. Во всем остальном качество звука и видео, а так же дикция и предоставление материала на вполне достойном уровне для видео лекций. Если вам ребята не нравится качество звука или микрофон Сергея, скиньтесь и подарите ему хороший студийный микрофон, я думаю он это заслужил) За лекции большое спасибо, тема действительно интересная и сложная, жду с нетерпением продожения)

    • @fakeprince3025
      @fakeprince3025 9 лет назад +1

      Ага Free To Play RPG "Байки по Java"))) А с женой согласен, да и "зрители" обнаглевшие пошли, мало им того что человек личное время тратит, что бы сделать качественный курс, так еще им и стерео звук подавай, скоро наверно 3д картинку просить будут))

    • @nikulin_vrn
      @nikulin_vrn Год назад

      @@fakeprince3025 Привет из 2023 - требуют :D

  • @СергейШемшур-к9ъ
    @СергейШемшур-к9ъ 9 лет назад +3

    Спасибо за видео. Со звуком все норм!

  • @siriusdiamond
    @siriusdiamond 8 лет назад +7

    по группам товаров - это дерево
    каждая запись имеет id
    каждая группа имеет родителя
    товар может иметь список из id групп

  • @НаталіяБурдейна-щ9г

    Добрый день, Сергей! Огромное спасибо за видео! Если разместите ссылку "поблагодарить денежным переводом" - думаю что как минимум на микрофон, о котором некоторые все время говорят, сразу получится собрать. У меня кстати к звуку претензий нет - все отлично. И, не смотря на отсутствие проблем со звуком, денежную благодарность я бы с удовольствием отправила. Есть у меня некоторая "добавка" к объяснению про группы и их вложенности - если заранее определить уровень вложенности групп товаров, то в дальнейшем нельзя будет добавить еще один уровень, не переписывая уже написанное. Т.е. при такой реализации теряется гибкость и масштабируемость. Извините, если "добавка" не в тему.

  • @ssurrokk
    @ssurrokk 9 лет назад +1

    Респект и уважуха, продолжайте пож-та

  • @suchbaka1277
    @suchbaka1277 8 лет назад +4

    -Не надо меня докомпозировать, я здесь хорошо сижу ©

  • @sergionolastname6719
    @sergionolastname6719 9 лет назад +8

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

  • @goshmailbox
    @goshmailbox 9 лет назад +1

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

  • @АртемДегтярьов-щ3ь
    @АртемДегтярьов-щ3ь 9 лет назад +4

    Не понимаю почему у большинства из видео в видео проблемы со звуком. Мне все отлично слышно начиная с первого видео. Видео очень понравилось. Веселое :)

  • @Mike19910711
    @Mike19910711 4 года назад

    Очень полезное видео. Спасибо)

  • @burialstance
    @burialstance 3 года назад

    Серега ты такой оказывается такой красавчик)

  • @Dream1Lord
    @Dream1Lord 9 лет назад +2

    В StarUML что бы написать Map необходимо запятую заменить точкой. Он не хочет рисовать там запятые и ругается из-за этого. Спасибо за видео!

    • @oleksandrromashko812
      @oleksandrromashko812 5 лет назад +3

      Выбрав поле, в окне "Properties" (вне диаграмы, там где шрифт и стили) можно в поле "type" вручную вписать "Buyer, Cart". Тогда работает.

  • @mashinostroitel
    @mashinostroitel 4 года назад +2

    Спасибо : ) КРУД видимо потому, что это аббревиатура и читается так как произносятся буквы :)

    • @kolob204
      @kolob204 3 года назад

      C - си, R - ар, U - ию, D ди = СИАРИЮДИ )))

  • @ДенисЧеб-м6ф
    @ДенисЧеб-м6ф 2 года назад

    Не могу понять как устроен класс Group, можно где ни будь посмотреть пример реализации этого класса?

  • @andrii-marynets
    @andrii-marynets 9 лет назад

    Класне відео, слухаю в навушниках - ніяких проблем зі звуком.
    У мене є питання по ООП: багато де в приклад класу наводять Автомобіль, а от Audi A6 є екземпляром даного класу. Чи правдиве таке твердження? Я схиляюсь до думки що клас Автомобіль більше підходить в ролі інтерфейсу, оскільки автомобілі бувають різними(від форми і конструкції до способу пересування і тд). Тут доцільніше зробити клас AudiASeries(або взагалі Tesla) який успадковується від інтерфейсу Автомобіль.
    Чи правильно я думаю?
    І чи доцільно наводити як приклад класу - план будинку, а збудований будинок як екземпляр?
    Дякую

  • @MS-fz3qc
    @MS-fz3qc 9 лет назад

    Спасибо за видео.
    Сергей подскажите, между Shop и Bayer вы нарисовали связь Aggregation, может там лучше использовать Dependency?

  • @stanislavstashchuk711
    @stanislavstashchuk711 4 года назад +4

    Дякую!

  • @basimal-jawahery70
    @basimal-jawahery70 4 года назад +1

    Мне кажется не нужно начинать декомпазицию предметной области с бизнес- уровня. Важно начать с useCase'ов, а именно useCase и для него class diagram, затем следующий useCase - class diagram. Тогда и легче не выйти за пределы скоупа и многие методы станут более адекватные. Например, никто не выбирает количество товара и потом нажимает кнопку добавить в корзину. Достаточно, например, корзине иметь метод добавить товар и корзина сама увеличивает счётчик.

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  4 года назад +1

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

  • @andriilogoshko8881
    @andriilogoshko8881 9 лет назад +1

    Сергей, правильно ли я понимаю, что во взаимоотношениях между Cart и Shop нужно было использовать символ агрегации (ромб) вместо ассоциации (простая стрелочка)? Да, и в каких случаях возможна ассоциация без агрегации? Ведь для того, чтобы объект А вызвал у объекта Б какой-то метод, первый (как мне кажется) должен хранить в себе либо сам объект Б, либо его предка?

    • @maximyastrebov9569
      @maximyastrebov9569 9 лет назад +1

      Андрей Логошко
      Когда мы передаём экземпляр объекта как параметр метода, мы же можем вызывать у него методы

  • @tatyanayurchenko6840
    @tatyanayurchenko6840 2 года назад +1

    Как называется это программа в которой вы uml рисуете?

    • @tatyanayurchenko6840
      @tatyanayurchenko6840 2 года назад

      Я потом разглядела название на экране StarUML

  • @MegaL1oN
    @MegaL1oN 9 лет назад

    Спасибо за видео, все легко и понятно. Мой вопрос немного не по теме. Сейчас представилась возможность попасть на практику в компанию, которая занимается разработкой приложений под Android. После успешного прохождения практики есть возможность начать работать в этой компании, но возникла дилема. Кроме Андроида также интересно направление Java EE. На сколько будет трудно в дальнейшем переключится с Андроида на Java EE?

  • @volodyakrajetsky8245
    @volodyakrajetsky8245 9 лет назад

    Сергій часто так буває що весь код в кінці сходиться в контроллерах серверу, а ви говорили, що це поганий знак, як тут можна з цим боротися?

  • @Comfmore
    @Comfmore 9 лет назад

    спасибо, очень познавательно :)

  • @itforrest2990
    @itforrest2990 2 года назад

    Сергей тут такой молодой)

  • @gallaxos
    @gallaxos 8 лет назад +1

    Спасибо за видео. Я недавно проходил обучение в большой компании и там подход к декомпозиции такой: нам давали задание построить графическую схему таблиц в БД вместе с их связями (ну понятное дело, что ориентируясь на функционал, что описан в ТЗ (станция технического обслуживания)) Потом мы это в Sql переводили, и потом функционал реализовывали.
    Вот сейчас думаю, что мы так делали только потому, что менторы прекрасно понимали дальнейший ход и этот этап (UML классов) о котором вы говорите в видео они просто пропустили. Или же это действительно другой подход к задачи декомпозиции?

    • @gallaxos
      @gallaxos 8 лет назад

      Спасибо за ответ

  • @Per4ik92
    @Per4ik92 8 лет назад

    Чет не уловил, зачем в классе "Shop" поле "root (group)". Какую задачу оно решает?

  • @КонстантинКонашенков-и2ф

    "меньше стрелок" наверное стоило назвать "меньшая связанность".
    И как результат части системы проще будет менять / заменять. К примеру реализацию BuyItem.
    P.s. а может стоит говорить про программирование на уровне интерфейсов, а не реализаций ?

  • @brunkovsky
    @brunkovsky 9 лет назад +2

    тю, блин. а я - то думал, что это я один из-за ограниченности ума зависаю над декомпозицией. оказывается, спецы тоже))) может, и я спец?

  • @andriyvandam5978
    @andriyvandam5978 11 месяцев назад +1

    Ну дуже сумнівна штука насправді. Декомпозиція в тому вигляді в якому вона показана тут, це ніщо інше як спроба вгадати бізнес вимоги, що робити не дуже добре. Декомпозицію ,так би мовити, має дати нам клієнти у вигляді АС, а ми в свою чергу маємо намалювати архітектуру відповідно до АС, що і показано в відео.
    Буду радий критиці)

  • @hamil1806
    @hamil1806 8 лет назад +1

    very helpful thanks

  • @ДимаГоликов-с6ш
    @ДимаГоликов-с6ш 3 года назад

    что за программа?

  • @vladimirr.1260
    @vladimirr.1260 Год назад

    Да. Самое трудное в программировании - придумать названия сущностей (объектов, переменных, модулей, пакетов).

  • @indeoo_
    @indeoo_ 7 лет назад

    Подскажите пожалуйста, зачем нам нужно делать объект cart который агрегирует buyitem, а потом cart маппировать с юзером через shop. Не проще ли просто в юзера засунуть List? Такая вариация подойдет, или в класе cart есть какой-то неочевидный для меня смысл?

  • @AndreySvyat
    @AndreySvyat 4 года назад

    хуже можно только использовать часто в качестве типов полей, переменных и параметров Object

  • @АндрейКулагин-е1ш
    @АндрейКулагин-е1ш 9 месяцев назад

    Это же диаграмма классов а не модель предметной области получается

  • @olek_tar
    @olek_tar 9 лет назад +2

    Мне кажется, что последние три видео - это байки не про Java, а про проектирование. Java там почти нет.

    • @maxlich9139
      @maxlich9139 7 лет назад

      "И где здесь Джава?" (С) Сергей Немчинский

  • @levtolstoy425
    @levtolstoy425 4 года назад

    Поначалу, я пытался как можно быстрее придумать названия членам класса. Но потом, после того, как код разростался, становилось сложно ориентироваться, т.к. не понимал по идентификаторам who is who. Теперь, больше уделяю времени для того, чтобы дать выразительной имя мэмберам.

  • @sergeyshestakov4936
    @sergeyshestakov4936 Год назад

    СПС

  • @shamkhan2636
    @shamkhan2636 3 года назад +1

    14:50 Категория блин. Category

  • @nikolaiii3
    @nikolaiii3 9 лет назад

    Первый смотрю!

  • @webcerebrium
    @webcerebrium 9 лет назад +2

    блин действительно. звук - явное слабое звено ваших видео. Микрофон который у вас в кадре - не годится для youtube записей. Некачественный звук, звук с шумом, где нужно вслушиваться в расказчика - это действительно неуважение к зрителям.
    Любая USB моделька от Samson/Audio-Technica/Rode в диапазоне $150-200 позволит нормально убирать шум (даже если стоит рядом с системным блоком)

  • @helios8567
    @helios8567 Год назад

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

  • @EugenePolischuk
    @EugenePolischuk 2 года назад

    Хуже неправильных имен это глобальные константы которые очень давно живут в коде...

  • @azizxonzufarov7787
    @azizxonzufarov7787 2 года назад +1

    Хреновое обьяснение.
    Вот смотрите как выглядит алгоритм декомпозиции задач:
    ruclips.net/video/BfAhxx8YiyM/видео.html
    Лучшего не найдёте!

  • @mikedastro2930
    @mikedastro2930 Год назад

    Фуххх блин !!!!!!!!!! Декомпозировать декомпозировать - сделать теоретический чертёж с данными ,и методами .... Блин декомпозировать )) ........