【问题标题】:Perl functions naming convention for long names长名称的 Perl 函数命名约定
【发布时间】:2014-06-26 22:21:20
【问题描述】:

我在网上阅读了一些关于 Perl style 命名约定的文章,其中建议使用小写字母并用下划线分隔单词或函数名称。有些人使用小写的第一个单词,然后将其他单词大写。当然是 Windows .NET 等 每个单词都大写,没有下划线。

我有一些包方法很多像entriesoncurrentpage 这样的词,如果我遵循 Perl 风格建议我应该这样做:

sub entries_on_current_page {...}

这在方法名后面加了四个下划线字母,另一种风格是:

sub entriesOnCurrentPage {...}

Windows 风格应该是:

sub EntriesOnCurrentPage {...}

PHP 有时像mysql_real_escape_string() 一样使用全小写和下划线,有时像htmlspecialchars 这样使用全小写不带下划线,当然 PHP 函数名不区分大小写,因此 Perl 不支持此功能。

所以问题是,对于包含许多单词的长名称,Perl 编码使用的最佳样式是什么。

【问题讨论】:

  • 社区惯例似乎主要是names_with_underscores而不是camelCase,但最终没有“最佳”选项,一致性比你一贯使用的风格更重要。
  • 您的第一句话回答了您自己的问题。故事结局。我看不出 .NET 或 PHP 与这里有什么关系。
  • 如果你想要保持一致性并且詹姆斯格林(和我)建议,那么你会使用第一个。您将使用的几乎所有模块都将使用该约定。
  • 这是我想从专业人士那里知道的,以便做出初学者的决定,尽管事实上会在名称中添加多少下划线,特别是对于像 get_on_start_is_action_etc 这样的小词。
  • 我会选择 current_page_entries 以使其更短。这将从哪个对象或类中调用?如果 $current_page 是对象,我只会使用entries

标签: perl


【解决方案1】:

最初,大多数 Perl 开发人员使用首字母小写的驼峰式大小写。这是大多数编程语言的标准。首字母大写的名称用于类和方法。

后来,Damian Conway 的书 Perl Best Practices 建议使用下划线而不是驼峰式大小写。 Damian 认为它增加了可读性,而且打字也没有那么难。

Damian Conway 关于名称的建议成为标准,因为 1)。他是对的。它更清晰易读,打字也没有那么难,最重要的是 2)。它被纳入Perltidy。 Perltidy 是一个根据 Damian 的建议帮助标准化您的代码的程序。 Perltidy 很像 Java 中的CheckStyle

这些是任意标准吗?是的,所有标准在本质上都有些武断。您对规则有一些候选建议,您必须做出决定:

  • 应该将while 循环和if 语句中的大括号附加到行尾,或者放在whileif 语句下方。在标准 C 风格中,花括号是拥抱。在 Java 中,它们不应该符合 CheckStyle。在 Kornshell 中,then 位于if 之下。在 Bash 中,现在的标准是 then 位于同一行,即使 Bash 解释器并不喜欢它。 (您必须在 then 之前添加分号,因为它被视为单独的命令。
  • 应该如何命名变量。在大多数语言中,CamelCase 规则。在 .NET 中,您甚至可以将第一个字符大写,但在 Perl 中,我们使用下划线。
  • 常量应该全部大写吗?大多数语言都同意这一点。但是,在 shell 脚本中,您通常会为特殊的环境变量保留所有大写的变量名,例如 $PWD$PATH 等。因此,在 Bash 和 Kornshell 脚本中,常量变量和常规变量一样都是驼峰式命名的。

我们的想法是遵循那种语言的标准。为什么?因为标准是这样说的。因为无论花括号是否被拥抱,您都无法像与其他程序员一样与 The Standard 争论。主要是要意识到大多数标准可能有些武断,但它们并不会真正影响您的编程方式。通过每个人都遵循一个标准,您可以更容易地理解其他人的代码。

【讨论】:

  • 大小写有助于区分$local_namesCONSTANTSGlobals,如Package::Names
  • 所以基于其他 cmets 和你的答案的最终决定是对所有 Perl 编码使用 entry_on_current_page 样式,所以这是一般 Perl 的最佳实践,这将是我的风格。我说的对吗?
  • @daliaessam 阅读 Damian 的书,或 Perltidy 上打破 Damian 的规则的文档,但不包括他的论点作为原因。在编写 Perl 时,标准 是使用下划线。当您使用 PHP 或 Java 编程时,请使用首字母小写的 camelCase。理解常量、全局变量、类、包名等在风格上是有区别的。
  • “最初,大多数 Perl 开发人员使用驼峰式大小写,首字母小写”——我不确定这是不是真的。从我记事起,perlstyle manual page 就一直推荐使用小写字母和下划线(至少可以追溯到 1996 年)。
  • 您在 1996 年仍在谈论 Perl 5。我在 Perl 3.x 时代开始学习 Perl,当时 Perl 被编写为 PERL,并被认为是 Awk 的替代品。我不认为当时有 Perl 风格的手册。 LlamaCamel 书中的大多数示例当时都使用 camelCasing,这在大多数编程语言中都是如此。
猜你喜欢
  • 2020-11-09
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多