-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Two major sources of design principles are applied in this project:
-
I follow the principles of Domain-Driven Design (Eric Evans) which aims to to build software that is valuably involved in the activities of stakeholders. This is achieved through mutual understanding of those activities between the domain experts and the developers. This understanding is communicated through "ubiquitous" language - abstracted and disambiguated, evolving, and mutually agreed terminology that must be used "everywhere".
-
I follow the principles of the Clean architecture (Uncle Bob), which divide components into a spectrum that spans "detail" - volatile concrete implementations, and "policy" - stable abstractions focussed on the domain solution. Martin argues that decisions related to detail components should be deferred for as long as possible, but he more broadly makes the case for change and readiness for change regardless of where the change comes from. He considers UI, DB, and frameworks in general to be details. So I embrace these ideas in the knowledge that I've already placed my bets on iOS. The principles of clean architecture, which you'll see laid out in our code below, will allow me to make such significant changes in a straightforward way.