Refactoring Basics
I’ve written a few posts about refactoring already. What is still missing is a post about the basic principles, so here we go. Rules of engaging your code… Small compilable […] The post Refactoring...
View ArticleLambda Overdose
Lambdas are a nice recent addition to C++. They are cool, they are hip, and they tend to be overused and misused. Since lambda expressions came up in C++11 and […] The post Lambda Overdose appeared...
View ArticleEmerging Patterns – Refactoring Session #4
In my last refactoring session post, I wrote I had been lazy when it came to refactoring Fix. Actually, I’ve slacked on purpose, repeatedly skipping the refactoring steps of the […] The post Emerging...
View ArticleImplementing Array Access for Tuple
This week I exchange guest posts with Jonathan Müller about accessing tuple elements. Jonathan is a CS student passionate about C++. He’s working on various C++ projects like memory, an […] The post...
View ArticleConstexpr Additions in C++17
Last year, I have written about constexpr and compile time constants in general. Last week, the Draft International Standard for C++17 has been sent to its ballot. Time to provide […] The post...
View ArticlePrefixed Names
Prefixes are a rather controversial topic. Taking everything into account, I think we should not use prefixed names. Here’s why. A few days ago I touched the topic of prefixed […] The post Prefixed...
View ArticleSmelly std::pair and std::tuple
Depending on their use, std::pair and std::tuple can be code smells. That’s why we should be careful around these two. Having a code smell is not a no-go, it’s more […] The post Smelly std::pair and...
View ArticleDialing back
Hi everyone. I find myself currently unable to keep up with the pace I practiced for the last two years. Work, side projects, and other stuff just got in the […] The post Dialing back appeared first on .
View ArticleFinal Classes
A few days ago, a colleague asked me if it was wise to make every class a final class. Here is a more sophisticated answer than I could give at […] The post Final Classes appeared first on .
View ArticleContinuous integration with Travis CI
In today’s guest post, Richel Bilderbeek gives us some insight about some the many possible advantages of setting up a continuous integration service, showing some minimal complete examples. Richel...
View ArticleC++ Online Compilers
Online compilers can be useful tools to quickly compile a snippet of code without having to install a proper compiler on our computer. They can be especially useful to play […] The post C++ Online...
View ArticleModern C++ Features – Class Template Argument Deduction
With C++17, we get class template argument deduction. It is based on template argument deduction for function templates and allows us to get rid of the need for clumsy make_XXX […] The post Modern C++...
View ArticleBasic Refactoring Steps
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. […] The post...
View Articlereinterpret_cast vs. constant expression
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 […] The post reinterpret_cast vs. constant...
View ArticleWhat’s Ubiquitous Language and Why You Should Care
The most important term I learned in the past months is “Ubiquitous Language”: speak the language of your domain everywhere. The term seems to come from the world of Doman […] The post What’s...
View ArticleSource File Organization for C++ Projects Part 3: Dependent Repositories and...
It’s time to write about project file organization again. Recently I came across two cases of confusion that, in my opinion, could have been avoided easily. Repositories of project dependencies […] The...
View ArticleGenerated Code
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. Code generation may […] The post Generated...
View ArticleTaking Notes About Work in Progress
Whenever you start something that will be “work in progress” for some time, take some sufficiently detailed notes. Have you ever come back from lunch, only to wonder what exactly […] The post Taking...
View ArticleApproaching an Unknown Code Base
I recently got an email, asking me how I approach an unknown code base. Here’s an answer. It’s a common situation we face when we join a new project. We […] The post Approaching an Unknown Code Base...
View ArticleCode Smells – a Short List
Code smells are indicators that there might be something afoul in our code. Here is a list of some of the most important smells. What are code smells? A code […] The post Code Smells – a Short List...
View Article