Expanding on our previous article that covered Object-Oriented Analysis and Design (OOAD), today’s article will explore domain-driven design (DDD). DDD is a software development approach that uses and builds upon OOADprinciples and ideas, so it’s the next logical topic for us to dive into.
Throughout this article we’ll examine what domain-driven design is, how it is commonly implemented in modern development life cycles, and consider a few potential advantages and disadvantages of using DDD in your own projects. Let’s get crackin’!
What is the Domain? To define domain-driven design we should first establish what we mean by domain in this context (and in development in general). The common dictionary definition of domain is: “A sphere of knowledge or activity.” Drilling down a bit from that, domain in the realm of software engineering commonly refers to the subject area on which the application is intended to apply. In other words, during application development, the domain is the “sphere of knowledge and ac