В этот раз я рассказываю более подробно о декомпозиции простого веб-магазина. Полный плейлист: • Основы архитектуры при... Учебный центр: bit.ly/2zw59Jj
Пікірлер: 73
@basimal-jawahery704 жыл бұрын
Спасибо! Метод быть пнутой у табуретки, вместо пнуть у человека. Прям как инсайт, осознал причину многих своих трудностей этапа проектирования. всё встало на свои места. Спасибо! :)
@SergeyNemchinskiy4 жыл бұрын
Отлично! Я сам долго в это въезжал по началу
@kolob2043 жыл бұрын
@@SergeyNemchinskiy а метод "быть пнутой" делегирует выполнение человеку - "пнуть" ? Ибо участие объекта "человек" в этом процессе должно быть зафиксировано, с точки зрения модели реального мира ))
@revetastogne3 жыл бұрын
или "пнуться человеком"
@nikudaorg2 жыл бұрын
Спасибо, это просто гениальная лекция! Почему то на Ютубе почти нет видео на подобные темы - только читай книги, учись в универе или набирайся опыта в реальной компании
@Dimon-pokemon2249 Жыл бұрын
а что плохого в книгах или работы в реальной компании?
@СветланаМ-з6о3 жыл бұрын
God object и метод табуретки "быть пнутой" - это прекрасно и на самом деле многое объясняет, спасибо!
@fakeprince30259 жыл бұрын
По поводу поднятой шумихи о качестве звука и видео: были проблемы в первом видео у вас с отключением звука во время пауз вашего рассказа, действительно не совсем удобно было слушать и казалось что будто пропускаются слова, но это вы уже исправили. Во всем остальном качество звука и видео, а так же дикция и предоставление материала на вполне достойном уровне для видео лекций. Если вам ребята не нравится качество звука или микрофон Сергея, скиньтесь и подарите ему хороший студийный микрофон, я думаю он это заслужил) За лекции большое спасибо, тема действительно интересная и сложная, жду с нетерпением продожения)
@fakeprince30259 жыл бұрын
Ага Free To Play RPG "Байки по Java"))) А с женой согласен, да и "зрители" обнаглевшие пошли, мало им того что человек личное время тратит, что бы сделать качественный курс, так еще им и стерео звук подавай, скоро наверно 3д картинку просить будут))
@nikulin_vrn Жыл бұрын
@@fakeprince3025 Привет из 2023 - требуют :D
@НаталіяБурдейна-щ9г9 жыл бұрын
Добрый день, Сергей! Огромное спасибо за видео! Если разместите ссылку "поблагодарить денежным переводом" - думаю что как минимум на микрофон, о котором некоторые все время говорят, сразу получится собрать. У меня кстати к звуку претензий нет - все отлично. И, не смотря на отсутствие проблем со звуком, денежную благодарность я бы с удовольствием отправила. Есть у меня некоторая "добавка" к объяснению про группы и их вложенности - если заранее определить уровень вложенности групп товаров, то в дальнейшем нельзя будет добавить еще один уровень, не переписывая уже написанное. Т.е. при такой реализации теряется гибкость и масштабируемость. Извините, если "добавка" не в тему.
@PuHLiY923 жыл бұрын
Спасибо за потраченное Вами время, очень интересно и информативно.
@ПавелОсипенко-ч2е9 жыл бұрын
Ребята, то у вас в голове шумит ... мозг закипает :D Сергей - спасибо огромнейшее!
@ОлександрТищенко-ь2с8 жыл бұрын
Всем привет. Я по поводу звука :). В начальных видео, когда Сергей ничего не говорил, то звук (шипение тишины) полностью затихал. Когда начинал говорить, то шум появлялся и это реально меня напрягало. В этом видео уже этого нету. Несмотря не это я благодарен автору за видео. Если кого-то не устраивает, то идите на платные курсы или купите хорошую аппаратуру и подарите Сергею. Он и так делает хорошее дело, что записывает такое видео. Спасибо!
@siriusdiamond8 жыл бұрын
по группам товаров - это дерево каждая запись имеет id каждая группа имеет родителя товар может иметь список из id групп
@levtolstoy4254 жыл бұрын
Супер лекция! Особенно понравилось, цитирую: "И так мы дойдём до Адама и Евы.", "God object", "И в этом классе мы и умрём!" 😂
спасибо. видео как всегда замечательное. а вот звук. ну блин. может вам на телефон звуковую дорожку писать. всяко лучше должно быть. или попросить благодарных зрителей на микрофон скинуться.
@АртемДегтярьов-щ3ь9 жыл бұрын
Не понимаю почему у большинства из видео в видео проблемы со звуком. Мне все отлично слышно начиная с первого видео. Видео очень понравилось. Веселое :)
@sergionolastname67199 жыл бұрын
Слушайте смысл, а не отдельные слова, тогда норм звук, и отличный материал. Я даже когда прочитал комментарии, не понимаю, чем звук не нравиться.
@Dream1Lord9 жыл бұрын
В StarUML что бы написать Map необходимо запятую заменить точкой. Он не хочет рисовать там запятые и ругается из-за этого. Спасибо за видео!
@oleksandrromashko8125 жыл бұрын
Выбрав поле, в окне "Properties" (вне диаграмы, там где шрифт и стили) можно в поле "type" вручную вписать "Buyer, Cart". Тогда работает.
@gallaxos7 жыл бұрын
Спасибо за видео. Я недавно проходил обучение в большой компании и там подход к декомпозиции такой: нам давали задание построить графическую схему таблиц в БД вместе с их связями (ну понятное дело, что ориентируясь на функционал, что описан в ТЗ (станция технического обслуживания)) Потом мы это в Sql переводили, и потом функционал реализовывали. Вот сейчас думаю, что мы так делали только потому, что менторы прекрасно понимали дальнейший ход и этот этап (UML классов) о котором вы говорите в видео они просто пропустили. Или же это действительно другой подход к задачи декомпозиции?
@gallaxos7 жыл бұрын
Спасибо за ответ
@mashinostroitel4 жыл бұрын
Спасибо : ) КРУД видимо потому, что это аббревиатура и читается так как произносятся буквы :)
@kolob2043 жыл бұрын
C - си, R - ар, U - ию, D ди = СИАРИЮДИ )))
@andriilogoshko88819 жыл бұрын
Сергей, правильно ли я понимаю, что во взаимоотношениях между Cart и Shop нужно было использовать символ агрегации (ромб) вместо ассоциации (простая стрелочка)? Да, и в каких случаях возможна ассоциация без агрегации? Ведь для того, чтобы объект А вызвал у объекта Б какой-то метод, первый (как мне кажется) должен хранить в себе либо сам объект Б, либо его предка?
@maximyastrebov95699 жыл бұрын
Андрей Логошко Когда мы передаём экземпляр объекта как параметр метода, мы же можем вызывать у него методы
@andriyvandam597810 ай бұрын
Ну дуже сумнівна штука насправді. Декомпозиція в тому вигляді в якому вона показана тут, це ніщо інше як спроба вгадати бізнес вимоги, що робити не дуже добре. Декомпозицію ,так би мовити, має дати нам клієнти у вигляді АС, а ми в свою чергу маємо намалювати архітектуру відповідно до АС, що і показано в відео. Буду радий критиці)
@КонстантинКонашенков-и2ф6 жыл бұрын
"меньше стрелок" наверное стоило назвать "меньшая связанность". И как результат части системы проще будет менять / заменять. К примеру реализацию BuyItem. P.s. а может стоит говорить про программирование на уровне интерфейсов, а не реализаций ?
@MS-fz3qc9 жыл бұрын
Спасибо за видео. Сергей подскажите, между Shop и Bayer вы нарисовали связь Aggregation, может там лучше использовать Dependency?
@stanislavstashchuk7114 жыл бұрын
Дякую!
@Mike199107114 жыл бұрын
Очень полезное видео. Спасибо)
@andrii-marynets9 жыл бұрын
Класне відео, слухаю в навушниках - ніяких проблем зі звуком. У мене є питання по ООП: багато де в приклад класу наводять Автомобіль, а от Audi A6 є екземпляром даного класу. Чи правдиве таке твердження? Я схиляюсь до думки що клас Автомобіль більше підходить в ролі інтерфейсу, оскільки автомобілі бувають різними(від форми і конструкції до способу пересування і тд). Тут доцільніше зробити клас AudiASeries(або взагалі Tesla) який успадковується від інтерфейсу Автомобіль. Чи правильно я думаю? І чи доцільно наводити як приклад класу - план будинку, а збудований будинок як екземпляр? Дякую
@burialstance3 жыл бұрын
Серега ты такой оказывается такой красавчик)
@MegaL1oN9 жыл бұрын
Спасибо за видео, все легко и понятно. Мой вопрос немного не по теме. Сейчас представилась возможность попасть на практику в компанию, которая занимается разработкой приложений под Android. После успешного прохождения практики есть возможность начать работать в этой компании, но возникла дилема. Кроме Андроида также интересно направление Java EE. На сколько будет трудно в дальнейшем переключится с Андроида на Java EE?
@ДенисЧеб-м6ф2 жыл бұрын
Не могу понять как устроен класс Group, можно где ни будь посмотреть пример реализации этого класса?
@vladimirr.1260 Жыл бұрын
Да. Самое трудное в программировании - придумать названия сущностей (объектов, переменных, модулей, пакетов).
@olek_tar9 жыл бұрын
Мне кажется, что последние три видео - это байки не про Java, а про проектирование. Java там почти нет.
@maxlich91397 жыл бұрын
"И где здесь Джава?" (С) Сергей Немчинский
@AndreySvyat4 жыл бұрын
хуже можно только использовать часто в качестве типов полей, переменных и параметров Object
@brunkovsky9 жыл бұрын
тю, блин. а я - то думал, что это я один из-за ограниченности ума зависаю над декомпозицией. оказывается, спецы тоже))) может, и я спец?
@АндрейКулагин-е1ш8 ай бұрын
Это же диаграмма классов а не модель предметной области получается
@Comfmore9 жыл бұрын
спасибо, очень познавательно :)
@Per4ik928 жыл бұрын
Чет не уловил, зачем в классе "Shop" поле "root (group)". Какую задачу оно решает?
@itforrest29902 жыл бұрын
Сергей тут такой молодой)
@ДимаГоликов-с6ш3 жыл бұрын
что за программа?
@sergeyshestakov4936 Жыл бұрын
СПС
@webcerebrium9 жыл бұрын
блин действительно. звук - явное слабое звено ваших видео. Микрофон который у вас в кадре - не годится для youtube записей. Некачественный звук, звук с шумом, где нужно вслушиваться в расказчика - это действительно неуважение к зрителям. Любая USB моделька от Samson/Audio-Technica/Rode в диапазоне $150-200 позволит нормально убирать шум (даже если стоит рядом с системным блоком)
@helios8567 Жыл бұрын
вы такой упор ставите на правильный нейминг, а сами называете классы и поля супер-непонятно и неправильно с точки зрения смысла..
@nikolaiii39 жыл бұрын
Первый смотрю!
@mikedastro2930 Жыл бұрын
Фуххх блин !!!!!!!!!! Декомпозировать декомпозировать - сделать теоретический чертёж с данными ,и методами .... Блин декомпозировать )) ........
@azizxonzufarov77872 жыл бұрын
Хреновое обьяснение. Вот смотрите как выглядит алгоритм декомпозиции задач: kzbin.info/www/bejne/eJekmauubb6cr68 Лучшего не найдёте!
@tatyanayurchenko68402 жыл бұрын
Как называется это программа в которой вы uml рисуете?
@tatyanayurchenko68402 жыл бұрын
Я потом разглядела название на экране StarUML
@EugenePolischuk2 жыл бұрын
Хуже неправильных имен это глобальные константы которые очень давно живут в коде...
@basimal-jawahery704 жыл бұрын
Мне кажется не нужно начинать декомпазицию предметной области с бизнес- уровня. Важно начать с useCase'ов, а именно useCase и для него class diagram, затем следующий useCase - class diagram. Тогда и легче не выйти за пределы скоупа и многие методы станут более адекватные. Например, никто не выбирает количество товара и потом нажимает кнопку добавить в корзину. Достаточно, например, корзине иметь метод добавить товар и корзина сама увеличивает счётчик.
@SergeyNemchinskiy4 жыл бұрын
в теории - да. но если вы заставите программистов писать юз кейсы - они вообще нефига делать не будут
@shamkhan26363 жыл бұрын
14:50 Категория блин. Category
@ssurrokk9 жыл бұрын
Респект и уважуха, продолжайте пож-та
@hamil18068 жыл бұрын
very helpful thanks
@levtolstoy4254 жыл бұрын
Поначалу, я пытался как можно быстрее придумать названия членам класса. Но потом, после того, как код разростался, становилось сложно ориентироваться, т.к. не понимал по идентификаторам who is who. Теперь, больше уделяю времени для того, чтобы дать выразительной имя мэмберам.
@volodyakrajetsky82459 жыл бұрын
Сергій часто так буває що весь код в кінці сходиться в контроллерах серверу, а ви говорили, що це поганий знак, як тут можна з цим боротися?
@indeoo_7 жыл бұрын
Подскажите пожалуйста, зачем нам нужно делать объект cart который агрегирует buyitem, а потом cart маппировать с юзером через shop. Не проще ли просто в юзера засунуть List? Такая вариация подойдет, или в класе cart есть какой-то неочевидный для меня смысл?