What is 3Q’s Method of Code Refactoring

THE FIRST Q: QUICK WINS

The first stage is to catch low hanging fruits, like identifying and removing dead code, removing duplicate code, and reduce method length. At this stage the following measures would be helpful:

  • Cyclomatic complexity: should be 10 or below
  • Average method length: 15 or below
  • Code duplication for 3 (or greater) lines of code
  • Overall code size: should be monitored and set targets for reducing it

THE SECOND Q: DIVIDE & CONQUER

The next stage is to start thinking of pulling apart components, whether business (or functional) components or utility components. This re-organization of code is essential to break the complexity of code and will open a large list of refactoring opportunities. At this stage, we will add the following two measures:

  • Instability: to measure correct use of design layers
  • Efferent and afferent coupling between component interfaces and the outer world

THE THIRD Q: BUILD QUALITY IN

The last stage is to start writing unit tests to test component interfaces. This is necessary so that to baseline the code quality and start doing more profound refactorings. At this stage, we will add the following measure:

  • Unit tests code coverage