Reading about the use of Design Patterns in software makes us able to apply them in our own work.
The book “C++ Design Patterns and Derivatives Pricing” by Mark S. Joshi, takes us on a tour of applying design patterns in the financial domain.
The book is well written, its target audience is for people with a non computer science background who write C++ programs for modelling financial products. The book takes you from writing a procedural program for monte carlo simulation of a simple financial product, to a well organised Object Oriented program that makes use of Design Patterns.
I wanted to not just read the book, I wanted to get a practical feel for the examples. Implementing all the examples from the book gives insight into where and how the C++ and the Design Patterns used work together. I also implemented some testing that was outside the scope of the book. This makes it possible to judge the performance of the choices made based on timings and profiling of the code.
Mark makes the point about code reuse many times in the book and gives good arguments for why that is a good idea. I think he could have done more using templates, and following the ideas from Andrei Alexandrescu’s book “Modern C++ Design”
The book is well worth reading, and I recommend it.