Проектирование архитектуры сервиса доставки еды

Поделиться
HTML-код
  • Опубликовано: 2 авг 2024
  • Entry-level видео на тему проектирования воображаемого сервиса доставки еды.
    Идея проекта от t.me/anelfer:
    Сервис доставки еды, человек делает заказ, и может отслеживать его статус. После создания заказа, кухня получает уведомление о новом заказе, (какой-то красивый интерфейс, сайт), принимает его (подтверждает, что увидела заказ), когда начинает готовить, курьерам идет рассылка о заказе, 1 курьер может взять заказ. После приготовления, курьеру доступна кнопка забрать заказ, он забирает его и едет к заказчику. (все статусы у заказчика отображаются), после чего курьер нажимает доставлено и автоматически завершается заказ.
    Мой Java роадмап - zhukovsd.github.io/java-backe...
    Мой телеграм канал - t.me/zhukovsd_it_mentor
    Схемы и заметки со стрима в комментариях к этому посту - t.me/zhukovsd_it_mentor/36
    Поддержать - boosty.to/zhukovsd
    00:00 Таймер
    09:44 Начало
    11:20 Высокоуровневная схема архитектуры
    21:35 Состояния заказа
    34:45 Схема базы данных
    44:20 REST API, авторизация
    50:05 REST API customer сервисов
    59:35 REST API restaurant сервисов
    1:09:45 REST API courier сервисов
    1:19:45 Как могла бы выглядеть работа над проектом
    1:31:20 Ответы на вопросы

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

  • @zhukovsd_it_mentor
    @zhukovsd_it_mentor  Год назад +10

    Диаграммы из видео - t.me/zhukovsd_it_chat/8867

  • @736939
    @736939 Год назад +341

    По больше таких стримов, Kotlin, Python, Rust - все и так изучают, а вот правильное проектирование и системный дизайн это то, чего так не хватает. Спасибо )

    • @vincentvince2136
      @vincentvince2136 Год назад +7

      Этому учат в ВУЗах, а еще книжки попробуй тематические почитать

    • @MrNagios
      @MrNagios Год назад +2

      вообще поподробней хотелось по этой теме. Особенно об инструментах

    • @736939
      @736939 Год назад +17

      @@vincentvince2136 В книгах тоже много теории, нужен сам процесс.

    • @pavelpavel7938
      @pavelpavel7938 Год назад +2

      где вы тут увидели про проектирование и дизайн? )))

    • @cool_piglet
      @cool_piglet Год назад +1

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

  • @zest01
    @zest01 Год назад +115

    Первый раз смотрю подобное видео - случайно попало в рекомендованные. Очень интересно было посмотреть и понять ход мыслей разработчика при работе над проектом.
    Я как маркетолог часто слышал обрывки диалогов программистов и теперь более понятно о чем идут столь оживленные дискуссии )
    Ну и, по правде говоря, при работе над улучшением продукта, мне реально интересно знать как этот продукт устроен технически. Теперь ясно как в целом работает приложение.
    Было бы интересно в таком же формате разбор от ПМа, продакта и бизнес аналитика.
    P.S. Кому нудно - включайте на х1,75. Отлично смотрится.

  • @stan_yolo
    @stan_yolo Год назад +233

    нашел это видео после после просмотра видео о каналах шизофреников

    • @onetwothree123-
      @onetwothree123- Год назад +7

      😅😅😅

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

      Жесть, ну там конечно и клоуны 🤡

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

      Да у меня тоже они всплывают. Хотя никогда не кликал

    • @drago5338
      @drago5338 8 месяцев назад +1

      Точно также тут оказался

    • @ChuckNorris-rv7pt
      @ChuckNorris-rv7pt 6 месяцев назад

      Что за каналы такие? Очень интересно.

  • @sinsinegobaffa7321
    @sinsinegobaffa7321 Год назад +27

    Более содержательного видео не могу вспомнить, пусть поверхностно, но за полтора часа дать такое комплексное описание целого, почти реального проекта, это просто вау, что самое главное понятное. Премного благодарен автору, подписка однозначно.

  • @meshcheryakov
    @meshcheryakov Год назад +11

    На редкость полезное видео. Дизайню интерфейсы, чисто из любопытства решил поинтересоваться за архитектуру - теперь всё прям по полочкам расставилось. Спасибо.

  • @user-wc4me1mk7y
    @user-wc4me1mk7y 6 месяцев назад +6

    Огромное тебе спасибо, Гэри Олдман, за прекрасное изложение материала ещё и на русском. Посмотрел за раз, не отрываясь. Успеха тебе в ютуб-пространстве.

  • @SK-xb1qz
    @SK-xb1qz Год назад +60

    Почитал комментарии и аж обидно стало. Видео просто пушка. Автор сразу же обозначил цель видео, наложенные ограничения и в чём вообще задумка и мне кажется, автор цели достиг, с задачами справился и ограничения учёл.
    Видео, на мой взгляд, получилось очень информативным, полезным и интересным. Процесс проектирования сложных сервисов действительно показан хорошо. Даже если бы обсуждался реальный сервис - уже было бы от чего оттолкнуться и что начать обсуждать командой из нескольких человек, а не в одно лицо. Такой результат за полтора часа - это очень круто(понятно, что автор потратил больше, чем полтора часа, рисование схем, продумывание сценариев - это довольно много времени, но всё же). Да, много моментов, которые просят пояснения, много где можно подискутировать и поспорить, но видос не про это вовсе.
    Сергей, большое вам спасибо! С дикцией у вас тоже всё отлично, да и в конце концов, вы не теледиктор, вас не за красоту слога приходят смотреть.

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  Год назад +3

      Спасибо 👍

    • @JohnDoe-ji1zv
      @JohnDoe-ji1zv 10 месяцев назад

      @@zhukovsd_it_mentorвидео класс, продолжайте в том же духе

  • @nikitariazanov8051
    @nikitariazanov8051 8 месяцев назад +1

    Было очень интересно послушать по архетектуру и технологии. Спасибо за интересный материал! Успехов вам!

  • @petefedorov2955
    @petefedorov2955 10 месяцев назад

    Это что-то конечно..случайно наткнулся на это видео и буквально залип. Огромное спасибо автору за очень ценный урок и прекрасное, доходчивое объяснение!

  • @berspoland5667
    @berspoland5667 6 месяцев назад

    Огромное спасибо. Очень интересно, а главное, доходчиво получилось. Для меня как будто открылся закулисный мир разработки.

  • @barabucho
    @barabucho 9 месяцев назад

    Офигенный материл! Побольше бы таких с аргументированными объяснениями подходов.

  • @AlexanderSavchenko91
    @AlexanderSavchenko91 11 месяцев назад

    Еще не смотрел полностью но кликнув на середину уже офигел от качества!!! Гляну попозже, поддержу сейчас!

  • @MsMelkus
    @MsMelkus Год назад +7

    Спасибо, посмеялся.
    Классическая ошибка "микросервисы ради микросервисов", аналогично redis и rabbitMQ. Аналогично столь подробное планирование архитектуры простого проекта.
    При этом нет обоснования выбора того или иного пути.

    • @radik353
      @radik353 Год назад +2

      Согласен. Вместо одного большого монолита мы сделаем кучу сервисов, которые юзают одну и туже бд. По сути получился распределённый монолит, с кучей побочных проблем: deploy, масштабирование, сомвестимость api

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  Год назад +2

      Вы всё верно пишете, но задачи спроектировать коммерческий проект я для себя не ставил при подготовке к этому видео. Цель видео - озвучить ход мыслей, и схематично показать процессы проектирования. Основная моя ЦА - джуниоры и те кто готовится к своей первой работе, я стараюсь чтобы понятность моего контента соответствовала целевой аудитории.
      Вопросы монолита и микросервисов, очередей и прочее - вопросы более высокого уровня, для понимания и обсуждения которых нужен определённый уровень и опыт.
      Но так как на канал приходят люди с таким опытом, как вы, например, постараюсь в будущем делать более явный дисклеймер на эту тему.
      Спасибо за фидбек.

    • @MsMelkus
      @MsMelkus Год назад +1

      @@radik353 очень странный подход - показывать именно формально бюрократическую часть работы, гиперболизируя её и не объясняя логики. Ну да бог вам судья

    • @mightybobka
      @mightybobka 11 месяцев назад

      @@zhukovsd_it_mentor Я пропустил в этом видео момент где вы хоть что-то проектируете. Укажите таймкод, пожалуйста.

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  11 месяцев назад

      @@mightybobka 1:39:41

  • @RNikSan
    @RNikSan Год назад +2

    Круто, очень полезная информация!

  • @rbhbkk8980
    @rbhbkk8980 Год назад +1

    Гениальный видос, ничего подобного не видел за время активного поиска обучающего материала!

  • @itanychannel
    @itanychannel 11 месяцев назад

    Проходили про базы данных в вузе, про бек и фронт - на тестовых заданиях в ШМЯ. А вот про API не знала, это было новым. Спасибо! Это круче, чем онлайн курс.

  • @aleksandrkubar6255
    @aleksandrkubar6255 10 месяцев назад

    Спасибо за проделанную работу!

  • @SupaDupaSneike
    @SupaDupaSneike 11 месяцев назад +2

    Спасибо тебе, Гэри Олдман, за видео!

  • @andrew-ld1jg
    @andrew-ld1jg 11 месяцев назад

    Спасибо большое за такую полезную информацию!

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

    просто находка! вы очень крутой

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

    Содержательно, без воды. Есть понимание что и как надо осваивать, после того как разобрался с "Hello world" :D

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

    Спасибо, очень хороший разбор

  • @SuperEugeneone
    @SuperEugeneone 11 месяцев назад

    Спасибо! Побольше бы такого годного контента на ютубе

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

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

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

      Спасибо за отзыв.
      Всё-таки это не архитектура реального проекта, а скорее упрощенная демонстрация хода мыслей, с которыми подходят к проектированию.
      Очень многое не рассмотрено, но и так полтора часа получилось.

  • @nikenuke
    @nikenuke 11 месяцев назад

    Спасибо за качественную информацию!

  • @TheGrawest
    @TheGrawest 9 месяцев назад

    Очень интересно. Спасибо!

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

    Пока что отсмотрел не всё, но очень интересное видео. Показывает как можно и на что разбить проект, чтобы дальнейшая разработка шла по сформированной программе. И самое главное, что это прямая трансляция, где всё происходит без вырезания некоторых сцен(хотя понятно, что вопрос рассматривался ранее и рассматривались разные варианты).

  • @NikolayYar
    @NikolayYar 9 месяцев назад

    Хорошее видео. Больше таких. )

  • @johndavids6297
    @johndavids6297 10 месяцев назад

    Очень крутое видео! Увидеть бы реализацию)

  • @timur2887
    @timur2887 Год назад +1

    Спасибо! Хотелось бы подробнее про аутентификацию, авторизацию, логирование, метрики, балансировку нагрузки и т.п.

  • @alekseykiselev3054
    @alekseykiselev3054 11 месяцев назад

    Видео супер, в качестве обучаеющего материала для разного уровня специалистов, спасибо автору за проделанную работу!!

  • @user-xl7wr2by6c
    @user-xl7wr2by6c Год назад

    Здравствуйте, спасибо большое, это очень круто!
    Хочется больше таких видео! Вы супер, у Вас всё обязательно получится!!

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

    просто кайф, спасибо!

  • @qwe-jo6wy
    @qwe-jo6wy Год назад

    Спасибо, очень интересно

  • @-dubok-
    @-dubok- Год назад +6

    Спасибо, очень любопытно посмотреть как этим занимаются на практике. Я и сам учусь на программиста самостоятельно и понимаю, что самое главное в этом деле - архитектура. Это - начало начал и именно этим мне и нравится заниматься, нежели кодингом. Изучил немного тему EDA, событийно-ориентированной архитектуры и DDD, предметно-ориентированный дизайн приложений. Считаю, что это лучшая связка для архитектуры практически любых приложений, так как события убирают связность между модулями, а предметные области позволяют правильно разбить приложение на отдельные службы.
    У вас разбивка похожа на DDD, но отличие в том, что у вас все данные хранятся в одном месте, что противоречит DDD. По DDD каждая служба (сервис) должна хранить свои данные в своей независимой базе (теоретически СУБД можно использовать одну, но базы должны быть разные). По DDD каждая предметная область содержит как данные, так и логику для их обработки (по сути как и объект в ООП), что создаёт изоляцию и независимость от других предметных областей. А это даёт больше свободы и простоты в поддержке. Можно любую предметную область удалить, добавить, и это будет абсолютно не заметно для других, если используются события для общения, а не прямые RPC и прочие такие запросы с ожиданием ответа. При чисто событийной архитектуре всё общение идёт через шину событий, и она является единственным модулем, с которым напрямую связаны все предметные области. А это - максимальная изоляция друг от друга - то, к чему стремятся многие программисты, понимая весь ужас и тяжесть монолитных и спагеттеобразных приложений, где все связи между модулями и данными прямые.
    Не лучше ли всё-таки использовать DDD?

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  Год назад +2

      Согласен с вашими рассуждениями о ценности DDD.
      В этом видео моей целью было по продемонстрировать ход мыслей при проектировании и наглядно по верхам показать схемы, БД, API.
      Но проект я выбрал довольно сложный, плюс, полтора часа - и так уже много, поэтому местами вышло поверхностно.
      В последующих видео по проектированию стараюсь не повторять эти ошибки.

    • @solverdce5044
      @solverdce5044 Год назад +2

      Это действительно важное принципиальное замечание, т.к. если уж упомянули о микросервисной архитектуре, то надо придерживаться и требований к микросервисам (у каждого свои данные). Иначе для тех, кто только начинает постигать системный анализ это может надолго создать неправильный подход.

  • @dmitryneverovski5602
    @dmitryneverovski5602 9 месяцев назад

    Супер, очень крутой стрим)

  • @user-xs2dx2mh3f
    @user-xs2dx2mh3f Год назад

    Спасибо , бро. Очень Полезная информация.

  • @user-bz7wh3cf8d
    @user-bz7wh3cf8d Год назад

    Супер классное видео!

  • @KLNHOMEALONE
    @KLNHOMEALONE Год назад +2

    Просто отлично!

  • @user-dt9zl5pj8p
    @user-dt9zl5pj8p 9 месяцев назад

    Рад за автора, что он прочитал книгу "Микросервисы на практике"

  • @parya_7
    @parya_7 Год назад +1

    Круто 👍🏻

  • @nuklon
    @nuklon Год назад +1

    Ашалеть, теперь и Гари Олдман в разрабах)

  • @user-bd9kv8jg3z
    @user-bd9kv8jg3z Год назад

    позновательный контент благодарю

  • @user-tl1ny6pq1s
    @user-tl1ny6pq1s 11 месяцев назад +1

    Шел 2023й, мы выкладывали видео по программированию в 720p... Впрочем, спасибо за материал.

  • @illiapanchenko598
    @illiapanchenko598 Год назад +1

    Спасибо, очень крутой high-level обзор! Как раз то, что искал для постепенного перетекания в fullstack

    • @aks964
      @aks964 11 месяцев назад

      А с каких пор фул стек пишет высоконагруженные системы?

  • @Max-vl1ye
    @Max-vl1ye Год назад

    Интересное видео, узнал для себя пару новых вещей

  • @artemsokolov5007
    @artemsokolov5007 10 месяцев назад

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

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

    Спасибо большое

  • @saharaprotocol
    @saharaprotocol 10 месяцев назад

    Спасибо мужик.

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

    Супер!

  • @kraken645
    @kraken645 11 месяцев назад

    Соо миллионов лайков Тебе, дорогой!

  • @gtrixoff
    @gtrixoff 10 месяцев назад

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

  • @Kerogas_
    @Kerogas_ 11 месяцев назад +3

    В таблицу Orders я бы добавил не одно поле timestamp, а что-то типа created и delivered - дата создания заказа и его доставки. Также можно было бы добавить таблицу а-ля "Order_Rating" со связью по полю id таблицы Orders, где была бы оценка заказа и комментарии по нему.

  • @Daloshka
    @Daloshka Год назад +4

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

  • @Filimon_enc
    @Filimon_enc 11 месяцев назад

    интересная информашка. буду в бедующем наверное рассуждать по твоему же принципу.

  • @ReAgent003
    @ReAgent003 10 месяцев назад

    Мощный видос!

  • @anatoly_kabakov
    @anatoly_kabakov Год назад +12

    Классный ход мысли. Видно, что много раз делали подобный дизайн. Интересно, можно ли получить подобный ход мысли на синтетических задачах проектирования?

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  Год назад +5

      Как и со многим другим, это вопрос опыта. Помогают книги по проектированию, эксперименты с пет проектами, участие в проектировании рабочих проектов.

    • @Jilexa
      @Jilexa Год назад +2

      @@zhukovsd_it_mentor какие книги посоветуете? И есть ли реальный от них прок в понимании архитектуры?

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  Год назад +4

      @Jilexa
      Самое главное - в рабочих проектах учиться у старших коллег и постепенно участвовать в проектировании.
      По книгам:
      - Проектирование бизнес логики - Domain Driven Design by Eric Evans
      - Software Architecture Patterns
      - Если в проекте есть БД, SQL/NoSQL, хорошо почитать что-то про проектирование хранилища, например книгу "SQL Antipatterns"

  • @daniilmarkin1317
    @daniilmarkin1317 11 месяцев назад

    Бальзам для ушей

  • @hpr895
    @hpr895 10 месяцев назад

    Научился по этому видео зарабатывать воображаемую зарплату!)

  • @TheEegmen
    @TheEegmen 5 месяцев назад

    Блин классно. Единственное для новичков хотелось бы видеть полноценную ER диаграмму

  • @dmitriikapustin3384
    @dmitriikapustin3384 Год назад +4

    видео с мелким текстом в 720p
    Гениально

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

    Спасибо.

  • @user-kq8nk5vj5r
    @user-kq8nk5vj5r 22 дня назад

    На троечку конечно аналитика и проектирование

  • @andpeople7832
    @andpeople7832 Год назад +15

    Очень полезно и интересно, будет ли продолжение

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  Год назад +8

      Практическая реализация этого проекта не планируется, идея видео - описать ход мыслей при проектировании.
      Но мне интересно было бы продолжить эту серию видео, спроектировав что-нибудь ещё, поэтому буду рад услышать предложения.

    • @andpeople7832
      @andpeople7832 Год назад +1

      Я сейчас прохожу обучение по джама, скоро присаединусь

    • @user-rv9ss5ce7z
      @user-rv9ss5ce7z Год назад +2

      @@zhukovsd_it_mentor p2p обменник,

    • @ара_вася
      @ара_вася Год назад +2

      @@user-rv9ss5ce7z да, p2p актуально

  • @Gorlung
    @Gorlung Год назад +3

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

    • @KatyVLOGS12
      @KatyVLOGS12 10 месяцев назад

      Человек, который честен себе

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

    Приложение вкусвилл идеальное во всей планете берите пример

  • @Vlad-Gromov
    @Vlad-Gromov 11 месяцев назад

    круто

  • @You2Ber42
    @You2Ber42 Год назад +2

    25:11
    Интересный подход, вроде все просто но раньше не приходило такое в голову, спасибо.
    Получается помесь BPMN и проектирования, на чистом BPMN конечно сам процесс был бы более качественно описан, но зато в таком виде удобно изучать архитектуру.
    В работе постоянно есть выбор между "обобщить" и потерять часть информации или "детализировать" но в итоге перегрузить схему так что она становится не читаемой. Вам удалось соблюсти хороший баланс. Это тоже важный навык который требуется нарабатывать.

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

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

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

      @@zhukovsd_it_mentor тебе спасибо за видео, для меня это новый мир особенно те видео где ты разбираешь проекты, то как искуссно ты говоришь о недостатках при этом не обижая людей но в то же время конструктивно это что то недостижимое.
      Я сам по работе лид и делаю ревью кода Джунов и мидлов и приходится так же общаться с людьми, естественно я стараюсь быть минимально токсичным, но по сравнению с тем как ты это делаешь Я просто ребенок)). Очень много полезных приемов общения у тебя увидел.
      Писать код на самом деле самое простое что есть в работе Лида. Самое сложное это давать обратную связь и уметь явно излагать свои мысли.
      Если это читают начинающие ребята то мой совет учитесь у этого человека излагать мысли это гораздо важнее умения писать код)))

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

      @You2Ber42 спасибо, очень приятно что кто-то понял ровно то, что я пытаюсь донести в ревью между строк

  • @telmax2005
    @telmax2005 Год назад +9

    Спасибо. Очень полезная информация. На кого же похож автор. Мне кажется на Жан Батист Эммануэль Зорг - вымышленный персонаж, главный злодей научно-фантастического фильма Люка Бессона "Пятый элемент". Сыгран знаменитым британским актером Гари Олдманом. )

    • @Sergey.Aleksandrovich.P-37rus
      @Sergey.Aleksandrovich.P-37rus Год назад

      Да,гари вообще играет нормально во всех фильмах,понравилась его роль в фильме - книга иллая.

    • @big_forehead_fish
      @big_forehead_fish 10 месяцев назад

      Смесь Тодда Говарда и Мэрлина Мэнсона

  • @semenpetrov9456
    @semenpetrov9456 11 месяцев назад

    Надо учесть ещё возможность получения отчетов как из платежного сервиса, так и гибридных когда в одном отчете информация из всех серверов и сервисов.

    • @semenpetrov9456
      @semenpetrov9456 11 месяцев назад

      И логирование всего и вся

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

    Мне кажется проектирование нужно начинать с логической модели приложения. Все остальное должно после нее проектироваться. Ну как минимум так проще.

  • @ds4441
    @ds4441 11 месяцев назад

    я 9 минут и 45 секунд ждал начала

  • @aaaaaa-wt3uu
    @aaaaaa-wt3uu Год назад

    Бро, спасибо за контент, я джун и мне очень интересно. Вопрос - что если завести price_history где хранить все исп. скидки / наценки по позиции, а в ордере хранить уже итоговую стоимость ? Видел на проекте discount и price, которые вообще непонятно как формировались (можно было разобрать только по логам). И еще один - хранить деньги в копейках, а кол-во в x1000 это тру подход ?)

  • @user-hw6dw3np6v
    @user-hw6dw3np6v 9 дней назад

    Мне кажется, те требования, которые не будут реализованы сейчас , они все равно должны быть отмечены как подпроцессы.

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

    Для тестировщиков тоже полезно будет

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

    Я сразу скажу, что новичок. Но меня запутала тема про появление delivery совсем. На плане проектирования сущностей Delivery не было, разве по REST API не надо было проектировать что-то вроде обновления статуса заказа, то есть PATCH /order/${id} с передачей статуса как вы делали в одном из методов Restaurant API ?
    За видео спасибо, годное. Успехов

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  Год назад +2

      Спасибо за отклик.
      Полную диаграмму сущностей я не показывал, сконцентрировался на статусах заказа и том, как заказ меняется внутри системы в процессе оформления, приготовления, доставки.
      Идея REST API доставки в том, что мы работаем с сущностями из предметной области доставки. Например, метод приёма доставки в работу курьером - `POST /delivery/${id}`. Сервис, обрабатывающие этот запрос, работает с сущностями "delivery", который связаны с сущностями "order" (заказы). Приём delivery курьером в рамках описанной архитектуры приводил бы к тому, что delivery-rest-api сервис изменит статус заказа на `DELIVERY_PICKING`.
      И хочу заметить, что в реальности многие аспекты придуманного дизайна очень сильно бы изменились. Видео не про готовый дизайн, а про процесс проектирования и ход мыслей.

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

    топ контент

  • @AndreyChursin
    @AndreyChursin 10 месяцев назад

    Случайно попал на видео, у заказа нужны свойства(уже стандарт) свойства заказа могут быть разного типа… пользователей делят не по таблицам а по группам!

  • @vitaliynabiev2530
    @vitaliynabiev2530 10 месяцев назад

    Сергей, спасибо за видео! Вы применяете необычные верхнеуровневые нотации. Могли бы подсказать, подобный формат описания API - по какой-то спецификации или свои наработки?

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  10 месяцев назад +1

      Добрый вечер. Подобной формой записи пользуюсь для себя на ранних стадиях продумывания схемы эндпоинтов.
      Когда приходит время формализовать схему, пользуюсь форматом спецификации OpenAPI.

  • @Vitalyayandex
    @Vitalyayandex Год назад +5

    Полезное видео, посоветуйте литературу по этой же тематике

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  Год назад +12

      Трудно посоветовать что-то конкретное, потому что видео затрагивает по верхам несколько разных тем, но постараюсь:
      - Проектирование бизнес логики - Domain Driven Design by Eric Evans
      - Паттерны проектирования архитектуры (бесплатная книга) - get.oreilly.com/rs/107-FMS-070/images/Software-Architecture-Patterns.pdf
      - Проектирование БД - SQL Antipatterns by Bill Karwin
      - Проектирование API - REST API Design Rulebook by Mark Masse

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

      @@zhukovsd_it_mentor Спасибо!

  • @Sergey.Aleksandrovich.P-37rus
    @Sergey.Aleksandrovich.P-37rus Год назад

    В основном делаю( pet project)фронт на жабе используя API сервера,в бэк боюсь лесть 😂😂думаю там намного логика сложнее.

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

    Курьеры работают за "profit" :D

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

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

  • @qrthack
    @qrthack 11 месяцев назад

    Скажи пожалуйста, что лучше выбрать для начала карьеры в данный момент C# (.NET) или Java (Spring) ?

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  11 месяцев назад

      Привет. Начать карьеру можно и на C# и на Java, принципиальной разницы нет.
      Результат будет определён другими факторами, а не выбором языка. Писал про это статью - t.me/zhukovsd_it_mentor/86.

  • @artemkeller2571
    @artemkeller2571 10 месяцев назад

    Очень хочется увидеть реализацию этой схемы! Чтобы был понятен полный цикл разработки

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  10 месяцев назад +1

      Получился бы слишком объёмный проект.
      Я спроектировал проект попроще, а студенты реализовали:
      - Проектирование - ruclips.net/video/vI9KEs9FsHY/видео.html
      - Разработка - ruclips.net/video/LLaJgrP6S1A/видео.html

  • @amirkenesbay1615
    @amirkenesbay1615 11 месяцев назад

    В какой backend service поместить таблицы order и order_items? Целесообразно ли создать лучше новый сервис orders и помещать все сущности касательно заказов

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

      Не надо бить на микросервисы если у вас нет команды чтобы поддерживать интерфейсы консистентными, писать end-to-end тесты и прочее дерьмо. К тому же в 95% случаев ваш стартап загнется раньше чем ему понадобятся микросервисы.

  • @user-hw6dw3np6v
    @user-hw6dw3np6v 9 дней назад

    Мне кажется, что прямоугольник рест апи должен быть не параллельным, а последовательно включен в три параллельные сущности потому что он функция этих трех аргументов . Или нет !?

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

    Сам я новенький в разработке, поэтому интересно, сколько по вашему мнению требуется людей на такой проект? Понятно, что зависит от сроков, но вот если не торопиться никуда и соблюсти соотношение цена/время сколько человек обычно делают такой проект и за какое время?

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  Год назад +2

      Если ткнуть пальцем в небо, и допустить, что ограничимся только тем функционалом что был на схемах, то думаю что 2 опытных мобильных разработчика и 2 бэкендера за 2-3 месяца сделали бы рабочий прототип.

    • @gribovmax
      @gribovmax Год назад +1

      @@zhukovsd_it_mentor не считая архитектора, пары дизайнеров, бизнес /системных аналитиков, PO, PM, пары девопсов, пара QA, бухгалтера )). Да и мобильные команды стоит увеличить сразу до 2-х разработчиков…

    • @owlboom6458
      @owlboom6458 11 месяцев назад

      @@gribovmax А маркетить и продавать кто будеть???

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

    Зачем всем сервисам иметь доступ ко всем базам? Зачем тогда вообще разделять бд?SQL не справится с сохранением токенов? Есть неугасимое желание поддерживать больше инфраструктуры?
    Еще я бы использовал ролевую модель и после определения роли отправлял бы юзера куда надо.
    А в остальном прекрасный вводный гайд, спасибо. Было интересно

  • @user-or2ug1cs2b
    @user-or2ug1cs2b Год назад +1

    Нужно больше практической информации о документации при проектировании продукта

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

    Спасибо за информативное видео. Хотел уточнить как будет вызываться REST Api после попадания сообщения в очередь RabbitMQ. Как я думаю, если это клауд то в RabbitMQ мы пишем например Azure function (AWS lambda) которая будет триггериться входящим сообщением и дальше будет вызываться соответствующий REST Api? А если это не в клауде то придется писать свой листенер для очереди?

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

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

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

    Почему отношение Order_Items к Menu_items - 1:1, а не n:1 ? Одна позиция меню может участвовать во многих заказах. 43:07

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  11 месяцев назад

      Идея в том, что цена и количество конкретного товара может отличаться от заказа к заказу, поэтому 1:1

  • @Gett37
    @Gett37 10 месяцев назад

    Какие книги вы можете посоветовать по этой теме? Желательно с самых азов.

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  10 месяцев назад

      Книги дают пользу только в контексте вашего текущего опыта. Советую вам расти в профессиональном уровне, как разработчику, постепенно участвовать в процессах проектирования, и читать те книги, которые актуальным вашим текущим задачам.
      По книгам, могу посоветовать такой набор:
      - Проектирование бизнес логики - Domain Driven Design by Eric Evans
      - Архитектура: Software Architecture Patterns, Fundamentals of Software Architecture: An Engineering Approach, Designing Data-Intensive Applications
      - Если в проекте есть БД, SQL/NoSQL, хорошо почитать что-то про проектирование хранилища, например книгу "SQL Antipatterns"

    • @Gett37
      @Gett37 10 месяцев назад

      @@zhukovsd_it_mentor Благодарю!

  • @user-ww1rd7xe1u
    @user-ww1rd7xe1u 11 месяцев назад

    эмэмил сендер сервис!

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

      Сорри бро, инглиш ис зе праймари ленгвидж оф зе девелопмент ворлд

    • @user-ww1rd7xe1u
      @user-ww1rd7xe1u 11 месяцев назад

      @@zhukovsd_it_mentor it is other)

  • @DmitriiSapronov
    @DmitriiSapronov Год назад +6

    Таки салюшен начинается с нефункциональных требований про них не сказано ничего или вскользь. Сколько пользователей, сколько курьеров, где разворачиваемся (aws, azure, ), надежность, доступность, как и кто поддерживает после релиза и прочее. Без этого проектировать бессмысленно. Есть очень хороший плейлист у Interview Pen так и называется system design.

    • @zhukovsd_it_mentor
      @zhukovsd_it_mentor  Год назад +1

      Мне ещё нравится канал System Design Fight Club.
      Но моё видео немного не про это, а про ход мыслей при проектировании бизнес логики и компонентов пет-проекта на тему доставки еды.
      На эту тему нужно в начале видео озвучивать дисклеймер, спасибо за комментарий.

  • @ivanlebedev009
    @ivanlebedev009 9 месяцев назад

    9:50 Начало

  • @codingpas
    @codingpas 10 месяцев назад

    как найти ещё такие видео или контент?

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

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

    • @NerZul121_plus
      @NerZul121_plus 11 месяцев назад

      у всех агрегаторов доставок так сделано

  • @opossum1312
    @opossum1312 Год назад +3

    Остановил ролик после проектирования бд. Очень поверхностное проектирование вообще при довольно сложной темы как агрегатор доставки еды. А номер позиции в меню? А категория блюда? А правила для заказа (минимум ценик заказа, расстояние между клиентом - рестораном )? А возможность убрать ингредиент? А если сеть ресторанов? А как сама агрегация ресторанов будет происходить? А возможность отзыва? и тд тп... уж лучше сделали подробно онлайн заказ у одного ресторана.
    ТЗ уровень описания того самого клиента на фриланс платформе, который не понимает что хочет и ничего толком не знает (сто пудов кинет и у него будут круглые глаза когда узнает сроки\цену). Ну и хранение постоянно меняющееся coorinates курьера в холодном хранилище, даже теоретически, конечно убило.