3 ms·
I think single letter variable names are fine within the scope of a single function. Especially if I'm doing something with a lot of math, like a lighting calc
by skohan 7y ago
I think single letter variable names are fine within the scope of a single function. Especially if I'm doing something with a lot of math, like a lighting calculation, the computations are often more readable with short variable names. I'll also usually give a detailed description of what the variable is in comments for clarity.
- onion2k 7y agoI think single letter variable names are fine within the scope of a single function. I don't. One of the things I like most about eslint is the id-length rule - https://eslint.org/docs/rules/id-length https://eslint.org/docs/rules/id-length
- skohan 7y agoI think it depends. In the context of a complex mathematical formula, where you have many intermediate results with very abstract meanings, I think it's more clear to use a single character name than to try to be descriptive with something like: `productOfLuminanceAndDotProductOfSurfaceNormalAndLightDirectionDividedByScatteringConstant`. I think there are a lot of advantages to abiding by styling conventions and using linters to set a baseline, but there are always exceptions to the rule.
- onion2k 7y ago* productOfLuminanceAndDotProductOfSurfaceNormalAndLightDirectionDividedByScatteringConstant* Note that the id-length rule also allows you to limit the maximum length of a variable name. This is why.
- skohan 7y agoI understand that, but what in your mind would be a good replacement to name such a complex, abstract value? A long acronym perhaps? I don't see how that's any more clear or less arbitrary than a single character name.
- wa1987 7y agoAgreed. I'd much prefer something along these lines as opposed to using an overly long name: ` /* product of luminance and dot product of surface normal and light direction divided by scattering constant */ const prod = ... `
- mruts 7y agoI find that I can reason about code more effectively the shorter the variable names are. Rob Pike writes the same thing in the Practice of Programming.