software architecture

Architecture Erosion in Agile Development

Thursday, May 12, 2022

Software architecture erosion refers to the gap between the planned and actual architecture of a software system as observed in its implementation.1 Architecture erosion is a common and recurring problem faced by many agile development teams. Architecture erosion can result in lower quality, increased complexity, and harder-to-maintain software. At the beginning of a project, the source …

Refactored code architecture

Clean Architecture Refactoring: A Case Study

Thursday, April 29, 2021

Introduction to Clean Architecture   The recent post Clean Architecture for ASP.NET Core Solution: A Case Study explained that one of the most interesting property promoted by Clean Architecture is the abstraction of the infrastructure code. This way the application can consume the infrastructure code without being bound with its implementation. The infrastructure code represents basically all kinds of frameworks an application can use: UI, …

visualizing where code will need to be injected

How to Plan Large-Scale Refactoring?

Thursday, February 25, 2021

  The .NET platform exists for two decades and nowadays the technology is evolving faster than ever. It is now time for serious .NET applications to be refactored to run over the brand new .NET stack based on .NET 5.0, and later this year .NET 6.0 LTS (Long Time Support Version). NDepend is quite a …

traffic lights

10 Reasons Why You Should Write Tests

Thursday, February 11, 2021

As many, I started programming when I was a child 3 decades years ago. With no doubt, the most important practice I’ve adopted during my professional career is to write automatic tests. Not only there are plenty of short/mid/long terms benefits but it just leads to better code and more pleasant working days. I’d like …

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 …

Automate API testing

Reasons NOT to Refactor your code

Thursday, February 20, 2020

Last week I wrote about the reasons to refactor code. Let us now look at some reasons why you shouldn’t refactor code. When dealing with legacy code there will always be a temptation to refactor the code to improve its understand-ability or performance. However, here are some reasons why it might be better to hold off: 1. …

Static Analysis tool CodeSonar

Four Reasons to Refactor your Code

Thursday, February 13, 2020

1. Maintenance is easier Legacy code architecture erodes over time and becomes difficult to maintain. Legacy code bugs are harder to find and fix. Testing any changes in legacy code takes longer. Even small changes can inadvertently break the application because over time the design has been extended to accommodate new features and the code …

android smartphone screen

Android Modularization

Wednesday, January 29, 2020

Out of the box, Android Studio provides one module: the app module. Because of this, most developers write their entire application in this one module. This is fine for small teams and small applications. But, as an application grows, more team members are added and the application becomes more complex, build times can increase – …

Motivation for Software Architecture Refactoring

Wednesday, January 15, 2020

Refactoring is commonly applied to code, but refactoring can also be applied to other development artifacts like databases, UML models, and software architecture. Refactoring software architecture is particularly relevant because during development the architecture is constantly changing (sometimes for the worse; see our blog post on Architectural Erosion) and expanding. Software architecture refactoring should happen regularly …