What are Aggregates in Domain Driven Design?

As an application begins to grow in complexity, the web of interconnected Entities and associations can begin to get overwhelming. What was once a simple set of Entities and relationships is suddenly a sprawling mess of objects and associations. When the number of interconnected objects increases, so too does the surface area for interacting with […]

Continue reading...

Using Entities in different Bounded Contexts

When a web application is small it is very easy to work with. Small applications have limited scope, few complications and everything you need is within reaching distance. However, as an application begins to grow in scope and responsibility, a small-scale application structure no longer works. Suddenly having every object within reaching distance makes things […]

Continue reading...

What are Modules in Domain Driven Design?

Most programming language have the concept of self contained modules in one form or another. For example, PHP have the concepts of Namespacing. Namespaces allow you to keep related code under the same “bucket” and prevents name collisions between classes from different vendors. Modules are an important concept in Domain Driven Design for a couple […]

Continue reading...

Creating Domain Objects Recap

One of the central aspects of Domain Driven Design is how Domain Objects attract responsibility to encapsulate the business rules of the application. By encapsulating business logic internally to an object, the consumer of the object does not need to be concerned with how that logic is implemented. For example, we could have an Email […]

Continue reading...

6 Principles for Writing Maintainable Code

One of the most beautiful things in software development is starting from a clean slate. I’m sure we’ve all worked on projects that are riddled with legacy code that is scary to touch. Starting from a clean slate is like a breath of fresh air. All software development projects start with the best of intentions. […]

Continue reading...

Moving to a new Bounded Context

A couple of months ago I changed the direction of this building Cribbb series of posts to be more focused on a Domain Driven Design approach to building web applications. Since that change of direction we’ve covered quite a bit in terms of the “identity” aspect of the application. So far we have laid the […]

Continue reading...

Strategies for Integrating Bounded Contexts

Over the last couple of weeks we have looked at a couple of important topics in the world of Domain Driven Design. First we looked at what are Domain Models and why are they so important to Domain Driven Design. A Domain Model is the focused knowledge around a specific problem to the business. Next […]

Continue reading...

Creating the Twitter Follower Model using Doctrine

A very common requirement of social consumer web applications is the ability for users to “follow” other users. This is typically in the form of Twitter’s follower model where a user can follow another user without reciprocation. This social functionality has become such a common aspect of consumer web applications that new applications are almost […]

Continue reading...

Failing Domain Rules and Validating User Input

An interesting predicament that all applications will face is, how do you validate incoming data, and how do you communicate errors back to the user interface? As we’ve seen over the last couple of weeks, we can encapsulate Domain related rules and logic inside of the Entities, Value Objects and Specifications of our application. These […]

Continue reading...

Supported by