正如我們所認識的人所說,命名變量是最複雜的軟件工程問題之一......,似乎直到你面對它時纔會意識到它。如何命名涉及雙重複數的變量或參數?
下面是現實生活中的一個例子:添加一個CLI參數,允許用戶指定作爲測試執行一部分生成的文件的格式。
在大多數情況下,只有一個文件以單一格式生成,但是如果可以獲取多個文件並且還可以使用命令分隔的值列表請求多個輸出格式,如--controversial-param=junitxml,html
。
基礎上走來走去的名字,我走過來的印象是贏家也將有一個是與此模式匹配:
--(output|report|result)[s]?-format[s]?
我認爲反對使用雙複數,因爲它們是語法不正確。
針對複數(一般)的第二個原因是它們會導致混淆:對於某人添加參數並忘記添加複數,通過代碼複審並在合併後失敗,太容易了。過去我多次看到這種錯誤,甚至發生在我做「錯字」的時候,或者在審查過程中錯過了。
所以我依靠別人SO社區提出並投票一個解決方案。讓最好的論證贏得並使用推理而不是個人偏好。
是否傳遞多個值意味着所有輸出文件將在指定的_all_格式生成?如果是這樣,在這種情況下,它比你想象的要簡單:'--output-formats'完全沒問題,「輸出」這個詞可以表示任意數量的東西,從無到有到多個文件,「格式」也可以包括零或單一格式。 還有其他的情況下,真正需要雙倍複數,不可能使用撇號可以讓你頭痛。 – gbr
@gbr請做出答案! – sorin
這裏你是...。 – gbr