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 →

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 →

Catamorph your DSL: C++ Port

In the previous posts, we went over the process of building a DSL for arithmetic operations and we introduced the concept of Catamorphism as a way to decouple the traversal of the AST from the operations we want to perform on it. We saw how it could help us compose operations before traversing the AST... Continue Reading →

Catamorph your DSL: Clojure

In the previous three posts, we went over the process of building a DSL for arithmetic operations and we introduced the concept of Catamorphism as a way to decouple the traversal of the AST of our DSL from he operations we want to perform on it. We saw how it could help us compose operations... Continue Reading →

Catamorph your DSL: Trade-offs

This post is a third of the series of post dedicated to notion of Catamorphisms and its application to build Domain Specific Languages (DSLs). Our first post introduced an Arithmetic DSL that allowed to build expression composed of operations like addition and multiplication integer constants and integers variables. We built several interpreters on top of... Continue Reading →

Catamorph your DSL: Deep dive

This post is a second of the series of post dedicated to notion of Catamorphisms and its application to build Domain Specific Languages (DSLs). Our last post introduced an Arithmetic DSL that allowed to build expression composed of operations like addition and multiplication integer constants and integers variables. On top of this DSL, we built... Continue Reading →

Catamorph your DSL: Introduction

I recently had the pleasure to go to a Haskell workshop on Domain Specific Languages (DSL). The goal was to teach us the basics on how to build a DSL. The workshop covered a lot of ground, too much to cover here. I will instead focus on one specific notion that this workshop made me... Continue Reading →

Traversal Combinators

This post is the second of the series of post focused on providing useful higher order functions that goes hand in hand with STL algorithms and ranges. Last post was focused on higher order functions, lenses, that allows to zoom on the elements being scanned. Today's post is about exploring higher order functions that allows... Continue Reading →

Traversals and lenses

Following the amazing keynote of Eric Niebler on ranges at the CppCon2015, there has a been a lot of discussion on ranges in the C++ community. Ranges are an amazing tool to add to the STL. I am starting a series of post to introduce some useful higher order functions that go hand-in-hand with the... Continue Reading →

Create a website or blog at WordPress.com

Up ↑

%d bloggers like this: