Code Reviews: Why and How

Have you ever came across a piece of code in your project and asked "What the heck is this?! Who even wrote this, and why?"? Or have you ever been in a situation where a bug was found in production and after locating the cause in the code, you were like "Well this is an obvious mistake. How did it manage to go unnoticed?"? Have you ...

C# Under the Hood: async/await

Async and await keywords came with C# 5 as a cool new feature for handling asynchronous tasks. They allow us to specify tasks to be executed asynchronously in an easy and straightforward fashion. However, some people are mystified by asynchronous programming and are not sure how it actually works. I will try to give you an insight of the magic that happens under the hood when async and await are ...

Dependency Injection Trade-offs

Most of the classes depend on some other classes to do some work for them. Since those other classes can have their own dependencies, the total number of dependencies (both direct and indirect) of a class can grow exponentially, which means our dependency graph can easily become quite large. In scenarios where dependency graphs are large, resolving dependencies can become a significant task and you should carefully decide: Should all ...

Cohesion Illustrated

Cohesion is considered important in software design. It is often mentioned how our classes, methods, libraries... should have a high cohesion. I will try to explain cohesion in an illustrative way and give you some of the indicators of high cohesion in software modules. ...

C# Under the Hood: Locking

In this post, I will try to briefly explain how locking mechanisms provided by .NET work and how CLR manages to keep track of locks and do the synchronization, allowing us to achieve mutual exclusion. ...

Subscribe to Newsletter

Subscribe