Soapbox: Why Refactor?
11 Aug 2023While 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 |