The mutable keyword seems to be one of the less known corners of C++. Yet it can be very useful, or even unavoidable if you want to write const-correct code […]
In the last days, I’ve played around with Cevelop a bit, mainly interested in the refactoring capabilities it offers.
Code smells are indicators that there might be something afoul in our code. Here is a list of some of the most important smells.
I recently got an email, asking me how I approach an unknown code base. Here’s an answer.
Whenever you start something that will be “work in progress” for some time, take some sufficiently detailed notes.
Last week I have touched source file organization of generated code. Today I’ll share some thoughts on testability of code when a part of it is generated.
It’s time to write about project file organization again (See part 1 and part 2). Recently I came across two cases of confusion that, in my opinion, could have been […]
The most important term I learned in the past months is “Ubiquitous Language”: speak the language of your domain everywhere.
Dipping my toes into a new project, I got a bunch of ugly warnings about a ton of C-casts inside a macro definition. Trying to get away from them was […]
Every refactoring can be composed of a set of simple basic steps. Knowing these basic refactoring steps is crucial when we want to continuously compile and test during the refactoring.