Category: Programming
General thoughts and stories about programming and life as a programmer.
Extension Methods and the Decline of Traditional OOP
October 9, 2018 1 minutes read A bunch of years ago, I wrote a post on my own personal blog titled, “Why I Don’t Like C# Extension Methods.” Over the...
Linq Tutorial: A Complete Beginner’s Gentle Introduction
September 18, 2018 1 minutes read There was a time when Linq was a mystery to me. But, now that I’ve learned how to use it, I don’t know how...
Programming to an Interface: A Simple Explanation
August 21, 2018 1 minutes read As an architect, you know that programming to an interface is good. It’s what everyone should do. But what does that mean? And why...
What Is a Good Unit Test? 5 Must-Haves
August 14, 2018 1 minutes read In this day and age, unit testing isn’t as controversial as it once was. Sure, you still see the occasional inflammatory, clickbait-y, confrontational “unit...
Declarative Programming in Depth
July 3, 2018 1 minutes read Most people that start programming learn to program in an imperative way. Shortly after, they will probably learn a declarative language too. Many developers...
Software Architecture: The 5 Patterns You Need to Know
June 26, 2018 1 minutes read When I was attending night school to become a programmer, I learned several design patterns: singleton, repository, factory, builder, decorator, etc. Design patterns give...
Continuing Our Clean Architecture Example in C#
June 19, 2018 1 minutes read After a somewhat long delay, it’s time to finally continue our series on clean architecture. This is the second post in the inner series...
Use NDepend to Measure How SOLID Your Code Is
June 5, 2018 1 minutes read Not that long ago, we published a post defending the SOLID principles of object-oriented design. In today’s post, we take it a step further: we’re going...
Imperative Programming in Depth
May 29, 2018 1 minutes read Programming languages come in all shapes and sizes: interpreted vs. compiled, weak vs. strong typing, low-level vs. high-level, terse vs. expressive… There are many...
Separation of Concerns, Explained
May 22, 2018 2 minutes read Software development is a very young field, particularly when you compare it to, say, medicine or law. Despite this, there’s no shortage of wisdom...
What Makes a Codebase Acquirable?
May 15, 2018 1 minutes read What makes a codebase acquirable? This is the rare question that affects software developers, managers, and executives in a surprisingly similar way. And that’s...
A Look at .NET Core 2.1
May 8, 2018 6 minutes read The .NET Framework has certainly been through many changes since it was introduced by Microsoft in 2002. Arguably, .NET Core is the biggest change....
Null Is Evil. What’s the Best Alternative? Null.
May 1, 2018 1 minutes read “Null is evil.” If you’ve been a software developer for any reasonable length of time, I bet you’ve come across that statement several times....
C# 8.0 Features: A Final Glimpse Of The Future
April 3, 2018 1 minutes read It was not that long ago when we published our first post about the future of C# 8.0 and the probable features it’s getting....
C# Immutable Types: Understanding the Attraction
March 13, 2018 2 minutes read As I’m sure you’re aware, the word immutable means “unchanging.” So, C# immutable types obviously refers to a C# type that can’t change. What...
CQRS: Understanding From First Principles
March 6, 2018 1 minutes read There seems to be no end to the choices you have for architecture when building an application. You don’t want to fall victim to cargo...
C# 8.0 Features: Another Glimpse of the Future
February 6, 2018 1 minutes read About two months ago, we talked about some of the (probable) features we’ll be getting with C# 8.0. The post was well received and...
Value Objects: A Tool for Self-Documented Code and Fewer Errors
January 16, 2018 1 minutes read Have you ever heard of value objects? I bet you have. Even though they’re talked about a lot less than I’d like, they’re still...
Cargo Cult Programming Is the Art of Programming by Coincidence
December 28, 2017 2 minutes read I first learned about cargo cult programming a few years ago. I remember thinking back then, “What a strange name for a programming-related concept.”...
C# 8.0 Features: A Glimpse of the Future
November 30, 2017 1 minutes read It’s been almost 20 years since Microsoft released the first version of the C# language. From its inception—when some unjustly deemed it a mere...
Code Reuse is Not a Good Goal
November 2, 2017 2 minutes read Wait, wait, wait. Put down the pitchforks and listen for a minute. You’re probably thinking that I’m about to tout the “virtues” of copy/paste...
C# Tools to Help with Your Code Quality
September 28, 2017 1 minutes read Over the years, one of the things I’ve come to love about the .NET ecosystem is the absolute abundance of tools to help you....
Marker Interface Isn’t a Pattern or a Good Idea
September 7, 2017 3 minutes read Today, I have the unique opportunity to show you the shortest, easiest code sample of all time. I’m talking about the so-called marker interface....
Using NDepend To Get Going Quickly on C# Projects
August 24, 2017 2 minutes read Assuming you’ve had at least one job working on one or more C# projects, let me paint a familiar picture for you. I’m talking...
What the Singleton Pattern Costs You
August 17, 2017 2 minutes read Do you use the singleton pattern? If not, I’m assuming that you either don’t know what it is or that you deliberately avoid it....
Our experience with using third-party libraries
August 3, 2017 5 minutes read NDepend is a tool that helps .NET developers write beautiful code. The project was started in April 2004. It is now used by more...
C# Version History: Examining the Language Past and Present
July 6, 2017 1 minutes read I still remember my first look at C# in the early 2000s. Microsoft had released the first major version of the language. I recall...
In Defense of Using Your Users as Software Testers
June 15, 2017 3 minutes read In most shops of any size, you’ll find a person that’s just a little too cynical. I’m a little cynical myself, and we programmers tend...
Fixing Your Tangled Dependency Graph
June 1, 2017 1 minutes read I’ve written before about making use of NDepend’s dependency graph. Well, indirectly, anyway. In that post, I talked about the phenomenon of actual software architecture...
Is There a Correct Way to Comment Your Code?
May 18, 2017 2 minutes read Given that I both consult and do a number of public things (like blogging), I field a lot of questions. As a result, the...