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.

Related Articles:

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

About Sean Chambers

I am a Senior software developer from Palm Coast, Florida. An advocate of Domain Driven Design, Behavior Driven Development, creator of FluentMigrator and community activist. I am married to my beautiful wife Erin and am the proud father of two wonderful children. I currently reside at ACI, a local insurance industry/mortgage software company that excels in creating solutions using Agile methodologies.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.