• IphtashuFitz@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    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”.

  • erogenouswarzone@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    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