How to make a better polymorphic clone in modern C++

This short port is an answer to the blog post of @JoBoccara on how to make a polymorphic clone in modern C++ in the presence of smart pointers. The goal of this post is to explain in which aspects the solution of the OP is not really satisfying, and to provide what I believe to... Continue Reading →

A follow up of the study of 4 Money class designs: why not having currencies as type parameters?

In the previous post, we went through a comparative study of 4 different designs for a Money class that represents an amount of money. To do so, the Money class groups an amount with a currency (its unit) and implements a safe arithmetic which takes into account the currencies. This article received a quite positive... Continue Reading →

A study of 4 Money class designs, featuring Martin Fowler, Kent Beck and Ward Cunningham implementations.

Following a TDD training that could have gone better, I started to read the Test Driven Development: by example book (by Kent Beck). It offers a perspective on TDD that is far from being dogmatic. It is a really good back and I highly encourage you to read it. But this post is not about... Continue Reading →

Thoughts on a Software Craftsmanship training that could have gone better.

This post is about a story that happened a few months ago. Back then, I attended a three days Software Craftsmanship training on Test Driven Development. More accurately, it was about practicing TDD to gain back control on a legacy C++ code base. Trainings, just as code, are never perfect. Trainers often have to take... Continue Reading →

Hexagonal Architecture and Free Monad: Two related design patterns?

Disclaimer: You do not need to understand Monads to follow this post. This is not a Monad tutorial either, but it might help you getting some intuition on what is a Monad. Some knowledge of Haskell and C++ might help but are not pre-requisite.   There is a lot of talk about Domain Driven Design... Continue Reading →

Lisp Meta-Programming for C++ Developers: Automatic traces (Part 2)

In the previous posts, we started a series dedicated to familiarize C++ developers to the world of LISP meta-programming, based on the Clojure programming language. The goal is to offer a different perspective on meta-programming, how we can approach it, and the kind of use cases it can address. We started the series by an... Continue Reading →

Create a website or blog at

Up ↑

%d bloggers like this: