Training: "Domain-Driven Design - a complete example in a current technology stack"

Track: Tutorial

Time: Monday 13:00 - 16:00

Location: Rutherford Room

Abstract: In this intensive half-day tutorial we will explore how a system architecture based on patterns from Domain-Driven Design can be implemented using Spring and Hibernate, a modern and popular opensource technology stack in Java, to build software for complex domains. The tutorial is based on the sample application that has been developed together with Eric Evans, available at http://dddsample.sf.net.During this tutorial we will shift between presentations, in-depth code exploration and discussions.

Agenda:

  • Short introduction to Domain-Driven Design, DDD
  • Repetition of relevant patterns and concepts from DDD, with focus on tactical design; including Associations (Entities, Value Objects, Services), Life Cycle (Aggregates, Repositories), Isolation of the Domain, and parts of Supple Design
  • Presentation and walk-through of the DDD Sample Application where patterns and concepts from DDD will be explored in the context of a working application
  • Discussion on alternative frameworks and ways of implementation
  • Participants will gain knowledge and understanding of how
  • Patterns from DDD can be used to build applications based on current popular open-source frameworks
  • The DDD Sample Application can be used to explore DDD patterns, as basis for experimentation, or starting point for building enterprise applications
  • How DDD can be used to build software to solve problems in complex domains, while keeping technical complexity at a minimum

Target audience:
Developers and Architects

Prerequisites:
Practical experience from using Spring and Hibernate, or similar  
frameworks such as EJB 3.

Basic knowledge about Domain-Driven Design, with focus on implementation (Part 2, "The Building Blocks of a Model-Driven Design", in Eric's book).

The tutorial will be delivered by Patrik Fredriksson and Peter Backlund. Patrik is a certified instructor by Eric Evans and Domain Language, Inc, Peter is the lead developer of the DDD Sample Application. They both work as consultants for Swedish consulting company Citerus, helping clients succeed with their software development projects.

Patrik Fredriksson, Citerus

 Patrik  Fredriksson

As a co-founder and consultant with Citerus Patrik has been doing professional software development and mentoring for the last ten years. He has a particular passion for agile software design and architecture, software development project efficiency and developer craftsmanship. He is highly motivated to improve the way software is created and maintained; good software is fun to use and fun to create, bad software and lost projects make him sad.

Patrik sees bridging the gap between business people and developers as absolutely crucial for making software development projects successful. Getting to know the business domain has always been a top priority for him when working on projects. As Domain-Driven Design addresses many of the issues that arise when working with complex domains, his interest for DDD comes as no surprise.

Patrik has been an active member of the Swedish DDD community for several years and is one of the co-founders of DDD Sverige, the Swedish DDD Interest Group. http://groups.google.com/group/dddsverige

Peter Backlund, Citerus

 Peter  Backlund

Peter is a consultant with Citerus and has been working as a software developer since the year 2000. He is focused on finding tools and methods that allows one to focus on the business problem at hand and creating value for the customer, rather than getting bogged down in technical detail. He considers the lightweight programming and domain-driven design movements a very good fit for each other.

Working full-time as a consultant on-site, Peter has recent and positive experiences of applying DDD design patterns and doing modeling sessions with the domain expert.

Peter is the lead developer and coordinator for the DDDSample project, and an active member of the Swedish DDD Community.