Code Smell 113 - Data Naming

Maxi Contieri - Jan 5 '22 - - Dev Community

Use entity domain names to model entity domain objects.

TL;DR: Don't name your variables as Data.

Problems

  • Readability

  • Bad Naming

Solutions

  1. Use role suggesting names.

  2. Find names in the Bijection.

Context

We use 'data' a lot in our variables.

We are used to doing it.

Using this kind of name favors the anemic treatment of objects.

We should think about domain-specific and role-suggesting names.

Sample Code

Wrong

if (!dataExists()) {
  return '<div>Loading Data...</div>';
}
Enter fullscreen mode Exit fullscreen mode

Right

if (!peopleFound()) {
  return '<div>Loading People...</div>';
}
Enter fullscreen mode Exit fullscreen mode

Detection

[X] SemiAutomatic

We can check for this substring on our code and warn our developers.

Tags

  • Readability

  • Naming

Conclusion

Data is everywhere if you see the world as only data.

We can never see the data we manipulate.

We can only infer it through behaviour.

We don't know the current temperature. We observe our thermometer pointing at 35 Degrees.

Our variables should reflect the domain and role they are fulfilling.

Naming them as 'data' is lazy and hinders readability.

Relations

More Info


Twenty percent of all input forms filled out by people contain bad data.

Dennis Ritchie


This article is part of the CodeSmell Series.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .