If you’re reading this, perhaps you’ve found something on this blog interesting or helpful. Odds are...
Summary of Part I The previous post introduced some basics of Ports and Adapters...
Hexagonal architecture is not a complex concept to understand, but that’s only true once we...
Have you ever seen unit tests that generate random input values to ensure that the code works with a...
Hopefully we’re past talking about the 10x developer. No one knows what it means except that if...
I’m trying to write shorter blog posts so that perhaps I’ll produce more. Two ways in which we...
Rules are specific applications of principles. We can and must apply principles without rules, but...
I’ve been looking for ways to write better integration tests. My previous set of experiments proved...
The Partial/Optional Object Population (POOP) anti-pattern occurs when have a class with multiple...
There are so many problems with big interfaces, that is, interfaces with lots of methods. A big...
Wikipedia defines impostor syndrome as a psychological pattern in which an individual doubts their...
Have we heard this argument when discussing disagreements involving code? We need to make new code...
In his article The Clean Architecture Bob Martin describes the Dependency Rule. This post will apply...
I like Moq. It’s easy to use and it’s used frequently enoughthat developers are familiar with it. But...
I’m slightly concerned that this could be taken as some animus-driven screed against MediatR. But...
Suppose you’re trying to write code to solve this problem: I’ve got a start date and end date. I wa...
The best estimate we can provide for non-trivial development is always an educated guess made in good...
Why Agile is Difficult
The intent of negative Stack Overflow feedback may not be as bad as it feels. What we learn from it is invaluable.
Let me clarify by describing four scenarios in which you are tasked with some software development. I...
This is the MVP for an idea I've been tossing around. I'm a positive, constructive guy. But sometimes...
Your code doesn't know or care why it's untestable.
Practical application of the Interface Segregation Principle in C#/.NET
Have you ever done this, perhaps to construct a URL or something similar? I hav...
It's important to know the distinction between dependency injection and using a...
I think most skilled developers understand why copying and pasting code is a ho...
Service locators are evil, but sometimes we can use them as a bridge between legacy and new code.
There was a thread here about some of the perceived hostility or unfriendliness toward new developers...
Here's an embarrassing but true story: For the first several years that I developed using .NET I wrot...