Code City by Richard Wettel

Visualize Code with Software Architecture Diagrams

Thursday, December 10, 2020

The source code is the design. This famous motto means that no matter how many diagrams you draw and discuss with your colleagues, what matters is how the existing source code is actually structured. The need for visualizing code It is important to distinguish between the static view of code (how classes depend on each other in …

MethodInterceptorAspect Class Inheritance Diagram

When your brain can’t handle the complexity: NDepend and PostSharp

Thursday, November 12, 2020

The size and complexity of codebases have exploded in the last decade. What can you do when your codebase no longer fits your brain? In this article I’ll suggest two completely different tools: NDepend to visualize the code, and PostSharp to reduce its complexity. Since PostSharp is itself a complex codebase, we’ll use NDepend to …

Visual Studio tips

Top 10 Visual Studio Refactoring Tips

Wednesday, September 09, 2020

With the version 2019 Visual Studio is now mature when it comes to refactoring. This post proposes a tour of the top 10 most used refactoring actions in my opinion. ) Renaming an Identifier With Ctrl+R,R you can rename any code identifier: a variable, a field, a class… The renaming experience is pretty clean when only one …

nDepend dotnet software testing

Case Study : Complex UI Testing

Thursday, June 11, 2020

This post was originally posted at Author: Patrick Smacchia In the previous post Case Study: 2 Simple Principles to achieve High Code Maintainability I explained that the principles layered code + high coverage ratio by test are 2 simple principles that can be objectively applied, validated and measured. When these 2 principles are applied they lead to High …

NDepend screen shot

Case Study: 2 Simple Principles to achieve High Code Maintainability

Monday, May 04, 2020

High Code Maintainability is the key to make both the management and the developers happy: Maintainability lets a product evolves naturally at a sustained pace with controlled cost. Maintainability lets developers add new features and improve existing ones without spending most of their time refactoring old dusty code and fixing bugs. After 16 years of …