代码之家  ›  专栏  ›  技术社区  ›  Xolve

什么时候加入name,什么时候不加入?

  •  1
  • Xolve  · 技术社区  · 16 年前

    大多数语言给出的指导方针是通过强调(Python、C等)或CAMEL外壳(Java)来分隔名称的不同单词。然而,问题是何时将这些名称视为独立的。选项包括:

    1)当英语字典中出现单独的单词时(例如create_gui()、recv_msg()、create gui()、recv msg()等),每次都要这样做。

    2)使用一些直觉来决定何时执行此操作以及何时不执行此操作,例如recvmsg()可以,但最好是创建_gui()。

    这是什么直觉?

    这个问题看起来微不足道。但它会出现一个常见的问题,每次出现问题都至少需要5秒钟。

    4 回复  |  直到 15 年前
        1
  •  8
  •   Thomas    16 年前

    我总是做你的选择1,据我所知,所有的现代框架都是这样的。

    一件让人想到的事情就是将名称粘在一起,这就是标准的C库。但是它的函数名通常都很神秘。

        2
  •  1
  •   Rob Napier    15 年前

    作为一个客观的C程序员,我可能有偏见,在那里事情往往是很清楚的,但我从来没有过这样的方法 recvMsg . 它将会是 receiveMessage (第一个参数的类型应为 Message 如果是一根绳子,那么应该是 receiveString 或者可能 receiveMessageString 取决于上下文)。当你这样拼写的时候,我认为这个问题往往会消失。你永远不会说 receivemessage .

    我唯一一次缩写是当缩写比完整版本更清晰。 createGUI 很好,因为“gui”(goey)是我们用英语说的常用方式。 createGraphicalUserInterface 实际上更容易混淆,所以应该避免。

    因此,对于最初的问题,我认为1是最好的,但同时也反对使用不清楚的缩写。

    在Unix中,最愚蠢的命名选择之一是 creat() 做一个无意义的词来节省一次击键。代码只写一次,读很多次,所以应该偏向于容易阅读,而不是写作。

        3
  •  0
  •   tpdi    16 年前

    对我来说,这只是我,我更喜欢遵循任何传统的语言,因此,CAMELSE为Java和C++,下划线为C和SQL。

    但是无论您做什么,都要在任何源文件或项目中保持一致。您的代码的读者会感谢您;看到一个标识符与大多数其他标识符不一致,读者会暂停并问“这个标识符有什么不同吗?这里有什么我应该注意的吗?”

    或者换句话说,遵循最不令人惊讶的原则。

    编辑:这是为什么??

        4
  •  -1
  •   Sergey Stolyarov    16 年前

    只需遵循编码风格,这样的时刻通常描述得很好。

    例如:

    ClassNamesInCamelNotaionWithFirstLetterCapitalized
    classMethod()
    classMember
    CONSTANTS_IN_UPPERCASE_WITH_UNDERSCORE
    local_variables_in_lowercase_with_underscores