DDD - The 5 Minutes Tour πΎ
During a conference in Paris, after the organizers asked me to fulfill a missing-speaker slot for a lightning talk (an hour before the presentation time), not only did I accept, but I decided that an introduction to DDD (Domain Driven Design) was a good choice. Yes, DDDβββthe discipline that was born in a 560-page book. π
Unfortunately, even if I had managed to get the attention of a room crowded with (PHP!) developers to talk about a topic that was dear to my heart, I donβt know if the presentation insisted enough on the two key aspects that are DDD. β
My goal with this article is to give it another try, with more time to prepare. π
https://t.me/pgimg/164
[ Article ] : kutt.it/ddd
γ°γ°γ°γ°γ°γ°
#DDD
@ProgrammingTip
During a conference in Paris, after the organizers asked me to fulfill a missing-speaker slot for a lightning talk (an hour before the presentation time), not only did I accept, but I decided that an introduction to DDD (Domain Driven Design) was a good choice. Yes, DDDβββthe discipline that was born in a 560-page book. π
Unfortunately, even if I had managed to get the attention of a room crowded with (PHP!) developers to talk about a topic that was dear to my heart, I donβt know if the presentation insisted enough on the two key aspects that are DDD. β
My goal with this article is to give it another try, with more time to prepare. π
https://t.me/pgimg/164
[ Article ] : kutt.it/ddd
γ°γ°γ°γ°γ°γ°
#DDD
@ProgrammingTip
Telegram
Programming Tips Resources
Domain Driven Design - Clear Your Concepts Before You Start β¨
What we traditionally do when we start a business applicationβ
We read the spec and find the functionalities. We break down tasks. β
We do the estimation. We distribute the works among team members. We design the database schema - sometimes by the team leader or sometimes by the respective developer. We start coding. π»
Soβ Whatβs wrong with this approachβWe have been doing goodβοΈDonβt weβ
The answer is YES and NOβοΈYes we are doing good in delivering our projects. But NOβοΈ
We are not doing good in maintaining and extending our projects. π€¦π»ββοΈ
Think about all of the projects you have worked last few years in the traditional approach. Did you ever face any of the issues below ? π€
Your project has the same functionality implemented in the same way or different in different places. π₯
You have more than one object for the same item. β
You have objects that have properties that are not actually attributes of that object. π π»ββοΈ
You have no or very poor relationship among related items. βοΈ
Looking at your objects it is not possible to understand what actually the whole application is all about. π€·π»ββοΈ
https://t.me/pgimg/184
[ Article ] : kutt.it/ddda
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #Architecture
@ProgrammingTip
What we traditionally do when we start a business applicationβ
We read the spec and find the functionalities. We break down tasks. β
We do the estimation. We distribute the works among team members. We design the database schema - sometimes by the team leader or sometimes by the respective developer. We start coding. π»
Soβ Whatβs wrong with this approachβWe have been doing goodβοΈDonβt weβ
The answer is YES and NOβοΈYes we are doing good in delivering our projects. But NOβοΈ
We are not doing good in maintaining and extending our projects. π€¦π»ββοΈ
Think about all of the projects you have worked last few years in the traditional approach. Did you ever face any of the issues below ? π€
Your project has the same functionality implemented in the same way or different in different places. π₯
You have more than one object for the same item. β
You have objects that have properties that are not actually attributes of that object. π π»ββοΈ
You have no or very poor relationship among related items. βοΈ
Looking at your objects it is not possible to understand what actually the whole application is all about. π€·π»ββοΈ
https://t.me/pgimg/184
[ Article ] : kutt.it/ddda
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #Architecture
@ProgrammingTip
Telegram
Programming Tips Resources
ddd_first_15_years.pdf
26.6 MB
Domain-Driven Design: The First 15 Years β‘οΈ
Fifteen years after the publication of "Domain-Driven Design: Tackling Complexity in the Heart of Software" by Eric Evans, DDD is gaining more adoption than ever. π₯
To celebrate the anniversary, we've asked prominent authors in the software design world to contribute old and new essays. π
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #DomainDrivenDesign
@ProgrammingTip
Fifteen years after the publication of "Domain-Driven Design: Tackling Complexity in the Heart of Software" by Eric Evans, DDD is gaining more adoption than ever. π₯
To celebrate the anniversary, we've asked prominent authors in the software design world to contribute old and new essays. π
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #DomainDrivenDesign
@ProgrammingTip
To DDD or not to DDDβWhat to do if your domain is boringβ
But what exactly does a complex domain look likeβ
When does a domain become complex enough to justify the extra cost of applying DDDβ
And why does DDD have to be so expensiveβ
In this talk, I'll challenge some of the DDD common myths, ask a few hard questions and explore what is possible when you stop blindly following what is deemed "the best practice". β¨
I'll share with you a few patterns that you can apply even to projects that are not DDD all the way just yet. You'll walk away with practical knowledge that you can start using right away. π
[ YouTube ] : youtu.be/h6WvetICeo4
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #DomainDrivenDesign #Conference
@ProgrammingTip
"DDD should only be applied to complex domains!" - you've probably heard that over and over again.But what exactly does a complex domain look likeβ
When does a domain become complex enough to justify the extra cost of applying DDDβ
And why does DDD have to be so expensiveβ
In this talk, I'll challenge some of the DDD common myths, ask a few hard questions and explore what is possible when you stop blindly following what is deemed "the best practice". β¨
I'll share with you a few patterns that you can apply even to projects that are not DDD all the way just yet. You'll walk away with practical knowledge that you can start using right away. π
[ YouTube ] : youtu.be/h6WvetICeo4
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #DomainDrivenDesign #Conference
@ProgrammingTip
Telegram
Programming Tips Resources
Service boundaries identification example in e-commerce β
The code residing in system services might be perfect, but it doesnβt really matter if service boundaries are identified incorrectly, since there is no Business-IT alignment, that both DDD and SOA are striving for. And it means inevitable project failure ... β
[ Article ] : kutt.it/BContext
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #BoundedContext #Architecture
@ProgrammingTip
The code residing in system services might be perfect, but it doesnβt really matter if service boundaries are identified incorrectly, since there is no Business-IT alignment, that both DDD and SOA are striving for. And it means inevitable project failure ... β
[ Article ] : kutt.it/BContext
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #BoundedContext #Architecture
@ProgrammingTip
Telegram
Programming Tips Resources
Bounded Context Canvas V3: Simplifications and Additions β
How do we break a large system into smaller, more manageable modular components? This article describing a workshop recipe you can use. π
In Domain-Driven Design, a large system is decomposed into bounded contexts, which become natural boundaries in code as microservices and as teams in the organisation. π’
There is no shortcut to identifying good boundaries. Both a wide and deep knowledge of the business and domain is essential.
[ Article ] : kutt.it/bc-canvas
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #BoundedContext
@ProgrammingTip
How do we break a large system into smaller, more manageable modular components? This article describing a workshop recipe you can use. π
In Domain-Driven Design, a large system is decomposed into bounded contexts, which become natural boundaries in code as microservices and as teams in the organisation. π’
There is no shortcut to identifying good boundaries. Both a wide and deep knowledge of the business and domain is essential.
[ Article ] : kutt.it/bc-canvas
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #BoundedContext
@ProgrammingTip
Telegram
Programming Tips Resources
Domain-Driven Design: A Recipe for a Pragmatist π¦
Why are DDDs usually approached from the wrong side? And which side do you want? What do giraffes and platypuses have to do with all this?
In this article, I will tell you what Domain-Driven Design is and what is its essence.
[ Article ] : kutt.it/ddd-recipe
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD
@ProgrammingTip
Why are DDDs usually approached from the wrong side? And which side do you want? What do giraffes and platypuses have to do with all this?
In this article, I will tell you what Domain-Driven Design is and what is its essence.
[ Article ] : kutt.it/ddd-recipe
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD
@ProgrammingTip
Telegram
Programming Tips Resources
Implementing Domain Driven Design β
This is a practical guide for implementing the Domain Driven Design (DDD). While the implementation details rely on the ABP Framework infrastructure, core concepts, principles and patterns are applicable in any kind of solution, even if it is not a .NET solution. π
[ Article ] : kutt.it/ddd-impl
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #DomainDrivenDesign
@ProgrammingTip
This is a practical guide for implementing the Domain Driven Design (DDD). While the implementation details rely on the ABP Framework infrastructure, core concepts, principles and patterns are applicable in any kind of solution, even if it is not a .NET solution. π
[ Article ] : kutt.it/ddd-impl
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #DomainDrivenDesign
@ProgrammingTip
Telegram
Programming Tips Resources