Many years ago I had to try to debug a memory manager written by a really talented software engineer, with an interesting take on naming things…
-
He referred to blocks of memory as “cookies”.
-
He had a temporary variable named “handy” because it was handy to have around.
-
He had a second temporary variable that referenced the first one that he called “son_of_handy”.
-
If corruption was detected in a block of memory then it would set the flag “shit_cookie_corrupt”.
-
If too many cookies were corrupt then the system would halt by calling the function “oh_shit_oh_shit_oh_shit”.
I like him already
To be honest I’d like to see his resume, kinda wanna hire him
I will keep this legacy alive within my code
-
Does anyone have any good advice on variable naming? Here’s some of my rules I try to live by:
- camelCase
- use prefixes
- prefixes should be one word followed by an underscore.
- 10 character limit or 3 word limit, not counting the prefix
- functions should be prefixed with the file in which they’re defined, ie
utils_FooBar
- file names should be one word
- Start Bools with
is
- Don’t use
not
in bool names.- This has farther-reaching implications that will keep you from making confusing code most of the time (I’m sure this will be controversial, but it works no matter what they say)
- start output with
_
- Globals should be
g_VARIABLENAME
- use the least amount of words possible
- but being too verbose can draw attention - use this to aide in readability
calc_ImportantValueThatWillDecideTheUsersView
is better thancalc_SumYears
if the variable is more important than the others.
- Even the greatest variable names are not replacements for documentation
- Even the most readable code is not replacement for documentation.
- Force yourself to love documentation.
Edit: I realize I was speaking about function-naming with the prefix stuff.
For variables, I still use prefixes, but for variable type. Even if you define the variables as types, it’s still incredibly useful. For instance,
a string is
s_MyName
,enumerable is
e_MyType
,A number is int or double or whatever
i_MyAge
ord_MyWeight
This might be obvious for custom objects, but I’d still do it like this
p_Person
orper_Person
.Seriously it does make a huge difference
[This comment has been deleted by an automated system]
I’m glad you provided a link, because I would not have believed you otherwise. Take my upvote.
[This comment has been deleted by an automated system]
Hey, sometimes we put a little effort into our acronyms. I published a component named UTI and it was too late to change it by the time management caught on.
Fuck character limits for names. Looking at you, ABAP.
Character limits and a stupid badly used Hungarian notation to waste limited characters to tell use what the ide already knows.
If you have a table, (that’s an array for sane programmers) name the variable as a plural and we will know it’s a table.
Don’t name two variables the same stupid abbreviation with different Hungarian notation characters stuck to the front
[This comment has been deleted by an automated system]