Chapter 10. Summary—core thoughts and principles

 

This chapter covers

  • The core guiding principles covered throughout this book
  • A brief overview of some trends in domain modeling

This chapter presents a look back at some of the fundamental thoughts, principles, and idioms covered throughout this book. In the earlier chapters, I discussed lots of techniques for building domain models that are responsive and can be reasoned about out of pure functions in the domain of personal and investment banking. Some of those techniques are core principles, in the sense that you have to abide by them when you do your modeling. Others, which are more advanced, will make your code more elegant, efficient, and modular. We look back at some of them in the following sections.

10.1. Looking back

10.2. Rehashing core principles for functional domain modeling

10.2.1. Think in expressions

10.2.2. Abstract early, evaluate late

10.2.3. Use the least powerful abstraction that fits

10.2.4. Publish what to do, hide how to do within combinators

10.2.5. Decouple algebra from the implementation

10.2.6. Isolate bounded contexts

10.2.7. Prefer futures to actors

10.3. Looking forward