Join us on:
Facebook
LinkedIn
Plaxo

T43. Using AOP with DDD to Create Rich, Clean Domain Models

Aslam Khan, factor10

Aslam Khan is a software architect and coach with more than 18 years experience. He has a particular passion for creating simple solutions for complex problems and strives to explain complex concepts as simply as possible. He is pragmatist that believes the the only truthful implementation of an architecture is the code that gets executed. Aslam spends his time empowering teams with techniques that will allow them to design and build better software. You can read his blog at http://aslamkhan.net

The combination of aspect oriented programming (AOP) and domain driven design (DDD) opens up many opportunities for creating domain objects that strikes a good equilibrium between anaemic and obese objects. Traditionally, DDD focuses on creating rich domain models, while AOP is commonly used to separate infrastructure from the domain objects. However, AOP allows type hierarchies to be "broken", weaving of behavior into objects at run time, checking for architecture and design policy violations at compile time amongst other uses. When these AOP techniques are applied to solving domain problems, interesting and elegant solutions are crafted. In this tutorial, you will learn:

  • about the patterns which lies at the heart of an AOP framework
  • to use DDD to create rich domain objects,
  • to use AOP to separate infrastructure code from the domain code,
  • to use AOP to provide alternative implementations to common patterns, and
  • to combine AOP and DDD to solve non-trivial domain problems.
Objectives:

Software developers will learn the fundamentals of DDD and AOP and how to apply them together to solve domain problems, and create clean, maintainable code that exhibits strong separation of concerns.

Format:

This tutorial will be 40% lecture and 60% hands-on programming and design on the participants own laptops. Attendees will require Java (version 5 or later), Eclipse (version 3 or later), AspectJ (version 5 or later) and the Spring Framework (version 2.5 or later) installed.

Audience: Practitioners
Please email any questions to . This e-mail address is being protected from spambots. You need JavaScript enabled to view it