Skip to main content

Posts

Showing posts from 2018

Sitecore Helix Distilled

It seems like a lot of Sitecore developers struggle with Helix, finding it more of a hindrance than a benefit. Perhaps Sitecore have been too prescriptive in their documentation. Maybe the Habitat example site overwhelms people. Whatever the reasons, I don't think it needs to be that way.

If you distill Helix down to its essence, you'll find a collection of 6 architectural principles that were originally codified by Robert C Martin. They're known as the 'Principles of Package and Component Design' and they're not too difficult to grasp. That said, the language he uses can get pretty complex. So here's my attempt to translate the principles for new Helix developers.

Coupling The first 3 principles focus on managing dependencies within your system. Broadly speaking, they help you decide which Helix layer your code should be added to.

Stable Foundation / Volatile ProjectEvery Foundation module will probably have lots of dependent Feature/Project modules. As a …

Sitecore Helix and Bounded Contexts

This is the second in a series of posts looking at the similarities between Sitecore Helix and Domain Driven Design. This time I'll focus on the DDD concept of Bounded Contexts and how understanding them can deepen your appreciation of Helix.

Sitecore Helix and Ubiquitous Language

This is the first in a series of posts in which I explore the parallels between the Sitecore Helix architecture and Domain Driven Design (DDD). I think Helix has been heavily influenced by DDD, and a good place to start is to introduce its concept of 'Ubiquitous Language'.