Skip to content

Latest commit

 

History

History
94 lines (53 loc) · 2.5 KB

File metadata and controls

94 lines (53 loc) · 2.5 KB

Refactoring 008 - Convert Variables to Constant

Refactoring 008 - Convert Variables to Constant

If I see a Variable that does not change. I call that variable a constant

TL;DR: Be explicit on what mutates and what does not.

Problems Addressed

Related Code Smells

Code Smell 158 - Variables not Variable

Code Smell 127 - Mutable Constants

Code Smell 116 - Variables Declared With 'var'

Steps

  1. Find the scope of the variable

  2. Define a constant with the same scope

  3. Replace the variable

Sample Code

Before

let lightSpeed = 300000;
var gravity = 9.8;

// 1. Find the scope of the variable
// 2. Define a constant with the same scope
// 3. Replace the variable

After

const lightSpeed = 300000;
const gravity = 9.8;

// 1. Find the scope of the variable
// 2. Define a constant with the same scope
// 3. Replace the variable 

// If the object is compound, 
// we might need Object.freeze(gravity);

Type

[X] Automatic

Our IDEs can check if a variable is written but never updated.

Safety

This is a safe refactor.

Why is the Code Better?

Code is more compact and declarative.

We can make and step further and use operators like var, let, const, etc.

The scope is more clear.

Tags

  • Mutability

Related Refactorings

Refactoring 003 - Extract Constant

See also

The Evil Power of Mutants


This article is part of the Refactoring Series.