Software Architecture: Functional Programming in C#
Taken in the same year I moved into .NET professionally. Immutability and pure functions are what make financial calculation code testable — an installment schedule that depends on hidden state is one you cannot reason about.
- Immutability and pure functions in C#.
- Composition over inheritance.
- Expressing failure in the type system instead of exceptions.
- Where functional style helps in an OO codebase, and where it fights it.
The Taqsim installment and financing engine: calculation code with no hidden state, which is what let it be trusted across two products.