13

当我编程时,我经常发现自己编写的函数 - 应该 - (正确的英语)包含撇号(太糟糕的 C 开始让每个人都认为撇号是一个合适的分隔符)。例如:get_user's_group() -> get_users_group()。你们怎么处理那些强迫的坏英语模棱两可的英语?只是忽略撇号?创造不同的措辞?

4

12 回答 12

15

在那种情况下,我会这样做get_group_for_user()

所以,是的,我会“创造一个不同的措辞”:)

要么,要么user.get_group()

于 2010-01-09T19:48:31.893 回答
7
getGroupForUser() 

或者

getGroupByUser()
于 2010-01-09T19:49:16.727 回答
4

我原来的答案Ignore it, move on!是不完整的。您应该忽略不能'在方法/函数名称中使用的事实。但是您应该继续查看它们的命名,以更好地解释它们的作用。我认为这是编程中值得追求的。

如果您想使用撇号,可以选择 JavaScript :

const user = {
    "get_user's_group": () => console.log("Naming things! Am I right?!")
}

user["get_user's_group"]()

但不要那样做

更进一步,如果您愿意,可以使用转译器获取语法正确的名称并将其转换为您从未见过的名称。

再次以 JavaScript 为例,也许你可以编写一个 babel 转换。

但不要那样做

正如其他人所说,如果对象有可用的上下文,这是一个不错的选择:

user.get_group()

如果做不到这一点,周围代码的上下文应该足以让您选择:

get_users_group()
于 2010-01-09T19:48:03.673 回答
3

怎么样getGroupByUser

于 2010-01-09T19:47:01.100 回答
3

要么get_user_ApostropheShouldBeHereButLanguageWillNotLetMe_s_group或只是忽略它,因为它真的不重要。

于 2010-01-09T19:48:45.387 回答
1

我忽略了撇号getGroupyUsergroup_from_user两者都完全可以理解。担心函数名中有正确的语法是浪费时间,并且会分散用户名清晰易懂的正确目标。

于 2010-01-09T19:50:03.263 回答
1

函数命名中正确的英文点有点极端......

我的意思是为什么撇号困扰你,但 _ 而不是空格?

于 2010-01-09T19:59:37.160 回答
1

根据您可能能够使用 Unicode 变量名的编程语言,此 SO 线程列出了一些。

使用 Unicode 标识符,您可以使用其中一个unicode 撇号为变量名提供正确的英语格式。虽然这只是推测。而且很难维护。事实上,现在我想起来,这听起来很邪恶。

于 2010-01-09T20:04:07.400 回答
1

两点:首先,如果可以避免的话,不要使用需要撇号的名称。其次,您担心歧义是正确的。例如,您可以:

  • getUsersGroup:获取用户列表的组。如果您使用的是面向对象的语言,则它可能包含比组 ID 字符串更多的信息。你也可以有类似的东西createUsersGroup,它会从传入的用户列表中创建一个组对象。
  • getGroupOfUser: 接受某种用户对象;返回用户所在组的名称
  • getGroupByUserId:获取用户名或与该用户关联的唯一 ID;返回用户所在组的名称

描述所有这些差异的最佳方法是仅使用解释方法名称的标准方法注释。这将取决于您使用的语言以及您的组织通常使用的方法评论风格。

于 2010-01-10T04:40:52.880 回答
0

通常我只是去掉撇号,但是反引号有用吗?(get_user`s_group)

于 2010-01-09T19:49:38.450 回答
0

getGroupOfUser? getUserGroup?

它是一种编程语言,而不是文学......

它将是getBackgroundColour正确的英语(而不是getBackgroundColor

于 2010-01-09T19:51:00.240 回答
0

就我个人而言,我会写get_user_group()而不是get_group_for_user()因为我觉得它读起来更好。当然,我使用一种编程语言,其中名称中允许使用撇号:

proc get_user's_group {id} {#...}

虽然,一些更多产的非英语母语欧洲用户将其用作单词分隔符:

proc user'group {id} {#...}

我猜每个人都有自己的..

于 2010-01-09T20:47:57.953 回答