Mudanças entre as edições de "Use Intent Revealing Names"

De Basef
Ir para: navegação, pesquisa
Linha 20: Linha 20:
 
int daysSinceModification;
 
int daysSinceModification;
 
int fileAgeInDays;
 
int fileAgeInDays;
 +
</source>
 +
 +
Choosing names that reveal intent can make it much easier to understand and change
 +
code. What is the purpose of this code?
 +
 +
<source lang="Java">
 +
public List<int[]> getThem() {
 +
    List<int[]> list1 = new ArrayList<int[]>();
 +
 +
    for (int[] x : theList)
 +
        if (x[0] == 4)
 +
            list1.add(x);
 +
 +
    return list1;
 +
}
 
</source>
 
</source>
  
 
[[Category:Clean Code]]
 
[[Category:Clean Code]]

Edição das 10h35min de 27 de janeiro de 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;
 }