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...
Unit Tests Correlate With Desirable Codebase Properties
January 23, 2018 2 minutes read Today, I give you the third post in a series about how unit tests affect codebases. The first one wound up getting a lot...
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...
Delegation As a Developer: Building the Next You
January 9, 2018 3 minutes read “I love me some me!” Yes, there’s more than just an ounce of truth in that statement said by the great NFL receiver...
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.”...
The Unit Test Effect Study, Refined
December 21, 2017 2 minutes read About a month ago, I wrote a post about how unit tests affect (and apparently don’t affect) codebases. That post turned out to be...
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...
Unit Testing Doesn’t Affect Codebases the Way You Would Think
November 22, 2017 2 minutes read I’ve just wrapped up another study. (The last one was about singletons, if you’re interested.) This time, I looked at unit testing and the...
5 Tips to Help You Visualize Code
November 16, 2017 2 minutes read Source code doesn’t have any physical weight — at least not until you print it out on paper. But it carries a lot of...
A problem with extension methods
November 13, 2017 2 minutes read We like extension methods. When named accordingly they can both make the caller code clearer, and isolate static methods from classes on which they...
CRAP Metric Is a Thing And It Tells You About Risk in Your Code
November 9, 2017 2 minutes read I won’t lie. As I thought about writing this post, I took special glee in contemplating the title. How should I talk about the...
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...
The Singleton Design Pattern: Impact Quantified
October 26, 2017 3 minutes read This post has been about a month in the offing. Back in August, I wrote about what the singleton pattern costs you. This prompted...
You Have No Excuse for Dead Code
October 19, 2017 2 minutes read In darker times, software management would measure productivity as a function of lines of code. More code means more done, right? Facepalm. When I...
Static analysis of .NET Core 2.0 applications
October 12, 2017 3 minutes read NDepend v2017.3 has just been released with major improvements. One of the most requested features, now available, is the support for analyzing .NET Core 2.0...
Without Seeing Your Application’s Dependency Graph, You’re Flying Blind
October 12, 2017 2 minutes read Software architecture tends to be a pretty hard game. Writing scripts and little toy apps is easy enough. You build something and then you...
Get Smart — Go Beyond Cyclomatic Complexity in C#
October 5, 2017 2 minutes read Recently, I wrote a post explaining the basics of cyclomatic complexity. You can read that for a deep dive, but for our purposes here,...
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....
Migrating from HTTP to HTTPS in a IIS / ASP.NET environment
September 5, 2017 5 minutes read Google is urging more and more webmasters to move their sites to HTTPS for security reasons. We did this move last week for our IIS...
Understanding the Difference Between Static And Dynamic Code Analysis
August 31, 2017 3 minutes read I’m going to cover some relative basics today. At least, they’re basics when it comes to differentiating between static and dynamic code analysis. If...
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...
The Role of Static Analysis in Testing
August 10, 2017 2 minutes read “What do you do?” In the United States, people ask this almost immediately upon meeting one another for the first time. These days, I...
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...
How Has Static Code Analysis Changed Through the Years?
August 3, 2017 2 minutes read Years ago, I found myself staring at about 10 lines of source code. This code had me stymied, and I could feel the onset...
Code Coverage Should Not Be a Management Concern
July 27, 2017 2 minutes read You could easily find yourself mired in programmer debates over code coverage. Here’s one, for instance. It raged on for hundreds of votes, dozens...
Is Your Team Wrong About Your Codebase? Prove It. Visually.
July 20, 2017 2 minutes read I don’t think I’ll shock anyone by pointing out that you can find plenty of disagreements among software developers. Are singletons evil? What’s the...
Code Quality Metrics: Separating the Signal from the Noise
July 13, 2017 2 minutes read Say you’re working in some software development shop and you find yourself concerned with code quality metrics. Reverse engineering your team’s path to this...
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...
What is Static Analysis? An Explanation for Everyone
June 29, 2017 2 minutes read Static analysis, as a concept, seems to earn itself a certain reputation. The general population may regard programming as a technocratic, geeky pursuit. But...