Would you like to learn strong domain modeling and programming best practices? In Eric Evans' Domain Design Immersion Workshop you can do just that! Join Eric's DDD Immersion class course and learn how you can apply DDD put the domain model to work.
Finding and exploiting domain models is key to success with large software systems. By cultivating a strong connection between the language used by developers, appropriate models can dramatically accelerate the process of translating customer needs into working software.
Strong domain modelling coupled with programming best practices such as exploiting design patterns, refactoring, and test-driven development result in a principled yet practical approach to the development of large software systems.
In this intensive and highly practical DDD course you will learn how to strike a healthy balance between digging into your subject matter and addressing technological issues, which, while unavoidable, cannot be allowed to dominate the development process for commercially viable systems.
Alberto Brandolini will guide you through the main DDD principles and practices, and you'll get to share your skills and own experiences in discussions with Eric Evans!
Learn how to:
You will learn to strike a healthy balance between digging into your subject matter and addressing technological issues, which, while unavoidable, cannot be allowed to dominate the development process for commercially viable systems.
What the community says
"I am very satisfied with the teacher who has a thorough understanding of the software development process and drives the course from his own experience."Anatoly Kadyshev, Software Engineer., Deutsche Bank
"Brilliant course! Riveting! This is one of the best courses I have attended so far. Best learning experience. The practical exercises were very useful. "Gayathri Rajan on 5th Dec 2014
"Alberto has excellent knowledge of DDD practices, updated concepts! Enormous amount of relevant information from personal experience, placed in the proper context. Fast paced course with a lot of depth. "Jonathan Van Alteren on 5th Dec 2014
"This has been a very well run course which has been incredibly useful for me. Thank you for the time and effort, it has been very much appreciated."Ross Huelin on 8th Nov 2010
"My biggest takeaways were: - That I should spend more time communicating and visualizing (in various ways) - That strategic DDD concepts should be made visual (and present) - That I should focus even more on language than I already have - That I now have a better idea how concepts from one BC enter another BC"Yves Reynhout, Ultra Genda on 8th Nov 2010
Model Exploration and Ubiquitous Language
- Domain-driven design overview
- Making implicit concepts explicit
- Ubiquitous Language
Jumping in with code
- Brainstorming models
- Expressing a model in software
- Building-block patterns (entities, value objects, repositories, etc.)
- Test-first development as a modeling process
Modeling with Domain Experts
- Techniques and pitfalls of bringing about a creative collaboration.
- Modeling out loud
- Patterns and techniques to tighten models and their connection to code
- Making code obvious, easier to use and change
- Modeling for transactional integrity and distributed systems
Strategic Design: Context Mapping
- Pragmatic approach to dealing with diverse models and designs on real projects
- Relationships between subsystems/ relationships between teams
Distilling the Core Domain
- Distinguishing the core from the mass
- Ways of focusing effort
- Clarifying a shared vision
- Setting up a project for success
Bringing it Together
- Design/code challenge - model supple design with context map
- Round-table discussion of SOA and enterprise frameworks with DDD
- In-depth discussion and Q&A, relating all topics to each other and to your own work
If you are a manager, analyst or developer with programming skills on the target platform (Java), and would like to learn how, as a team, you should strike a healthy balance between digging into your subject matter and addressing technological issues, this is the course for you!
We encourage non-technical managers and analysts to attend. A mixed class is ideal. To make the code exercises work, we only need half of the attendees to have programming skills on the target platform (Java).
To get the most out of of this Domain Driven Design course, you should have basic knowledge of object modeling and design, prior to attending..
You should also have some experience of medium to large-scale software development in a multi-team environment. Familiarity with J2EE or .NET or any other framework for large scale application development is also useful.
Note: This DDD course will be taught in a Java/J2EE environment. The purpose of the course is to teach DDD concepts and principles, not tools, so even if you are not familiar with Java, you should have no difficulties following and implementing the exercises.
Bring your own hardware
A laptop will be provided for you during this course with all of the required software preinstalled.