Domain-Driven Design for Mobile Developers — introduction

As a solution architect, I’m commencing a fresh series that will take a close, analytical look at Domain Driven Design (DDD). Though this subject has been extensively covered, I will strive to present it in a new light, focusing on practical implementation rather than mere theoretical understanding. The goal is to make it highly accessible and relevant for our design solutions.
What Exactly is Domain Driven Design (DDD)? The name comes from a 2003 book by Eric Evans that describes the approach through a catalog of patterns. Since then communities of practitioners have further developed the ideas, spawning various other books and training courses. The approach is particularly suited to complex domains, where a lot of often-messy logic needs to be organized. Let's think of DDD in terms of urban planning. It offers the perspective to view a system both as a comprehensive city layout (the agglomeration) and an individual building unit within that city (a house).
Here’s how DDD can be broken down:
Strategic Design (the City Viewpoint): This level of design gives you an overview of the whole system. It consists of several components:
- Generic Subdomain: These are elements essential for running a business but not the core focus. For instance, in a clothing retail company, the delivery system is vital but not central to the business strategy.
- Supporting Subdomain: It includes the infrastructure and frameworks that assist the company in functioning smoothly. This could mean tools for efficient team and employee management.
- Core Domain: The primary earning focus of the company and the aspect that holds the greatest value and priority.
It also describes boundaries between different contexts and mapping techniques between them.
If you would like to follow strategic design topic in detail I recommend you book Domain-Driven Design Distilled by Vernon Vaughn. Looks like the author of the “red book” has rethought the topic and described it much better in this book.
Tactical Design (the House or Apartment Viewpoint): This is the intricate aspect of DDD, focusing on the individual components within the system. Tactical design is tightly correlated with strategic design and often pertains to specific tasks or responsibilities undertaken by individuals or teams.
If you would like to follow the tactical design and more about DDD topic in detail I recommend you book Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy by Vlad Khononov
As we delve into this series, we’ll explore how these aspects of DDD can be applied, modified, and integrated within various projects and organizational contexts. The aim is to offer practical insights and actionable strategies that resonate with both experienced professionals and those new to the field. Everything of course from the mobile developer's perspective and how we can adapt to our world, so stay tuned.






