• erogenouswarzone@lemmy.ml
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    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.
    • First@programming.dev
      link
      fedilink
      arrow-up
      8
      ·
      1 year ago
      • 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
    • PR_freak@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 year ago

      Camel case for local variables

      Pascal case for global ones

      The name should tell me it’s purpose

      That’s it

        • PR_freak@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          Yeah I bet they feel so good about having the perfect recipe for naming variables, a recipe only they know or care about

        • 𝘋𝘪𝘳𝘬@lemmy.ml
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          These are things I have picked up from 18 years in the industry.

          Let me comment some of it then …

          camelCase
          use prefixes
          prefixes should be one word followed by an underscore.

          Highly depends on your environment, your naming convention, etc.

          functions should be prefixed with the file in which they’re defined

          In modern day programming the file names are pretty much irrelevant. All somewhat recent programming languages have modules and namespaces. I don’t care in what file fooBar was defined. ALso: what happens if you refactor stuff and rename the file? Do you want to go through everything where the function is mentioned? (This can be automated, though, but still.)

          Start Bools with is

          Or with whatever is the naming convention you or your team follows. I do embedded scripting and one of the projects explicitly wants can_verb_thing when it comes to user permissions (can_change_foobar, can_run_baz, etc.). It is a good advice but heavily depends on your environment.

          start output with _

          Paraphrasing the naming convention I mostly work with: Start everything with _ that will be exported to global namespace. Also use the name of your module. Instead of foobar use _mymodule_foobar.

          Globals should be g_VARIABLENAME

          Globals should be properly namespaced to global context. constants are uppercase.

          calc_ImportantValueThatWillDecideTheUsersView is better than calc_SumYears

          And summarizeYears is even better. Do not use abbreviations and describe what the function does. If it summarizes the years there is no need to name it something else. Document your code (in-code documentation as well as user-facing documentation if applicable).

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

            I appreciate your emacs perspective, thanks for the input.

            I get the sense that programmerhumor hates prefixes, but I’m telling you, they have changed my life. Next project-for-fun, just give it a try and see what happens. I think you’ll be surprised.

            To many of your points, I say I agree that a lot of naming conventions depend on context. The environment you’re working in, the IDE, the team you’re working on, the language you’re coding in.

            However, prefixes I’m firm on. I think it’s unpopular because it’s from a bygone era where IDEs were non-existent. And while yes, ides have replaced many of the uses, they have been the most radical change to my readability and comprehension of the code I’ve written.

            Also, I’m mostly a js programmer, so yes, very different from emacs.

            Also, for calc_SumYears, I literally meant to add the years together, hense the prefix. So, maybe the prefixes are a little more useful than you give them credit.