Code Smell 33 - Abbreviations

I’m a senior software engineer loving clean code, and declarative designs. S.O.L.I.D. and agile methodologies fan.
Abbreviating is very important so that we look smart and save memory and mind space.
Problems
Coupling
Bad Naming
Declarativeness
Ambiguity
Readability
Premature Optimization
Solutions
- Use meaningful/declarative names.
Examples
Variable naming
Function naming
Package naming
Class Naming
Sample Code
Wrong
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
Right
package main
import "formatter"
function main() {
formatter.Printline("Hello, World")
}
Detection
We can't automate choosing what is a short name and a declarative.
Some "modern" and shinny languages enforce this bad practice. So we should wisely choose a good language instead.
Tags
- Declarative
Conclusion
Computer science was born from the mother of science (mathematics). In math, the assignment of single letter variables (i, j, x, y) is a good practice.
The concept of reference arose from the variable.
Many people wondered why mathematicians can work with such short variables, and computer scientists cannot.
For mathematicians, once entered into a formula, variables lose all semantics and become indistinguishable.
We need to care more about semantics and reading.
Our brain wastes a lot of energy figuring out what is the meaning of an abbreviation.
Sometimes we even mistake them
/usr stands for universal system resources not user
/dev stands for device not development.
It is 2020, We need to write software for humans, not for compilers.
Relations
More info
Credits
Photo by Jessica Knowlden on Unsplash
A long descriptive name is better than a short enigmatic name. A long descriptive name is better than a long descriptive comment.
Robert Martin
This article is part of the CodeSmell Series.





