Difference between revisions of "Use Intent Revealing Names"

From Basef
Jump to: navigation, search
Line 28: Line 28:
 
  public List<int[]> getThem() {
 
  public List<int[]> getThem() {
 
     List<int[]> list1 = new ArrayList<int[]>();
 
     List<int[]> list1 = new ArrayList<int[]>();
 
 
     for (int[] x : theList)
 
     for (int[] x : theList)
 
         if (x[0] == 4)
 
         if (x[0] == 4)
 
             list1.add(x);
 
             list1.add(x);
 
 
     return list1;
 
     return list1;
 
  }
 
  }

Revision as of 11:35, 27 January 2020

It is easy to say that names should reveal intent. What we want to impress upon you is that we are serious about this. Choosing good names takes time but saves more than it takes.

So take care with your names and change them when you find better ones. Everyone who reads your code (including you) will be happier if you do.

The name of a variable, function, or class, should answer all the big questions. It should tell you why it exists, what it does, and how it is used. If a name requires a comment, then the name does not reveal its intent.

int d; // elapsed time in days

The name d reveals nothing. It does not evoke a sense of elapsed time, nor of days. We should choose a name that specifies what is being measured and the unit of that measurement:

int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;

Choosing names that reveal intent can make it much easier to understand and change code. What is the purpose of this code?

 public List<int[]> getThem() {
     List<int[]> list1 = new ArrayList<int[]>();
     for (int[] x : theList)
         if (x[0] == 4)
             list1.add(x);
     return list1;
 }