Hi,
I am writing a package for some survey sampling stuff, related to stratification. In all related formulas, the following statistical features are used:
-
N
for population size -
n
for sample size from the population -
Nh
for the size of theh
th stratum -
nh
for the sample size from theh
th stratum
In wrote similar programs in several other languages, and I always used the corresponding naming convention for variables representing the above features:
-
N
forN
(an integer) -
n
forn
(an integer) -
N_h
forNh
(a slice) -
n_h
fornh
(a slice)
For anyone knowing the stratification stuff (what the algorithms are all about) this would be clear as sun. Now, how to do this in Go? I cannot use small n
, but I must differentiate between n
and N
. I can make it PopulationN
and SampleN
, though it’s rather wordy. But what about differentiating slices N_h
and n_h
? I should not be using underscores, so I I would make them PopulationNh
and SampleNh
, though both have capital N
though the all the formulas make a clear distinction between N
(for population size) and n
(for sample size).
I have been working with this stuff for over 15 years and I think I should do fine with the following four variable names: PopulationN
, SampleN
, PopulationNh
and SampleNh
, but they will not read naturally and for the very first time a language’s naming convention makes variable names sound unnatural.
Maybe PopNh
and SampNh
? Do not read well. So maybe even PNh
and Snh
? Nope, these won’t do: P
stands for proportion and S
stands for standard deviation (and I am talking about the corresponding formulas, not just generally about statistics). Thus I think I should use the longer names, though the shortest version has one advantage: I am differentiating capital and lower “n”, something representing the actual names in the statistical formulas. But I don’t think this would work in PopulationNh
and Samplenh
, since they do not read well. Unless I would do them Population_Nh
and Sample_nh
…? But this is like selling the same information twice, and so the prefixes (Population_
and Sample_
) are redundant, being there only because I cannot start a variable’s name with a lower letter.
Are there any situations in which I could break Go’s naming convention, like that of not using the underscore? Or maybe you have some ideas how to make these particular names better? I understand this is a peculiar situation because I need to find the representation in Go of formulas in which n
differs from N
, something I cannot directly do in Go.
Sure, I can use various names, like above, but I always pay much attention to good naming, one that well represents the phenomenon (here, statistical formulas) and that at the same time reads well.
Hm, last thought: maybe _Nh
and _nh
will do?