4 ms·
There is a talk by that name that popularised it. https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell https://www.destroyal
by pharmakom 4y ago
There is a talk by that name that popularised it.
https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell https://www.destroyallsoftware.com/screencasts/catalog/funct...
Basically you have business domain objects that have value semantics and are immutable. You have functions that manipulate these objects. This makes the business domain unit-testable. Then on the edge of the application you have imperative code that manipulates databases, serves requests, etc. It’s like Haskell but as a design pattern rather than a language.
In the JVM world, Scala and Clojure communities are adopting this approach.