The real meaning of semantic versioning

Most likely you have seen dot-separated version numbers. Maybe at some point single-dot versions like 2.13 have brought up some confusion, as 2.13 is bigger than 2.2. And when more granular version numbers like appear any attempt to use floating point logic falls apart. But this is no floating point notation. It is semantic […]

Proper Commenting

There are two main stances towards commenting: Comments are an indicator for code that is not self-explanatory. Comments are the most explicit way of communicating the programmer’s intend.

The importance of coding guidelines

Deciding how to do things and sticking to it, until a solid reason arises to change it, is important. In fact a concrete definition of how to do things is even more important than what you actually decide to do. You might lean back now, with a suspicious look on your face, when I say […]

Dependency Injection

Dependency injection is a great tool to decouple your software architecture and manage your dependency graph. At the most fundamental level dependency injection means handing dependencies, ideally as abstractions rather than concretions, as a parameter of some sort instead of directly coupling them to the consuming logic. This allows to define a foundation for a […]

Testing 101 with xUnit

Unit testing your business logic is essential to maintainability. Only if you have a good coverage (read as “as complete as reasonable in your situation”) and enough regression tests (tests proving that something that was broken and got fixed stays fixed) you can be sure not to break anything when refactoring or changing something down […]