我已经在线阅读了一些关于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编码的最佳样式是什么。
答案 0 :(得分:7)
最初,大多数Perl开发人员使用驼峰外壳,首字母小写。这是大多数编程语言的标准。首字母大写的名称用于类和方法。
后来,Damian Conway的书Perl Best Practices建议使用下划线而不是骆驼套管。达米安认为它增加了可读性,而且输入的难度也不大。
Damian Conway关于名字的建议成为标准,因为1)。他是对的。它更易读,而且打字难度更大,最重要的是2)。它被纳入Perltidy。 Perltidy是一个根据Damian的建议帮助标准化代码的程序。 Perltidy与Java中的CheckStyle非常相似。这些任意标准吗?是的,所有标准都有些武断。您有一些候选人的规则建议,您必须做出决定:
while
循环中的花括号和if
语句是否应附加在行尾,或者在while
或if
语句下。在标准的C风格中,花括号拥抱。在Java中,他们并不认为是根据 CheckStyle 。在Kornshell中,then
位于if
之下。在Bash中,现在的标准是then
在同一行上,即使Bash解释器并不是真的喜欢它。 (您必须在then
之前添加分号,因为它被视为单独的命令。$PWD
,$PATH
等。因此,在Bash和Kornshell脚本中,常量变量都是像常规变量一样的camelCased。 我们的想法是遵循 语言的标准。为什么?因为标准是这样说的。因为你无法与其他程序员争论 The Standard ,无论花括号是否拥抱。主要是要意识到大多数标准可能有点武断,但它们并不会影响您的编程方式。每个遵循标准的人都可以更容易理解其他人的代码。