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.

Out of Print

This book is currently out of print.

About this Book

  • 375 pages
  • Published:
  • 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 and Extracts

Full Table of Contents

Preface

  • 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

About the Author

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.

Comments and 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