Domain-driven design
DDD might fall into the shiny object category, as many people see it as the latest trendy pattern. However, DDD builds upon decades of evolutionary software design and engineering wisdom.
To get a better understanding of it, let's have a brief look at how the ideas behind DDD came about.
History of domain-driven design
DDD has its roots in the Object-Oriented Programming (OOP) concepts pioneered by Alan Key and Ivan Sutherland. The term OOP was coined by Alan Key around 1966 or 1967 while in grad school.
Ivan Sutherland created an application called Sketchpad, which was an early inspiration for OOP. Sutherland started working on this application in 1963. Objects in this early version of an OOP application were primitive data structures that were displayed as images on the screen and started using the concept of inheritance even in those early days. Sketchpad has some similarities with JavaScript's prototypal inheritance.
OOP came about...