Coding convention, how to choose a variable name with a correct meaning?
Do you know good resources (publications, articles, books) treating **the difficulty of choosing the correct terms/words for an identifier in a program, ie. the terms/words meaning what the identifier actually represents**? (*identifier* are variables and attributes, functions and methods, structures such as classes, ...)

My request doesn't concern what is commonly known as *naming convention* which define more or less how to "format" the code (using *UpperCamelCase* vs. *lowerCamelCase*, pre/post fixing names to give datatype information, placing comments on the code etc.) All of this is already very well documented. My point is about the **meaning** of the terms/words used.

Simple examples of bad usage of words I can see when code reviewing my colleagues work are:

- **Using a word with a similar but different meaning**. User instead of Account or Person for example.
- **Naming a part of something as the whole thing**. For example a structure representing a record in a log table is called a Log instead of a LogEntry. Therefore, if we later need a structure to represent a list of those records, the word Log will already be used for something which is not really a log...

I'm sure some people already thought and wrote about this problem. Some of them have certainly identify the most common mistakes, how to avoid them, etc. I'm not able to find that literature... The objective of my research is to make a compilation of what I found and adapt the result to the constraints and practices in place in our company to share that with other developers to, finally, improve the code consistency and readability.
Coding convention, how to choose a variable name with a correct meaning?
===

Do you know good resources (publications, articles, books) treating **the difficulty of choosing the correct terms/words for an identifier in a program, ie. the terms/words meaning what the identifier actually represents**? (*identifier* are variables and attributes, functions and methods, structures such as classes, ...)

My request doesn't concern what is commonly known as *naming convention* which define more or less how to "format" the code (using *UpperCamelCase* vs. *lowerCamelCase*, pre/post fixing names to give datatype information, placing comments on the code etc.) All of this is already very well documented. My point is about the **meaning** of the terms/words used.

Simple examples of bad usage of words I can see when code reviewing my colleagues work are:

- **Using a word with a similar but different meaning**. User instead of Account or Person for example.
- **Naming a part of something as the whole thing**. For example a structure representing a record in a log table is called a Log instead of a LogEntry. Therefore, if we later need a structure to represent a list of those records, the word Log will already be used for something which is not really a log...

I'm sure some people already thought and wrote about this problem. Some of them have certainly identify the most common mistakes, how to avoid them, etc. I'm not able to find that literature... The objective of my research is to make a compilation of what I found and adapt the result to the constraints and practices in place in our company to share that with other developers to, finally, improve the code consistency and readability.