|
CODE: DDD-IMMER-01-04 DURATION: 4 DAY/S
Learn to 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 experts, users, and developers, the right kind of models can dramatically accelerate the process of translating the customers' needs into working software. Strong domain modeling coupled with programming best practices such as exploiting design patterns, refactoring, and test-driven development yield a principled yet practical approach to the development of large software systems.
This intensive course will aid participants in striking a healthy balance between digging into their subject matter and addressing technological issues, which, while unavoidable, cannot be allowed to dominate the development process for commercially viable systems.
We weave together lecture, discussion and classroom exercises, including hands-on coding projects. In discussions, attendees have the oportunity to discuss their own experiences and relate their own work to the principles and techniques presented in the class.
LEARN HOW TO:
In this Domain Modelling course 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.
PROGRAMME
Day 1: Morning Model Exploration and Ubiquitous Language
- Domain-driven design overview
- Making implicit concepts explicit
- Ubiquitous Language
Day 1 Afternoon 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
Day 2 Morning: Modeling with Domain Experts
- Techniques and pitfalls of bringing about a creative collaboration.
- Modeling out loud
Day 2 Afternoon Supple Design
- 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
Day 3 Morning Strategic Design: Context Mapping
- Pragmatic approach to dealing with diverse models and designs on real projects
- Relationships between subsystems/ relationships between teams
Day 3 Afternoon Distilling the Core Domain
- Distinguishing the core from the mass
- Ways of focusing effort
- Clarifying a shared vision
- Setting up a project for success
Day 4 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
|
NEXT SESSION
|
The next course will be delivered at Zenika - Paris, on 15 Feb 2010 by Eric Evans. Eric is also the author of this course.
|
COURSE DATES & REGISTRATION
Book Online or Call Sales on +44 (0)207 1839040
ABOUT THE AUTHOR
|
Eric Evans, author of Domain-Driven Design, is a thought leader in software design, domain driven design and domain modeling. He is particularly focused on...
More about Eric Evans
|
IN PARTNERSHIP WITH DOMAIN LANGUAGE
IS THIS COURSE FOR YOU?
Managers and analysts (critical) as well as developers (at least half of the attendees) with programming skills on the target platform (Java or C#), 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!
NOTES:
This course is offered in two forms: one for Java/J2EE; one for C#/.NET. The course will be taught using either Java or .NET tools depending on the preference of the majority of delegates. The purpose of the course is to teach DDD concepts and principles, not tools, so the environment in which the exercises are taught is not critical to successful completion of the course.
TEAM MENTORING SERVICES: This Domain Modeling workshop will have a much greater impact on the project if it is followed up with mentoring, to help team members anchor it in their own work, and to help them over the practical obstacles that frustrate, and frequently stop, people doing these things for the first time. Valuable new ideas fail to take hold for lack of some practical detail.
We recommend at least two weeks of hands-on work with the team, starting no more than 2 weeks after the end of the class. A typically ratio is at least one mentor per 10 developers (or one per team, whichever is more).
COURSE PREREQUISITES
Basic knowledge of object modeling and design.
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 or C#).
Note: This course is offered in two forms: one for Java/J2EE; one for C#/.Net
Some exposure to medium to large-scale software development in a multi-team environment. Familiarity with J2EE, .Net or other framework for large scale application development.
COURSE LABS & EXERCISES
In this intensive Domain Modelling class, each morning is spent in lecture and classroom exercises, and each afternoon in a “lab”, doing hands-on coding projects that reinforce the morning’s lessons. The end of each day is a retrospective discussion bringing out the main points of the day’s experience and relating them to the earlier days and to the participants’ own work.
COURSE DATES & REGISTRATION
Book Online or Call Sales on +44 (0)207 1839040
|