Scott Hannen

Scott Hannen @scotthannen

About: I’ve been developing software full time since 2003, beginning with languages I’m still embarrassed to mention.

Joined:
Apr 11, 2018

Scott Hannen
articles - 38 total

Reflections and Corrections

If you’re reading this, perhaps you’ve found something on this blog interesting or helpful. Odds are...

Learn More 0 0Sep 12 '24

Hexagonal/Ports and Adapters Architecture Part II

Summary of Part I The previous post introduced some basics of Ports and Adapters...

Learn More 0 0Sep 12 '24

Hexagonal/Ports and Adapters Architecture Part I

Hexagonal architecture is not a complex concept to understand, but that’s only true once we...

Learn More 0 0Sep 12 '24

Don't Use Random Numbers in Unit Tests

Have you ever seen unit tests that generate random input values to ensure that the code works with a...

Learn More 0 0May 21 '24

The Multidimensional Developer

Hopefully we’re past talking about the 10x developer. No one knows what it means except that if...

Learn More 0 0Jan 2 '24

Simplify .NET Development With Fewer Projects and Solutions

I’m trying to write shorter blog posts so that perhaps I’ll produce more. Two ways in which we...

Learn More 0 0Jan 2 '24

SOLID Principles Expressed as Rules

Rules are specific applications of principles. We can and must apply principles without rules, but...

Learn More 0 0Jul 10 '23

ASP.NET Core TestServer - How Did I Not Know About This?

I’ve been looking for ways to write better integration tests. My previous set of experiments proved...

Learn More 0 0Jul 10 '23

Don't POOP - The Partial/Optional Object Population Anti-Pattern

The Partial/Optional Object Population (POOP) anti-pattern occurs when have a class with multiple...

Learn More 0 0Jul 10 '23

Splitting Large Interfaces Into Smaller Ones Is Easy

There are so many problems with big interfaces, that is, interfaces with lots of methods. A big...

Learn More 1 0Oct 28 '20

Suggestions for Overcoming Impostor Syndrome and Anxiety

Wikipedia defines impostor syndrome as a psychological pattern in which an individual doubts their...

Learn More 2 0Oct 28 '20

Consistency is Our Friend and Enemy

Have we heard this argument when discussing disagreements involving code? We need to make new code...

Learn More 2 0Oct 28 '20

Our Dependencies Point the Wrong Way - The Dependency Rule Points Them The Right Way

In his article The Clean Architecture Bob Martin describes the Dependency Rule. This post will apply...

Learn More 1 0Oct 28 '20

Sometimes It's Easier to Mock Without Moq

I like Moq. It’s easy to use and it’s used frequently enoughthat developers are familiar with it. But...

Learn More 0 0Jan 2 '24

No, MediatR Didn't Run Over My Dog

I’m slightly concerned that this could be taken as some animus-driven screed against MediatR. But...

Learn More 0 0Jan 2 '24

Improve Your Stack Overflow Questions With Unit Tests

Suppose you’re trying to write code to solve this problem: I’ve got a start date and end date. I wa...

Learn More 13 1Sep 2 '19

Why Estimation Is Always a Guess

The best estimate we can provide for non-trivial development is always an educated guess made in good...

Learn More 13 2May 28 '19

Agile is Difficult Because of Difficulty

Why Agile is Difficult

Learn More 5 3May 10 '19

Negative Stack Overflow Feedback Is Good For You

The intent of negative Stack Overflow feedback may not be as bad as it feels. What we learn from it is invaluable.

Learn More 10 3Apr 30 '19

Concurrency vs. Parallel vs. Async in .NET

Learn More 40 5Apr 16 '19

Survey - When Do You Stop Taking Responsibility?

Let me clarify by describing four scenarios in which you are tasked with some software development. I...

Learn More 14 4Feb 15 '19

Toxic Dev Rant

This is the MVP for an idea I've been tossing around. I'm a positive, constructive guy. But sometimes...

Learn More 10 1Jan 30 '19

Untestable Code Knows No Mercy

Your code doesn't know or care why it's untestable.

Learn More 8 1Jan 24 '19

The Interface Segregation Principle Applied in C#/.NET

Practical application of the Interface Segregation Principle in C#/.NET

Learn More 7 0Jan 1 '19

String Interpolation Functions vs. string.Format Constants

Have you ever done this, perhaps to construct a URL or something similar? I hav...

Learn More 5 0Dec 30 '18

The Liberation of Pure DI (plus a bonus rant about MEF, which is not an IoC container)

It's important to know the distinction between dependency injection and using a...

Learn More 7 1Dec 16 '18

Mandatory Copy and Paste

I think most skilled developers understand why copying and pasting code is a ho...

Learn More 11 5Dec 15 '18

How I Learned to Stop Worrying and Love the Service Locator

Service locators are evil, but sometimes we can use them as a bridge between legacy and new code.

Learn More 12 2Nov 28 '18

Stack Overflow Isn’t Very Welcoming. It’s Time for That to Change.

There was a thread here about some of the perceived hostility or unfriendliness toward new developers...

Learn More 36 33Apr 27 '18

Invalid Reasons for Ignoring Code Metrics and Analysis

Here's an embarrassing but true story: For the first several years that I developed using .NET I wrot...

Learn More 12 0Apr 19 '18