This course is written by Eric Evans and conducted by Kristian Nordal from Arktekk, which is certified by Eric Evans. The course will be held in norwegian. Read more about the author and the instructor in the bottom of this text.
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.
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#).
Recommended
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 Outline
Day 1: Model Exploration and Ubiquitous Language
Domain–driven design overview
Making implicit concepts explicit
Ubiquitous Language
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: Strategic Design
Morning: Context Mapping
Pragmatic approach to dealing with diverse models and designs on real projects
Relationships between subsystems⁄ relationships between teams
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
Learn more about our partnership with Domain Language
here
Eric Evans is a specialist in domain modeling and design in large business systems. Since the early 1990s, he has worked on many projects developing large business systems with objects and has been deeply involved in applying Agile processes on real projects.
Out of this range of experiences emerged the synthesis of principles and techniques shared in the book "Domain–Driven Design," Addison–Wesley 2003.
Eric now leads Domain Language, Inc., a consulting group which coaches and trains teams to make their development more productive and relevant through effective application of domain modeling and design
Kristian Nordal er en erfaren utvikler, kurs– og foredragsholder. Han er styremedlem i javaBin og aktiv i det norske Java–miljøet. Kristian er opptatt av åpen kildekode og smidig utvikling. De siste årene har han vært involvert i flere prosjekter med åpen kildekode, og er en gjenganger som foredragsholder på JavaZone. Kristian er sertifisert av Eric Evans til å holde hans Domain–Driven Design kurs.
Related courses and news: