Programming Tips πŸ’‘
51.6K subscribers
67 photos
10 videos
30 files
354 links
Programming & AI:
Tips πŸ’‘
Articles πŸ“•
Resources πŸ‘Ύ
Design Patterns πŸ’Ž
Software Principles βœ…

πŸ‡³πŸ‡± Contact: @MoienTajik

🎯 Buy ads: https://telega.io/c/ProgrammingTip
Download Telegram
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
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
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
To DDD or not to DDD❓What to do if your domain is boring❓

"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
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
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
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
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