Domain-Driven Design in 150 Seconds

  Рет қаралды 137,060

Amichai Mantinband

Amichai Mantinband

Күн бұрын

In today's video, we'll cover the most important concepts of Domain-Driven Design in an impossible timeframe of 150 seconds!
What's on the agenda?
What is DDD
Strategic design
Subdomains
Context Map
Bounded Context
Ubiquitous Language
Tactical Design
Entities vs. Value Objects
Aggregates
Aggregate Root
Invariants
This took way too many hours to create 😂 Loved it? Consider becoming a Patron for only 5$: / amantinband
Follow me on 'em socials:
Twitter: / amantinband
LinkedIn: / amantinband
GitHub: github.com/ama...
#ddd #domaindrivendesign #dotnet

Пікірлер: 87
@MilanJovanovicTech
@MilanJovanovicTech 2 жыл бұрын
I asked myself: Can he deliver on DDD in 150s? Yes, yes he can! Great job 😁
@amantinband
@amantinband 2 жыл бұрын
Thanks man 🫶🏼
@lukagolubovic3641
@lukagolubovic3641 Жыл бұрын
Nisam jedini Srbin koji voli DDD!
@wennwenn1422
@wennwenn1422 Жыл бұрын
Sorry, I disagree. What's the purpose of these videos if you already know DDD or does very little to educate audience? Just throwing around concepts and covering it under 150s does not make it a big deal.
@АлексейсПирмайс
@АлексейсПирмайс 4 ай бұрын
did he?
@temelreis381
@temelreis381 Жыл бұрын
I love these shorter explanations of complex subjects! Any fool can go on and on about a subject for hours, but it takes real skill to summarize it!
@thishandleistaken
@thishandleistaken 2 жыл бұрын
I think something is wrong with your microphone! Nice vid otherwise!
@amantinband
@amantinband 2 жыл бұрын
Yeah, I noticed yesterday the gain was way up 😣 the sounds will be significantly better the video after the next one 🤞
@Brianle180
@Brianle180 2 жыл бұрын
I actually thought it was my IPad speaker problem.
@jonathanniels
@jonathanniels Жыл бұрын
Such a cool microphone setup, yet very poor voice sound quality
@simonsteinkruger5196
@simonsteinkruger5196 Жыл бұрын
Great video to recap all the things learned if you have already a ddd theory background. For absolute beginners it's probably overwhelming. But anyway great content, very precise!
@esteban-alvino
@esteban-alvino 5 ай бұрын
I'm starting with DD I wrote some java services. I'm encouraged to learn methodologies to improve my code. Thanks for your effort doing video like this one.
@GughaGSrinivasan
@GughaGSrinivasan Жыл бұрын
Just like Fireship channel... crisp and on point... Thats all I needed to know... I have both the books about DDD, but never finished it.... even though I am a JAVA developer, I have subscribed for your content... :) keep it coming.
@amantinband
@amantinband Жыл бұрын
Thanks Gugha!
@rajughorai7483
@rajughorai7483 8 ай бұрын
🎯 Key Takeaways for quick navigation: 00:00 🌐 *Domain-Driven Design is a debated software development approach, loved by some and hated by others.* 00:28 🌐 *In Domain-Driven Design (DDD), strategic design begins with exploring the problem space, identifying subdomains like listings, reviews, and invoices.* 01:11 📚 *Bounded Contexts in DDD are logical boundaries with consistent language, fostering a ubiquitous language shared between developers and business experts.* 01:37 🧩 *Tactical design in DDD focuses on implementation details, distinguishing between entities (mutable with an ID) and value objects (immutable without an ID).* 02:20 🏠 *In DDD, aggregates consist of entities and value objects, with an aggregate root responsible for enforcing invariance and serving as a transactional boundary.*
@sushilb7994
@sushilb7994 2 жыл бұрын
Awesome video, Amichai! Very excited to the DDD series✌️
@amantinband
@amantinband 2 жыл бұрын
We’re starting a deep dive this Wednesday 🤙🏼
@carmineos
@carmineos 2 жыл бұрын
Great and clear explanation, can't wait to continue following your Clean Architecture & DDD videos
@amantinband
@amantinband 2 жыл бұрын
We’re coming back full force starting this Wednesday!
@carmineos
@carmineos 2 жыл бұрын
@@amantinband 🔥
@martamasson8941
@martamasson8941 Жыл бұрын
Aaaaaaaaawesome!! 👏👏👏👏👏👏👏👏👏 Big fan of you!!! Going immediately to the next video to go deeper
@pacoblomkvist_
@pacoblomkvist_ 2 жыл бұрын
And that's why universities should consider hiring people whith extensive business experience rather than IT philosophers. Great explanation even for 150s!!!!!
@amantinband
@amantinband 2 жыл бұрын
Haha universities can’t afford people with extensive business experience
@daviddawkins
@daviddawkins 5 ай бұрын
That was great, I look forward to more on this subject. (sound was distorted for me though...)
@winstonstrongarm8929
@winstonstrongarm8929 2 жыл бұрын
Great video, you summarized it well. My ADHD thanks you
@amantinband
@amantinband 2 жыл бұрын
Haha tell me about it 😅
@botelhorui
@botelhorui Жыл бұрын
Good introduction! We should learn like Google-Maps: DDD zoomed-out = 150 seconds, zoom-in DDD 30 minutes, zoom-in into each DDD-area 60 minutes. Thank you!
@gustavoadolfohernandezcabr6934
@gustavoadolfohernandezcabr6934 2 жыл бұрын
Great. Waiting for the DDD series!!!😀
@amantinband
@amantinband 2 жыл бұрын
Thanks Gustavo 🫶🏼
@mamadeebuildsahouse
@mamadeebuildsahouse Жыл бұрын
I want to learn architecture but there are so many ways. I wish we remained on the MVC pattern of design and then solve a business problem that way. I'm currently designing an imaging system and looking for ways to make it scalable and reusable.
@jimmevandermeer6511
@jimmevandermeer6511 Жыл бұрын
thank you so much dude, cba with a 500 paged book
@adambickford8720
@adambickford8720 Жыл бұрын
Its like OOP, only even more vague and expensive to change
@Tamer_Ali
@Tamer_Ali 2 жыл бұрын
Hi Amichai, I hope you talk about Hash Table and its benefits over other collections like arrays with example
@amantinband
@amantinband 2 жыл бұрын
Sure, that’s a fun topic. Perhaps I’ll deliver it with solving an interview question
@Tamer_Ali
@Tamer_Ali 2 жыл бұрын
@@amantinband cannot wait 👍
@purtelo
@purtelo Жыл бұрын
Good one! But... what is the purpose of that big microphone in front of you? :D
@ak-ot2wn
@ak-ot2wn Жыл бұрын
I can't believe how much this video helped me compared to all the theory :D
@rohitshirgaonkar1982
@rohitshirgaonkar1982 2 жыл бұрын
Would like more of these trailers. ❤ Keep learning 😊
@amantinband
@amantinband 2 жыл бұрын
Thanks, Rohit! I think a good way to learn large topics is getting a sneak peek of the big picture and then breaking it down piece be piece. So you can expect more similar videos in the future 🙂
@Noceo
@Noceo 2 жыл бұрын
I don’t know if you take requests, but I would love to see your approach on unit testing. Especially in combinations with things like middleware or MediatR behaviors, which makes it tricky to test validation logic (I know you can test the validator itself, but maybe you have a more holistic approach).
@amantinband
@amantinband 2 жыл бұрын
I have a lot of opinions when it comes to testing 😅 I’ll be covering unit/integration testing in depth in future videos 👍🏼
@adisilagy
@adisilagy 2 жыл бұрын
Great video @Amichai You're very good with explaining complex topics especially due to the examples that we can all relate to. I was wondering do you have a rule of thumb to identify context boundaries? Let's assume we develop a quiz system. Sure the quiz is an aggregate root responsible for the questions and their options. But what about the records of the learners? I assume it controlled by another aggregate root like LearnerQuiz.... WDYT?
@amantinband
@amantinband 2 жыл бұрын
When you say “context boundaries”, are you referring to different bounded contexts or different aggregates?
@adisilagy
@adisilagy 2 жыл бұрын
@@amantinband I was referring to different bounded context...
@amantinband
@amantinband 2 жыл бұрын
For simple scenarios like the quiz example, It’s probably a single bounded context. Ideally each subdomain is mapped to a single bounded context. Identifying subdomains depends on the domain, but a good indicator is looking at the different teams that will be working in the domain. Will they be working in the same application/system? Will it be a single unit of deployment? If the teams are working on different applications/systems/microservices then it can make sense to draw a boundary and have an ACL in the downstream subdomain. Since bounded contexts are logical boundaries, separate systems/separate teams doesn’t necessarily mean separate bounded contexts. What’s important is that the relevant people are aligned within a bounded context, and that the relationship between the subdomains is clear. Does that make sense?
@adisilagy
@adisilagy 2 жыл бұрын
@@amantinband Yes it makes a perfect sense! Thanks a lot
@sprintwithcarlos
@sprintwithcarlos 2 жыл бұрын
In your example reservation entity and aggregate are the same. Is that correct?
@cavila0217
@cavila0217 Жыл бұрын
Thanks a bunch for this nice explanation, this is what I've waiting for!
@alexanderm8169
@alexanderm8169 Жыл бұрын
How would you add the sign in request or create user request to a SPA client or .net maui in the clean architecture (DDD). Would it be nested under the presentation layer just another class library with projectName.Api?
@lilililliilil
@lilililliilil 2 жыл бұрын
plz more more videos about DDD !!❤ tyty
@SebastianPatten
@SebastianPatten 2 жыл бұрын
Great job. Nailed it
@amantinband
@amantinband 2 жыл бұрын
Thanks Sebastian 🫶🏼
@anantawijaya1594
@anantawijaya1594 Жыл бұрын
This is great explanation in short time. thnaks
@gui.ferreira
@gui.ferreira 2 жыл бұрын
Great overview 👏
@amantinband
@amantinband 2 жыл бұрын
Thanks, Gui ❤️
@zakariasmahi2263
@zakariasmahi2263 2 жыл бұрын
Great explanation, thanks :)
@amantinband
@amantinband 2 жыл бұрын
Great to hear. How familiar are you with DDD? I’m curious how much of a cognitive load this was for new comers 👀
@NoName-oh9fh
@NoName-oh9fh 2 жыл бұрын
То есть это работает так? ProfileService -- UserService -- UserRepository -- UserEntity ?
@alexeym6830
@alexeym6830 Жыл бұрын
Super! Very clear!
@FluffyPhoenix991
@FluffyPhoenix991 7 ай бұрын
Nicely wrapped up, a bit fast but well I guess that's the point of this video :P.
@andang6613
@andang6613 Жыл бұрын
I watched it 10 times, so it's 1500s for me
@pynchia4119
@pynchia4119 4 ай бұрын
good vid. Pity the audio is bad, despite the professional mic
@aktaruzzamansuman6264
@aktaruzzamansuman6264 4 ай бұрын
Nice explanation in 150s.
@tiagorodrigues6284
@tiagorodrigues6284 2 жыл бұрын
I would be more than welcoming jeovas witnesses if they wanted to talk about our lord and savior DDD!
@amantinband
@amantinband 2 жыл бұрын
Hahah DDD is indistinguishable from a religion at this point 😂
@Tony-bu1rj
@Tony-bu1rj 2 жыл бұрын
Great video!
@sudhirkumar-wx8hn
@sudhirkumar-wx8hn 2 жыл бұрын
Awesome!
@amantinband
@amantinband 2 жыл бұрын
Thanks, Sudhir 🫶🏼
@danil3700
@danil3700 2 жыл бұрын
Just a comment to promote the channel
@mysocial
@mysocial Жыл бұрын
too fast to unclear. are you talking to those who knows already ?
@jodainemoore8300
@jodainemoore8300 10 ай бұрын
Quick Tip listen to it in Double time(2x)
@sgipower
@sgipower 3 ай бұрын
oh no that sound...
@krccmsitp2884
@krccmsitp2884 2 жыл бұрын
Unfortunately there are alot of misconceptions about DDD, and *those* are the source of rejection and hatred.
@RaginiEngCSRKDF
@RaginiEngCSRKDF Жыл бұрын
wow
@lucarius4465
@lucarius4465 Жыл бұрын
Please turn the gain down on your mic. It's spiking really hard for no reason
@MrKorbenDallas
@MrKorbenDallas 2 жыл бұрын
wtf with sound?
@amantinband
@amantinband 2 жыл бұрын
Yeah sorry about that, the gain was way too high. The sound should be significantly better starting next week 🤞
@MrKorbenDallas
@MrKorbenDallas 2 жыл бұрын
@@amantinband Great, thank you
@PapaFranciscoOk
@PapaFranciscoOk Жыл бұрын
Impossible to watch this because of sound quality.
@Zebsy
@Zebsy Жыл бұрын
Ouch my ears
@thomaspeputofules8471
@thomaspeputofules8471 2 жыл бұрын
If you adjust the way you talk it sound like clip from the 50s... Seriously something is wrong with your mic.
@SilentTremor
@SilentTremor Жыл бұрын
You are the nicest person ever, I would love to work with you, but I'll tell you this, DDD is bad for complex systems on the contrary of what is advertised, creates insanely coupled systems and there's to much Object Oriented Architecture, on a SOA, rich contracts are the death of the flexibility and adaptability.
@S3Kglitches
@S3Kglitches 2 жыл бұрын
The sound quality is awful like my university professors
@amantinband
@amantinband 2 жыл бұрын
Yeah sorry about that. My gain was way too high. The video after the next one should be significantly better 🤞
@S3Kglitches
@S3Kglitches 2 жыл бұрын
@@amantinband too bad this one is not reuploaded because I was really interested in the topic but cannot listen to it really
@haslamconsultancy2152
@haslamconsultancy2152 2 жыл бұрын
@@S3Kglitches add closed captions and watch muted 🤷🏼‍♂️
@yohami
@yohami 7 ай бұрын
DDD is trash
Domain-Driven Design: The Last Explanation You'll Ever Need
21:05
Software Developer Diaries
Рет қаралды 4,7 М.
Domain Driven Design: What You Need To Know
8:42
Alex Hyett
Рет қаралды 129 М.
哈哈大家为了进去也是想尽办法!#火影忍者 #佐助 #家庭
00:33
火影忍者一家
Рет қаралды 118 МЛН
Seja Gentil com os Pequenos Animais 😿
00:20
Los Wagners
Рет қаралды 9 МЛН
How it feels when u walk through first class
00:52
Adam W
Рет қаралды 13 МЛН
DDD By Example - Paul Rayner - DDD Europe 2020
54:58
Domain-Driven Design Europe
Рет қаралды 51 М.
Clean Architecture vs Domain-Driven Design (DDD) - Understand the Difference
11:26
What is DDD - Eric Evans - DDD Europe 2019
57:06
Domain-Driven Design Europe
Рет қаралды 262 М.
Is Domain-Driven Design Overrated? • Stefan Tilkov • GOTO 2021
31:21
GOTO Conferences
Рет қаралды 669 М.
Why Agent Frameworks Will Fail (and what to use instead)
19:21
Dave Ebbelaar
Рет қаралды 71 М.
Что такое DDD за 10 минут с примерами
10:03
iPad Domino has been in use for a long time. Let's see the effect
0:12
3D Fantasy Life
Рет қаралды 805 М.
Телефон - самая грязная ваша вещь
0:24
Up Your Brains
Рет қаралды 2,3 МЛН
iPhone теперь БЕСПОЛЕЗНО воровать 🛠
0:25
Technodeus
Рет қаралды 1,2 МЛН