Domain-driven design is a great approach for building line-of-business enterprise applications, rightly putting the emphasis on the bit that matters: the domain. And DDD also has plenty of good advice on how to architect a system in place to support that domain. But maintaining all the artifacts of a custom-coded n-layer architecture (views, controllers, commands, bindings etc.) can also massively impede your ability to learn, explore and experiment as you go looking for those deeper domain insights.
What if you could build the system just by writing the core domain objects, and leave concerns such as the GUI (which as we know, often accounts for a substantial portion of the development effort) until later? In any case, the GUI, after all, follows fashions and trends, so it really ought to be possible to consider the domain object model irrespective of the UI that sits in front of it.
There’s a pattern for this type of approach: naked objects, and in this session we’re going to show how you can use an open source framework that implements this pattern – Apache Isis – to rapidly build domain-driven applications. You can then either use the framework for prototyping (then wrap your domain model in some other framework such as Spring), or you can take your application through to production.
Isis has another trick up its sleeve: your domain object model (optionally fronted with view models) can be exposed automatically by REST (in line with the 200+ page Restful Objects specification). Again we have a proper n-layer architecture, but the framework does the hard work of handling HTTP and rendering properly hypermedia-driven JSON representations.