small medium large xlarge

Domain-Driven Design Using Naked Objects


Cover image for Domain-Driven Design Using Naked Objects

Domain-Driven Design Using Naked Objects


Domain-driven design (DDD) focuses on what matters in enterprise applications: the core business domain. But applying the DDD principles can be easier said than done. Enter Naked Objects: an open-source Java framework that lets you build working applications simply by writing the core domain classes while Naked Objects takes care of the rest of the application infrastructure for you. This book shows how you can rapidly develop and test domain applications, and then deploy to either conventional architectures or onto Naked Objects itself. Get ready to write some of the best business software of your career.

Customer Reviews

This is a great hands-on guide to implementing domain-driven
solutions using the innovative Naked Objects open source framework.

- Dylan Hayes

Solutions architect, Deloitte Consulting

Domain-driven design comes alive in this book, as it is demonstrated
by example on every page. Furthermore, Naked Objects is shown to
be the ideal support for the approach, focusing as it does on the core
concepts of a system’s domain. Dan Haywood’s easy style means that
the complex ideas in this book come across very clearly. Don’t just
read this book…mark, learn, and inwardly digest!

- Andy Carmichael

CEO, OpenXprocess Ltd.

This is a tutorial, a Naked Objects manifest, a software architecture
book, and a user reference, all at the same time and combined
amazingly well. You’ll find this book to be the best way of developing
enterprise apps without repeating yourself.

- Sebastián Slutzky

Software engineer, Department of Family & Social Affairs, Ireland

Over the years I have watched Dan strive to find the best ways
to develop complex systems, and I’m glad he has taken this
opportunity to share with you just some of his insights and
experiences. As well as a champion of using the Naked Objects
framework, Dan has now become one of its major contributors and
committers, and I must say we are lucky to have his energy and
enthusiasm directed at this project.

- Robert Matthews

Creator, the Naked Objects framework

See All Reviews

About this Title

Pages: 375
Published: 2009-12-14
Release: P1.0 (2009-12-15)
ISBN: 978-1-93435-644-9

Domain-driven design (DDD) focuses on what matters in enterprise applications: the core business domain. Using object-oriented principles, you can develop a domain model that all team members-including business experts and technical specialists-can understand. Even better, this model is directly related to the underlying implementation.

But if you’ve tried building a domain-driven application then you’ll know that applying the DDD principles is easier said than done. Naked Objects, an open-source Java framework, lets you build working applications simply by writing the core domain classes. Naked Objects automatically renders your domain object in a generic viewer—either rich client or HTML. You can use its integration with Fitnesse to test-drive the development of your application, story-by-story. And once developed, you can deploy your application either to the full Java-based Naked Objects runtime, or within your existing application infrastructure.

In this book, Dan Haywood first gives you the tools to represent your domain as plain old Java objects, expressing business rules both declaratively and imperatively. Next, you’ll learn the techniques to deepen your design while keeping it maintainable as the scope of your application grows. Finally, you’ll walk through the development practices needed to implement your domain applications, taking in testing, deployment, and extending Naked Objects itself. Throughout the book, you’ll build a complete sample application, learning key DDD principles as you work through the application step by step. Every chapter ends with exercises to gain further experience in your own projects.

Through its focus on the core business domain, DDD delivers value to your business stakeholders, and Naked Objects makes using DDD easy to accomplish. Using Naked Objects, you’ll be ready in no time to build fully featured domain-driven applications.

Contents & Extracts

Full Table of Contents


  • Tools
    • Getting Started excerpt
    • Identifying the Domain Concepts
    • Relating Objects Together
    • Rapid Prototyping
    • Creating Behaviorally Complete Objects
    • Implementing Business Rules excerpt
    • Using Value Types
    • Isolating Infrastructure Services
  • Techniques
    • Distributing Class Responsibilities
    • Applying Domain Patterns
    • Keeping the Model Maintainable
    • Scenario Testing
  • Practices
    • Developing Domain Applications
    • Naked Objects as a Design Tool
    • Integrating with Web Frameworks
    • Integrating with the Database
    • Integrating Within the Enterprise
    • Deploying the Full Runtime
  • Appendices
    • Programming Model Cheat Sheet
    • Eclipse Templates


Dan Haywood has 20 years’ experience as a consultant, writer, and trainer, offering advice on domain-driven design and agile development practices for both the Java and .NET platforms. He has been working with Naked Objects since 2002 and is a committer to the Naked Objects framework; he is also the lead of a number of sister open source projects. He has presented Naked Objects at numerous conferences over the years, and written articles and books on Naked Objects and other technical topics. Dan is married with one daughter; together they all live in Oxfordshire with two elderly dogs.