Normally we hear advice like using a descriptive variable name to convey the intent. The descriptive name sometime gets longer, if we avoid abbreviation.
However there should be a limit where the variable name can be easily consumed in human's eye. For instance, I see something similar in my ex-company:
int thisIsASuperLongVariableNameHere vs int thisIsASuperLongVariableNameThere vs int[] thisIsASuperLongVariableNamesHere
If we only glance through those variable names, they all look very similar, and our brain cannot catch the different efficiently.
So my question is, what is the max length of variable name that human can consume effectively?
If the variable name exceed the length, what is the standard approach to shorten them?
There is no "standard approach" to shorten them.
I found some good guidelines though in Steve McConnel's Code Complete (Chapter 11).
If you have access to it give it a look (it's a worthy book to have, in any case). Unfortunately I don't think I can quote his whole list without copyright troubles.
Edit: I stumbled upon a post on another site that quotes the whole section of the book where those guidelines are listed.
I'm not sure how legal that quotation is, so I don't repeat it here.
However as it can be of help to someone and I mostly clarified that linking to it is ok*, I decided to do add a link.
Mind that the rest of the book's chapter contains yet a lot more information on naming, and even on short names/prefixes in particular.
And the remainder of the book has a wealth of information that any developers should know, largely still relevant today 13 years after its publication.
So I recommend all the readers to buy the whole book even if the quote I linked fulfilled their current needs, and to consider that quote just an appetizer for it.
You should keep in mind that it makes sense to aim at different lengths in different situations.
For example, in Clean Code, Uncle Bob suggests that
The length of a name should correspond to the size of its scope
Generally this can be simplified to:
As to the example of names you made, in general it's better to just strive to avoid names so similar, if you can.
If your naming conventions don't forbid it, you can often use some simple trick to skirt the similarity:
thisIsASuperLongVariableName_Here
thisIsASuperLongVariableName_There
thisIsASuperLongVariableName_Here_Array