如何命名涉及双复数的变量或参数?

时间:2017-07-26 13:39:16

标签: naming-conventions

正如我们所知道的那样,命名变量是最复杂的软件工程问题之一...,在您面对它之前,您似乎并没有意识到这一点。

以下是现实生活中的当前困境:添加一个CLI参数,允许用户以作为测试执行一部分生成的文件的格式进行指定。

在大多数情况下,只有一个文件以单一格式生成,但是如果可以获取多个文件,并且还可以通过使用命令分隔的值列表来请求多个输出格式,例如--controversial-param=junitxml,html

根据周围的名字,我得出的结论是,获胜者可能会匹配这种模式:

--(output|report|result)[s]?-format[s]?

我反对使用双复数形式,因为它们在语法上是不正确的。

对复数(一般)的第二个原因是它们会引起混淆:有人添加参数并忘记添加复数,传递代码复审并在合并后失败将太容易了。我过去曾多次看到过这种错误,甚至碰巧在我做错了#34;或者在审核过程中错过了它。

所以我依靠其他SO社区提出并投票一个解决方案。让最好的论点赢得并使用推理而不是个人偏好。

2 个答案:

答案 0 :(得分:0)

基于受欢迎程度(谷歌搜索结果)以及我建议的其他工具的经验

--output-format

根本没有复数,但会访问命令分隔列表,使用--help时会记录这些。

答案 1 :(得分:0)

如果将多个值传递给参数意味着将以指定的所有格式生成所有输出文件,在这种情况下,它比您想象的更简单:

--output-formats非常好,“ output ”这个词可以表示任何数量的内容,从无到有,到一个到多个文件,以及“格式”也可以包括零或单一格式。

在其他情况下,真正需要双重复数并且不可能使用撇号会让您头痛