this post was submitted on 09 Sep 2023
1053 points (97.2% liked)

Programmer Humor

32479 readers
285 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 15 points 1 year ago* (last edited 1 year ago) (10 children)

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 than calc_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 or d_MyWeight

This might be obvious for custom objects, but I'd still do it like this p_Person or per_Person.

Seriously it does make a huge difference

[–] [email protected] 11 points 1 year ago (1 children)
  • Don't code in a language/style that requires you to write code that makes prefixing necessary - divide and conquer instead
  • Readable code and well written unit/BDD tests is much better than separate documentation that will go out of sync the minute another Dev does some surgical incision into the code
  • Be verbose if you need to in order to convey the relevant semantics, the characters are virtually free
  • Use the casing that is mainstream/recommended by its' developers for the language at hand
[–] [email protected] 0 points 1 year ago

I have to disagree on some points, but I def feel like you're helping me learn, so for that I am grateful.

I feel like you're speaking from the perspective of a perfect coding environment, which if you have that, that's great. Maybe all your code is in one place, maybe you have an IDE that does a lot of the work for you, and that's great. However, for most of us, that's rarely the case.

Prefixes have been an absolute game changer for me personally, and I will never not use them again.

I have also found that verbosity of variable name and readability are mutually exclusive. A long variable name, most of the time, takes away from the logic. Yes, they are "free" as far as memory, but are very expensive to reliability.

Units tests, again are great, but most places think unit tests are like golden toilets. It sucks, but that's the way it is. Usually you're given a task, and if it's not done next week, maybe you're not as good as they thought.

load more comments (8 replies)