Kenneth Truyers

Much has been written and said about programming in “the zone”. Most articles give you tips on how to get in the zone and keep there. I haven’t found any article though that challenges the usefulness of ‘being in the zone’ (If I have missed some, please let me…

Automated acceptance tests play a vital role in continuous delivery. Contrary to unit tests though, they’re quite hard to get right. This is not only because end-to-end testing is harder than testing single units, but also because of the way they need to be e…

In my last few posts I have hammered a lot on simplicity in software. In my first post (Simplicity in software) I explained what the difference is between easy and simple code (or hard and complex code). On the basis that introducing frameworks and libraries i…

In my post on how to simplify code by using composition instead of an AOP-framework I showed a way of substituting attribute based programming with a more composable paradigm. The result of that transformation will be my starting point for today’s post. For re…

In my previous posts I talked about how you can decrease dependency on external libraries and frameworks while making your code simpler (not easier, simpler). In this post I want to continue on the same thread and show some of the benefits of Pure DI (as oppos…

In my previous post on how to simplify code by using composition I talked about how we can reduce complexity by removing an AOP-framework (or annotations-based programming). In this post I want to continue on the same line and talk about how we can reduce comp…

In my post about software simplicity I talked about how we introduce complexity in software without realizing it. In this post I want to discuss a pattern that allows you to get rid of the complexity introduced by using annotations or aspect oriented concepts.…

As software developers we put a lot of focus on simplicity. And rightly so, because making code readable and understandable keeps it from becoming a maintenance nightmare. Simplicity is often confused though with how many lines of code there are. When you use…

One of the biggest problems in software development is communication. Although we have a lot of technology at hand, the more complex a project is, the harder it is to communicate efficiently. In order to improve the interaction between clients, project manager…

Unit tests become more valuable if they are expressive and flexible. A good unit test should not only test your code, but also document it. Creating expressive and flexible unit tests is not always easy however. The reason of this is that there’s an inherit di…

In my previous post “Why choose DI Interception over Aspect Oriented Programming?” I explained my preference for DI interception over AOP. I received a lot of comments on this (especially on reddit) which pointed out some errors. In this article I want to reit…