Refactoring Day 7 : Rename (method, class, parameter)


This refactoring I use most often and is one of the most useful refactoring. All too often we do not name methods/classes/parameters properly that leads to a misunderstanding as to what the method/class/parameter’s function is. When this occurs, assumptions are made and bugs are introduced to the system. As simple of a refactoring this seems, it is one of the most important to leverage.

   1: public class Person
   2: {
   3:     public string FN { get; set; }
   4:  
   5:     public decimal ClcHrlyPR()
   6:     {
   7:         // code to calculate hourly payrate
   8:         return 0m;
   9:     }
  10: }

As you can see here, we have a class/method/parameter that all have very non-descriptive, obscure names. They can be interpreted in a number of different ways. Applying this refactoring is as simple as renaming the items at hand to be more descriptive and convey what exactly they do. Simple enough.

   1: // Changed the class name to Employee
   2: public class Employee
   3: {
   4:     public string FirstName { get; set; }
   5:  
   6:     public decimal CalculateHourlyPay()
   7:     {
   8:         // code to calculate hourly payrate
   9:         return 0m;
  10:     }
  11: }

 

This refactoring was originally published by Martin Fowler and can be found here

This is part of the 31 Days of Refactoring series. For a full list of Refactorings please see the original introductory post.

Refactoring Day 6 : Push Down Field