Pluralsight turns Home Depot associates into skilled technologists via OrangeMethod.Your authors, Steve Smith and Julie Lerman, are looking forward to helping you learn the fundamentals of Domain-Driven Design (DDD) through a demonstration of customer interactions and a complex demo application.
Domain-Driven Design By Eric Evans How To Manage ComplexityYoull also get hands on modeling problems, and learn about technical components of DDD, and how to manage complexity. A basic understanding of software architecture would also be helpful. You can find Julie presenting on data access and other Microsoft.NET topics at user groups and conferences around the world. Julie is the author of the highly acclaimed Programming Entity Framework (with a second edition coming soon) and authors the MSDN Magazine Data Points column. For more information about the cookies we use or to find out how you can disable cookies, click here. For the best possible experience on our website, please accept cookies. Throughout the years, weve been able to identify both the benefits and the pitfalls of using DDD. Domain-Driven Design By Eric Evans Series Is ToThe goal of this new blog series is to share our field experience and help you determine if Domain-Driven Design is ideal for your current or next project. Domain-Driven Design By Eric Evans Code Is TryingWhat your code is trying to achieve should only be a reflection of what your company processes are, therefore it makes sense to use the same vocabulary your company uses with clients, during meeting conversations, in user interfaces, etc. Thats where the Ubiquitous Language comes in, forcing developers to use proper naming for Aggregates, Entities and Value Objects in order to represent what a Domain Expert is using daily. For a developer at Sherweb, it means talking with our analysts, our product managers or architects to find out the proper wording for a given Bounded Context. The Ubiquitous Language will not only help you clarify your backend class names, but it will also help you choose the words your end clients are more likely to understand for the user interface. By using the same term for a class, developers wont need to translate their code to a Domain Expert, hence reducing the chances of being misunderstood. The backend structure of the Advisor Portal is built with a better comprehension of what Domain-Driven Design is and it uses our Ubiquitous Language. You can see here how weve been able to name our Aggregates properly in the code. Domain-Driven Design brings in the concept of Aggregate to help us achieve a better encapsulation of the business logic. If you try to remove the last contact of a Partner, then it must throw an exception because a Partner must have at least one contact. It became messy at some point, as each team had to know the whole system and each meaning behind each word of the Ubiquitous Language of each Domain. We realized that it was no longer possible to run the department properly and that it would not sustain the practice in the long run. We then adapted our processes with Domain-Driven Design by assigning a team per Domain. For us, it meant assigning one team to the Billing domain, one to the Provisioning domain and another one to the Offering domain. It worked well, but we wanted more flexibility So we decided to change once again our processes and split each Domain in multiple Bounded Contexts. With this approach, we were able to assign one team per Bounded Context. For example, the Billing Domain was separated into 2 Bounded Contexts: Invoicing and Payment. A team can effectively work on Bounded Context A (Conference Reservations) while another team works on Bounded Context B (Program Management) because those bounded contexts have their own Ubiquitous Language, Entities, Aggregates and so on. Always looking for new challenges, Maxime works hard to keep himself updated on all new technologies, especially those made by Microsoft. And when hes not coding, his favorite activities are cycling, photography and gamingEveryone agrees hes unbeatable playing NHL on console.
0 Comments
Leave a Reply. |