Chapter 4 is on architecture and is a long one. Vernon compares layered architectures with hexagonal ones, pointing out the advantages and disadvantages of each. He also walks through CQRS (Command Query Responsibility Segregation) and many options for implementing it as well as the pros and cons. He steps into Fabric/Grid Computing as well as a useful feature to use in Event Sourcing.
Here is a good place to note that in the book that are many, many references to chapters farther in the book. This is fair since the book does build on other books and the reader should have at least a knowledge of the concepts being discussed throughout. My suggestion is if you know a little something about these more advanced subjects, continue on as it will all come together in the end. If you really don’t feel comfortable continuing on without further knowledge, go ahead and peek ahead or hit up wikipedia real quick.
Next up: Entities
Implementing Domain Driven Design is a new book (2013) by Vernon Vaughn that expands on the works of Eric Evans and Jimmy Nilsson, two influential authors of the past decade. Vaughn starts by giving an overview of the book and what to expect. Like a of people, I suppose, I assumed because I created a model and thought hard about the object relationship that I was doing DDD. As Vaughn points out from the beginning, this is referred to as DDD Lite.
So far I’ve made it through Chapter III and we’ve covered Domains, SubDomains, Generic Domains, Bounded Contexts, Context Maps, and examples of when to use certain techniques. I really identify with the ideas in this either because I’ve had the same ideas myself and am glad to see other people also using these ideas or because they are concepts I generally agree on: keep it as simple as possible, separate concerns, and communicate clearly.
Get the book here on Amazon
Isn’t the web already functional, you say? Yes, it is. And that’s a big part of the topics you’ll see on this site. I’ve always believed in basic components and simplicity when designing products over a wide range of domains. Software, electronics, and furniture design are all examples of subject areas I work with and I find a real beauty in applying simplicity to all of them.
The goal of this site is to provide articles, tips, and links on functional programming techniques to help others learn these techniques and apply them to not only web development, but any type of software development including enterprise architectures, mobile applications, and embedded system development.