Imagine you want to model an application for planning parties for various clients. The boundaries of language consistency define the borders of your bounded contexts. In fact it is crucial that the language is precise and consistent inside of context's boundaries. It is the code which is implemented and the language used to implement it. It's the application (or its part) which solves a problem. They have nothing to do with programming but everything to do with real challenges.īounded Context is the solution space for each of the subdomains. Each of these areas is a problem to solve. When running a dog grooming business, you probably need a client (dog?) catalog, a list of employees, inventory of resources and a booking system (to name a few). In order to successfully run a business, you need to take care of all its elements. Whatever is the core interest of your business, it is your business domain. It may be "car sharing", "dog grooming", "karate dojo" or "party planning". Let's concentrate on the first of these meanings Business Domain is what an organization does and the realm it does it in. It describes at least 3 different beings (Business domain, Core domain and a business logic layer). In Domain-Driven Design, the term "domain" is omnipresent. Problem space vs solution spaceīefore we get to what a bounded context is, let's describe what it solves. It's time to organize the features neatly so that each problem is solved in its own realm. The tangled mixture of features and responsibilities is the reason why JIRA tickets take longer to complete as an app grows. Why does a product catalog model know to which shipping category it is assigned?īy the way - these are examples from a very well know ecommerce written in Ruby on Rails.Why does a shipment model need to know how to update warehouse stock level when a shipment is cancelled?.Why is wishlist logic defined in the same place as the one for invoicing? What do they have in common?.Having them all implemented in one application may lead to questions like: For example, do you know how many issues need to be solved to run an online bookstore?Īnd that's only the happy path. More often than not, a single application is delivered to solve multiple problems. Applications are built to solve problems - real-life problems encountered by business.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |