Soapbox: Why Refactor?

Refactor


While it is important to deliver features and meet deadlines, it is also important to consider the long term maintainability of the software. Refactoring is an essential part of software development process and is a process that should be done continuously.

Refactoring should include the following tasks (i.e elimination of code smells):

  • Identify and remove the following:
    • dead code
    • unused variables
    • duplicated code
    • overly complex code
  • Communicating with project maintainers (including your future self!) and other developers through improving the following:
    • naming of functions and variables
    • code structure
    • modularity
    • potential reuse

In essence, refactoring is the process of improving the design of existing code without changing its external behavior. Knowledge and proficiency of automated testing, version control, IDE utilization, Clean Code and SOLID principles, CI/CD, etc. are critical to continuously implement refactoring.

A primary benefit of refactoring is a reduction of “technical debt”. If a project has incorporated the ability to continuously refactor, delivering features faster and with less risk of regression is guaranteed. A developer does not fear change and can confidently refactor code to improve the design of the software developed as well as enhance their ability to deliver new features faster.


Skills Footprint:

Category Technical Specifics
general Test Automation * Clean Code * Refactoring * SOLID Principles
standards
tools VSCode * GIT
concepts Regression Testing * Continuous Integration * Continuous Deployment * Refactoring * Clean Code
packages pytest * playwright * karma * jasmine * protractor * selenium