【问题标题】:Why is go-lint is giving inconsistent suggestions about initialisms?为什么 go-lint 给出的关于首字母缩写的建议不一致?
【发布时间】:2021-05-20 11:41:18
【问题描述】:

go-lint 建议如下:

method CreateStaticCssPath should be CreateStaticCSSPath

linter 是否正确,如果正确,为什么?

它允许以前的方法:

CreateStaticJsPath

【问题讨论】:

    标签: go golint


    【解决方案1】:

    Go 命名约定规定initialisms 应全部大写(实际上:在一致的情况下,取决于第一个字符是否应大写)。这就是 linter 所抱怨的。

    名称中的首字母缩写词或首字母缩略词(例如“URL”或“NATO”)的大小写一致。例如,“URL”应该显示为“URL”或“url”(如“urlPony”或“URLPony”),而不是“Url”。例如:ServeHTTP 不是 ServeHttp。对于具有多个初始化“单词”的标识符,例如使用“xmlHTTPRequest”或“XMLHTTPRequest”。

    当它是“identifier”的缩写时,此规则也适用于“ID”(几乎所有情况下,它都不是“ego”、“superego”中的“id”),因此请改写“appID” “appId”。

    因此,假设 CSS 和 JS 是首字母缩写词,CreateStaticCSSPathCreateStaticJSPath 将是编写每个符号名称的“Go way”。

    虽然 linter 对这些故障的捕捉自然是有限的。这里不可能 100% 准确,因为上下文(和人类直觉)是必要的。

    CreateJs 可能意味着“创建 JavaScript”,也可能意味着“创建多个 J”(无论上下文中的“J”是什么)。

    我希望 linter 有一个硬编码的常见首字母缩写列表(CSSURLHTMLID 等),预计误报率非常低,并且看起来只为那些。尝试将简洁的符号名称解析为人类可理解的文本时,其他任何事情都会很快陷入疯狂的境地。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-29
      • 2011-01-08
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多