Using Roslyn to validate guard clauses

An example using Roslyn to stop doing if return else statements. It’s bad for maintainability and it is error prone.

In one of my previous posts, I talked about Not every if–then-else statement, needs the else.. Today, we’ll explore the creation of an Analyzer using Roslyn API, that will analyze the source code looking for any Guard clause with If-Return-Else or If-Throw-Else.

Continue reading Using Roslyn to validate guard clauses

Prepare your distributed system, so you don't lose money, when it fails

If you are running a larger software system, sooner or later, it will fail. So prepare your system for failure, while you’re still making money.

The first thing you need to learn when you release a distributed system into production is this: it’ll eventually fail! You don’t believe me, huh? Well, I don’t blame you.

Continue reading Prepare your distributed system, so you don't lose money, when it fails

Consumer-driven contracts with Pact

Learn how Consumer-driven contracts with Pact can help you with dependencies between services when using microservices architecture.

Microservices are here to stay. When using a microservices architecture, theory says, we get a more flexible system. It’s easier to deploy, because instead of releasing the entire system, as in a monolithic application, we can release small parts of the system independently. We get hardware flexibility, because we may need different hardware specifications for different parts of the system. We get programming flexibility, because we can have a service using C# with WebAPI and another one using Node.js. The flexibility is wonderful and it all sounds great however, our ability to release the services independently is more often than not restricted by the dependencies between services. To evolve to microservices architecture smoothly, we need continuous delivery. This is very important for several reasons, for example:

Continue reading Consumer-driven contracts with Pact


© 2017. All rights reserved.

Powered by Hydejack v6.3.0