Writing async tests

Ever since async/await was introduced in .net 4.5 I've seen people happily using those keywords in their (unit) tests. A usage I believe to be a mistake.


Avoiding conditionals to improve code

Last year Michael Feathers wrote an article about unconditional programming which in essence is just an idea to avoid any type of control structures since control structures tend to make code harder to understand. This is not a new idea.


Enforcing parameter names

In the late 90s I was asked to teach an "introduction to C for programmers" course at a large Swedish company. Turned out that my definition of programmer was quite different than that of the company.


Configuration files or APIs

Configuration files is something we have always been familiar with and with cloud services I think more and more configuration has started to move into code. But I was very intrigued by yet a different concept used by a team I worked with a while back; configuration APIs for temporary changes.


TDD helps you enforce the single responsibility principle

When I was writing last week's post I also thought about how TDD (or rather BDD) has helped me to early detect violations of the single responsibility principle.


Will TDD really drive your design?

One of the most common arguments I've heard from TDD skeptics is that TDD does not drive your design. And this statement is both true and false.



REST efficiency

Making simple REST API is easy but once you do more complex things you don't want to stick with the simple rules any more.


Clients and eventual consistency

If you're working with a distributed system it is likely that you use eventual consistency to make your system scalable and robust but what does this means to clients?


How to know when to auto scale

When it comes to auto scaling I tend to see one of two approaches. But neither is actually good.