Алексей Мерсон - Domain-driven design: рецепт для прагматика

Sdílet
Vložit
  • čas přidán 25. 03. 2019
  • Ближайшая конференция - DotNext 2024, 10 - 11 сентября, Москва + online
    Подробности и билеты: jrg.su/x2GKnA
    - -
    Богатый личный опыт позволяет рассказывать Алексею сложные вещи простым и понятным языком.
    Domain-driven design - набор подходов к разработке, который, с одной стороны, на слуху, а с другой, к нему очень сложно подступиться. Есть большие книги (Эванс, Вернон), но далеко не все читают их и еще меньше читают их до конца. А даже и дочитав, могут упустить суть за обилием деталей. Сотни статей в блогах и постов на StackExchange только усугубляют эту проблему.
    - О чем жалеет Эванс спустя 15 лет после выхода его книги?
    - Bounded context: имеет ли значение размер?
    - Все ли паттерны одинаково полезны?
    - И, наконец, в чем же суть domain-driven design?
    Обо всём этом расскажет Алексей в своем докладе. Кто не знает - узнает. Кто знает - узнает лучше.
  • Věda a technologie

Komentáře • 90

  • @user-qu7vl6vo4q
    @user-qu7vl6vo4q Před rokem +69

    Отличный доклад от Егора Летова, очень доходчиво.

  • @AndriiKuftachov
    @AndriiKuftachov Před 4 lety +21

    За вступление точно зачёт!!!
    Смотрю дальше.

    • @alexanderk3762
      @alexanderk3762 Před 3 lety +1

      несколько миллионов лет рефакторинг! Докладчик, видимо, на стэндап вышел ;)

  • @cristalmen9104
    @cristalmen9104 Před 3 lety +8

    Крутой доклад! Спасибо!

  • @xelaksal6690
    @xelaksal6690 Před 4 lety +3

    Спасибо, без лишних усложнений!

  • @Mr43046721
    @Mr43046721 Před 3 lety +21

    Думал ща ОООО Моя оборона будет петь...)) Хороший доклад.

  • @smartphone6498
    @smartphone6498 Před 10 měsíci

    Очень толковый доклад! Всё чётко и по делу, даже вопросы были в тему (на 4)! Отдельное спасибо за примеры кода - их обычно особенно не хватает. Буду рекомендовать всем как вводную по DDD.

  • @igorboyarovich4340
    @igorboyarovich4340 Před 4 lety +19

    Ссылки из презентации собрал тут: telegra.ph/Aleksej-Merson--Domain-driven-design-recept-dlya-pragmatika-Ssylki-03-17

  • @azatakhunov6061
    @azatakhunov6061 Před rokem +1

    дал объяснения многим возникшим вопросам. Спасибо!

  • @jordenskraften8273
    @jordenskraften8273 Před 6 měsíci

    Лучшее и компактное объяснение проблемы ddd

  • @FAU5390
    @FAU5390 Před rokem +4

    Доменный мир победил. Архитектура как у людей

  • @dmitrygrigorev6821
    @dmitrygrigorev6821 Před rokem +2

    Это топ. Егор Летов рассказывает про DDD. Материал качественный.

  • @mikhailgorbov5265
    @mikhailgorbov5265 Před 3 lety +2

    Хорошее изложение, спасибо

  • @mmospanenko
    @mmospanenko Před 3 lety +7

    О#@еннейший доклад, спасибо!

  • @EvgeniyYatsenko
    @EvgeniyYatsenko Před rokem +2

    1С - DDD который мы заслужили

  • @xonicov
    @xonicov Před 7 měsíci

    Прекрасный доклад! Особенно для цели погружения в DDD.

  • @my_pubg_short_moments
    @my_pubg_short_moments Před rokem +1

    Крутой доклад!

  • @SklerozRu
    @SklerozRu Před rokem +2

    Хорошо подготовился, с юмором. Даже волнение не мешает слушать :)

    • @alexeymerson
      @alexeymerson Před 11 dny

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

  • @user-xu8dq5nj3e
    @user-xu8dq5nj3e Před rokem +1

    Отличный доклад

  • @humanisatitle
    @humanisatitle Před 3 lety +5

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

  • @BlushSmith
    @BlushSmith Před 2 lety +5

    Что не так с тумбочкой под ноутом? Почему она перемещается?

  • @whereispie
    @whereispie Před 2 lety

    Thx!

  • @maksimkalinin959
    @maksimkalinin959 Před 3 lety +1

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

  • @user-yp5kl8hp9x
    @user-yp5kl8hp9x Před 10 měsíci +1

    Очень круто дополняет лекцию czcams.com/video/JOy_SNK3qj4/video.html. В ней было рассказано про трилемму ДДД, а в этой красивое решение этой трилеммы через Separate Interface.

  • @user-hl7lr7wo6m
    @user-hl7lr7wo6m Před rokem

    Мне понравилось, спасибо) была оговорка или такой прикол: чистый код Боба Мартина. Он же Роберт. Но я подумал может на западе все Бобы, типо как Дядюшка Сэм😅

    • @learning867
      @learning867 Před rokem +1

      Боб - это сокращение от Роберта.
      Так же как у нас Саша - Александр.

    • @evgeniizaets9243
      @evgeniizaets9243 Před 11 měsíci

      У Роберта Мартина погонялово Дядя Боб

    • @user-hl7lr7wo6m
      @user-hl7lr7wo6m Před 6 měsíci

      А, действительно) Спасибо @@learning867

  • @nadzhafox
    @nadzhafox Před 6 měsíci

    Оооо-ооо моя архитектура

  • @a.batorsky
    @a.batorsky Před 2 měsíci

    14:57 как он смог поймать стакан на бегающей туда-сюда тумбочке?

  • @GP-ez5ms
    @GP-ez5ms Před 3 lety +2

    1.5х минимум.

  • @mr_smind
    @mr_smind Před 2 lety

    от движения камеры сейчас меня укачает..

  • @abaitoguzbayev5736
    @abaitoguzbayev5736 Před 7 měsíci

    07:53 Ключевые идеи стратегического планирования

  • @eabrega
    @eabrega Před 3 lety +2

    Почему тумбочка двигается все время?

    • @ababush
      @ababush Před 2 lety +1

      Встроенный гироскоп не откалибровали

    • @eabrega
      @eabrega Před 2 lety

      @@ababush вы уж пожалуйста, откалибруйте!))

  • @AlBer45
    @AlBer45 Před 3 lety +3

    На скорости 1,5 - норм

  • @botcser
    @botcser Před 5 měsíci

    Почему везде все всю и кругом кричат про принципы ООП и хвастаются своим знанием IoC, а на деле постоянно пытаются познать мир через частное, объяснить общее на частных примерах o_0

  • @Todortodorov62
    @Todortodorov62 Před 3 lety +6

    к сожалению, вода водой. как по мне, давным-давно известные приемы, техники и принципы типа SOLID пытаются подавать под новым соусом.

  • @azatska
    @azatska Před 2 lety

    Rebelовцы, а ну-ка смотреть всем!!!

  • @odys-wise
    @odys-wise Před rokem +2

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

    • @alexeymerson
      @alexeymerson Před 10 měsíci

      В том-то и дело, что абстракции ради абстракций не нужны. Если скрипта достаточно, чтобы выразить бизнес-логику - прекрасно! Только напиши этот скрипт человеческим языком, используя ubiquitous language.

    • @odys-wise
      @odys-wise Před 10 měsíci

      @@alexeymerson и соблюдая все инварианты из моделей? сделать то можно, а тесты? А если база на продакшене? Очень это рисковый вариант. А если еще и в пятницу такое задеплоить или перед отпуском - совсем замечательный выговор будет от руководства, на матерном ubiquitous language. Возможно я что-то не понял, но речь шла об изменении данных в бд мимо домен слоя. Я высказал свое несогласие править SQL скриптами данные в базе, которые записаны моделями.

    • @alexeymerson
      @alexeymerson Před 10 měsíci

      @@odys-wise а можешь написать тайм-код, где говорится про скрипт? Я может тоже тебя неправильно понял

    • @odys-wise
      @odys-wise Před 10 měsíci

      @@alexeymerson будет мне наука, нужно тегать по времени, куда коммент отписал, возможно где-то в самом докладе еще было, но я сейчас только в ответе на вопрос нашел явный прагматичный совет загнать данные хоть и разово скриптом
      czcams.com/video/CR9mLGN9jh0/video.html
      вот тут я не согласен, можно данные балком брать и грузить через команды CQS или UseCases, написав шелл команду для этого, чтобы данные гарантировано прошли через все проверки и валидации. Возможно где-то в докладе еще было, я сейчас ленюсь смотреть его внимательно целиком. Вообще-то может я и погорячился, в докладе есть много полезного для старта в этой теме, я его смотрел два раза, бомбануло во второй, когда я уже насмотрелся всякого, например Хорикова и его доклад про валидацию данных.

    • @alexeymerson
      @alexeymerson Před 10 měsíci

      @@odys-wise спасибо) Тут вопрос из зала по сути был про то, что реализация подходов ДДД обычно тяжеловесная и не подходит для хайлоад. И в целом мой ответ за 5 лет не изменился: надо либо признать, что ваш домен высоконагруженный и нужно ослаблять контроль консистентности (а обычно тяжеловесность вызвана именно жесткими правилами валидации), либо ситуация с высокой нагрузкой исключительная и нужно подпереть ее костылем - сделать возможность bulk-операции, но возложить ответственность за валидность данных на оператора например. Т.к. вопрос был достаточно абстрактный, то и ответить более конкретно на него нельзя без деталей.

  • @sdsds1094
    @sdsds1094 Před 3 lety +1

    Ниочем. У докладчика очень слабые знания DDD.
    Код на русском это печаль - выглядит отстойно и может использоваться в локальных и колхозных проектах.

    • @alexeymerson
      @alexeymerson Před 3 lety +1

      Абсолютно согласен!

    • @pupazzamobila1006
      @pupazzamobila1006 Před 3 lety

      Можете дать ссылку на более сильных докладчиков? Здесь и правда никакой глубины понимания DDD я у оратора не заметил.

    • @ababush
      @ababush Před 2 lety +1

      Хейтить всегда легче

    • @smartphone6498
      @smartphone6498 Před 10 měsíci +1

      С нетерпением ждём свое, по всей видимости идеальное и полное понимание ddd от автора коммента, хотя бы текстом.

  • @alexeybeloushko7240
    @alexeybeloushko7240 Před rokem

    дичь

  • @dmytrovolynets
    @dmytrovolynets Před 4 lety +1

    Классный доклад. У меня всю дорогу был вопрос о Clean Architecture. Хорошо, что в конце спросили))

  • @dreamwalkerzmm
    @dreamwalkerzmm Před 4 lety +9

    Отличный доклад! Многое стало понятнее))

  • @milovidov42
    @milovidov42 Před 5 lety +6

    Интересный доклад, спасибо.

  • @Oswee
    @Oswee Před 4 lety +13

    Spasibo. Otlichnij doklad. Smotrju v mesto Netflixa. :)

  • @petrkassadinovich2705
    @petrkassadinovich2705 Před 4 lety +2

    Спасибо за доклад!
    PS: Ребят вы обычно реализуете свой слой репозитория или просто используете EF?)

    • @webhunterok
      @webhunterok Před 4 lety

      EF. Не вижу смысла создавать дополнительный слой репозитория если EF и так его реализует.

    • @artemadeev7444
      @artemadeev7444 Před rokem

      Также, юзаю только Ef

  • @evgeniizavodnov3086
    @evgeniizavodnov3086 Před 4 lety +29

    Смотреть на скорости х1.25

  • @Alex-iz3bi
    @Alex-iz3bi Před 4 lety +6

    ссылки из доклада вынести в описание зло?

  • @Samuronchik
    @Samuronchik Před 5 lety

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

    • @alexeymerson
      @alexeymerson Před 5 lety +5

      Отдельный класс Calculator нужен для соблюдения SRP. В "алгоритм" чекаута скидка входит в виде "применяем скидку". Детали расчета скидки - это другой уровень абстракции. Кроме того, так будет проще тестировать: мухи - отдельно, котлеты - отдельно. С репозиторием в данном случае проблем нет, но в принципе можно калькулятор не инжектить, а сконструировать вручную через new DiscountCalculator. Если забить на SRP, то да, можно сделать расчет скидки методом внутри CheckoutService, всё зависит от планов на дальнейшую разработку и понимания того, как будут развиваться бизнес-требования.

    • @chrise202
      @chrise202 Před 4 lety

      Будет хуже, Сделайте его Public? Он же не должен использоваться вне сервиса. Ок private? - Удачи в Unit Testing-е. А если помимо калькулятора ещё десятка методов туда присобачить? Придётся покупать мышку с Infinite Scroll. А если из-за бага вручную напишете консольку чтобы ретроспективно исправить скидику в БД - копи паст?

  • @Baannia
    @Baannia Před 3 lety +3

    ibicheskiy language

  • @alexmednonogov1684
    @alexmednonogov1684 Před 4 lety +16

    Арамис уже не тот

  • @vasilzaranok5894
    @vasilzaranok5894 Před 5 lety

    Как-то ответы на вопросы после доклада были невпопад мне кажется, возможно спикер волновался :) А так доклад крутой, стоит смотреть!

  • @loam
    @loam Před 4 lety +1

    Лайк за правильное произношение английских слов :) Это одна из причин, по которой я обычно избегаю просмотр каких-либо видеороликов по программированию на русском (неправильное произношение).