DDD Building Blocks

Поделиться
HTML-код
  • Опубликовано: 30 июл 2024
  • Explaining Aggregate Roots, Domain Events, Entities, Value Objects and Repositories - the building blocks in Domain-Driven Design.
    0:00 Building Blocks
    0:18 Ubiquitous Language
    0:54 Value Objects
    1:41 Entities
    2:22 Domain Events
    2:51 Aggregates
    3:39 Repositories
  • НаукаНаука

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

  • @WaxShackleton
    @WaxShackleton Год назад +43

    This is the clearest explanation of DDD I've ever come across. Thanks a lot!

  • @HungLe-jp6ct
    @HungLe-jp6ct 25 дней назад

    I can't believe how clearly this video explains everything. It's the best comprehensive explanation I've had in a while.

  • @Valem0r
    @Valem0r 7 месяцев назад +4

    Finally a clear and to the point explanation about DDD with concrete example. I learned a lot more under 5 mins than i did watching those vague abstract one hour conferences. Thank you for this!

  • @rezamonang
    @rezamonang 6 месяцев назад +5

    This is the best video explaining ddd terminology i've ever watcher. Thank you!

  • @tamasszebenyi5942
    @tamasszebenyi5942 9 месяцев назад +5

    This channel clearly deserves way more subscribers. Thank you and keep on the good work!

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

    These videos are a lifesaver! Keep making them!

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

    Holy crap… this was a great explanation. Really good job! Love the analogies and simple examples with the nice animations and drawings! Keep it up!

  • @Waathiqful
    @Waathiqful 8 месяцев назад

    This is a GREAT explanation of DDD, and tbh one of the best I've seen. I've subscribed to your channel, that's how much I like it!!!

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

    The clearest and simplest explanation I have come across! Thanks!

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

    This is the best and easiest explanation of DDD !!!! Thanks a lot.

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

    By far the best description of DDD.

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

    Simply amazing.. thanks for this. I wish these came once every other day :). They are really that good.👏💪

  • @BaM6IIuP
    @BaM6IIuP 2 месяца назад

    an undervalued video with amazing explanation of so sophisticated topic.
    мое почтение

  • @Mempler
    @Mempler Месяц назад

    This is also somewhat i figured. Thanks for clarifying everything 👌

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

    Really well explained. Well done!

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

    Please, continue doing this amazing content

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

    Nice video ! I'm sure that authorization code flow or some another security flows will be very helpful :)

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

    LOVE THIS!!! Please make more videos

  • @alan-
    @alan- Год назад +2

    That was so easy and quick!

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

    Great content! Keep going👍

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

    Wow, it's not even 8 months from the last video. Nice :)

  • @EljoPro
    @EljoPro 3 месяца назад

    insane explanation thanks alot

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

    thank you very much.

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

    Please continue this domain driven design series

  • @rebinmod
    @rebinmod 7 месяцев назад

    brilliant content

  • @dev.anupsarkar
    @dev.anupsarkar Год назад +1

    well explained

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

    Keep it up.

  • @MrNishantarora
    @MrNishantarora 7 месяцев назад

    perfect

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

    Nice new upload, please keep it up

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

    Which book is good for DDD, I want to be good in DDD suggest me some good source

  • @asierpaz4866
    @asierpaz4866 4 месяца назад

    It is very well explained, but I'm missing domain services. Quoting Evans: "Sometimes, it just isn’t a thing.".

    • @drawingboxes
      @drawingboxes  2 месяца назад

      Thanks! Aaaah yes - I'll add that to my list of potential future videos :)

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

    Can't i perform atomic operation 'steal wheels' on car aggregate and save state? Seems like i could which would lead to the same problem which it supposedly guards against

    • @drawingboxes
      @drawingboxes  4 месяца назад

      If that's a valid operation in your domain then, sure, build it into the aggregate! But now I'm worried about what domain you're modelling.... 😅

  • @botyironcastle
    @botyironcastle 2 месяца назад

    what if you have huge data like 100000000comments in Post object. I don't think you can init a domain object with that much... looks useless to me when dealing with large chunks of data. Thoughts?

    • @drawingboxes
      @drawingboxes  2 месяца назад +1

      That's a great example. There's a bit of an art to defining the aggregate boundary, and I think yes you want to try keep them smaller than that.
      Does your domain need the full comments list to be consistent? If two users load the page, then both leave a comment, should the second comment fail with some concurrency error? Or just allow both comments? Perhaps the boundary is around the comment, not the post.
      But if you do, your implementation doesn't have to load every comment into memory to know if something has changed. Checking a LastCommentDate or LastUpdateDate could also work.

  • @SweetTorment72
    @SweetTorment72 22 дня назад

    Isn't Value Object a bit of an oxymoron, since objects usually have identity in OO? My brain wants to call them Value Types. They behave more like value types such as int and enum, and I also think they are easier to implement as structs rather than classes in C#.

    • @agostiik5712
      @agostiik5712 7 дней назад

      One reason to call them value OBJECT instead of TYPE, is that it is like an attribute of an entity. These attributes can also be simple or complex (=> object) but the important thing as the video also says is that it has to be immutable. For sure, simple attributes could be handled in structs or enums but the more complex it gets, the easier it is to implement it in a class. And in OO an object can literally be anything, either simple or complex. It is not a usual thing to have id in an object, thats more like an entity.

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

    The aggregate looks like Facade for me

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

      This is great insight. They are similar. The GoF facade tries to hide away all the inner objects though, whereas an aggregate root is just the node that we use to access the aggregate. You could design it so you load the full Car aggregate then access one of its Wheel objects to pump up a tyre. We just can’t load that Wheel directly from a repository using just its WheelId

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

    In education contents pls avoid background musics. Its very annoying and disturbing to concentrate

    • @alan-
      @alan- Год назад +5

      I don't find that.

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

      For me it's the opposite