Abstractions, a developers perspective

Last time, we talked about abstraction in more general terms. We discussed what abstractions are and how they are used in the real world. We saw what the concept was about and discussed the different kinds of abstractions that exist. This time, we are going to look at it from a developers perspective and how Read more about Abstractions, a developers perspective[…]

Thread pool starvation and the power of async/await

The first time I was ever introduced to the problem of thread pool starvation was by the great Sjøkki Gummi Gau, a close colleague of mine and an amazing developer. He called me up and asked me to guess how long a program would take to run. It was a very simple program; it just Read more about Thread pool starvation and the power of async/await[…]

Dependency Injection: Frameworks

As I mentioned in a previous article, there are multiple dependency injection frameworks our there for .net framework. Here, we will be talking a bit about the most popular ones and show very simple examples of how to get started with them and how to use them. This is not an exhaustive list! There are Read more about Dependency Injection: Frameworks[…]

Exceptions: Catch everything, handle nothing

When writing code, there is a certain feeling of importance with regards to one’s code. It should never stop. It should always execute to the end. It should not cast any exceptions, since my code can handle everything. Remember that a developers motto is “Everything is possible”. This leads to one of the biggest anti-patterns Read more about Exceptions: Catch everything, handle nothing[…]

Dependency Injection: An introduction

What is dependency injection? Dependency injection is often confused with inversion of control. Inversion of control is a design pattern in which your classes delegate the responsibility of creating and disposing of any dependencies it might have. Dependency injection is a design pattern that supports inversion of control, in which a class requires any dependencies Read more about Dependency Injection: An introduction[…]