命名规则 (程序设计)程序设计的中命名规则(naming convention)是電腦程序設計的源代码针对標識符的名称字符串进行定义(即「命名」)而规定的一系列规则。通常是为了提高源代码的易读性、易认性、程序效率以及可维护性。命名规则根据各个程序语言的规格、内存大小等硬件制约、编辑器以及集成开发环境的功能等等会有各种制约。 制定命名规则的好处挑战命名规则的选择(及其执行的程度)通常是一个有争议的问题,不同派系的人会觉得自己的观点最好而其他人则是次等的。 而且,即使采用了已知且定义明确的命名规则,某些组织也可能无法始终如一地遵守这些规则,从而导致不一致和混乱。 如果命名规则在内部不一致、任意、难记,或者以其他方式显得负担大于好处,则命名规则会遇到更多的挑战。 易读性精细挑选的标识符可以让开发者和分析器更容易理解系统在做什么,或者如何修改或将源代码扩展运用到新需求上。 比如这句声明 a = b * c;
在语义上是正确的,但是其目的却不明显。而相比较之下,写成 weekly_pay = hours_worked * hourly_pay_rate;
则提示了源代码的意图和含义,至少对了解上下文的人来说更清晰。 典型要素标识符长度最基本的規則中包括對識別碼長度的規定。在某些情況下,上限是通過提供數值來設置的,而另一些情況下則使用了啟發式的方法或準則。 識別碼長度的規則是有爭議的,適當的長度應視具體情況而定。 要考慮的要點包括:
一些早期的鏈接器將變量名限制為6個字符或更少,以減少內存使用,這也是早期的程序會限制識別碼長度的原因之一。 大小写和数字一些命名规则对大小写和数字的使用加以限制,比如只能用小写字母,或者只能用大写字母。有些场合虽然可以保留大小写,但功能上并不赋予区别。 多个单词组成的标识符通常推荐使用「有实际含义的标识符」。如果单个单词无法表述清晰则可以使用多个单词,因此命名规则需要规定多个单词如何连接。这样还可以避免与各个程序语言使用的保留字冲突的问题。大多数语言的标识符不允许空格,而不加空格又会导致难以阅读,因此需要制定空格的替代方式。 用符号区分在字母数字的单词里使用制定的区分字符进行连接,常用有 连字符 ("-") 、下划线 ("_"),比如两个单词的 " 与此相比,在 FORTRAN/ALGOL 语言的传统中,特别是C语言和Pascal语言家族,曾使用连接号用于 中缀表示法 的减法运算符,而且也不希望前后加空格, 因此就无法用此方法来命名标识符。而用下划线连接小写字母的方法则在 C 家族(包括 Python)里都很常见,比如《C程序设计语言》(1978)即可见到,通称为蛇形命名法(snake_case)。而像 UPPER_CASE 这样用下划线连接大写字母的做法则常见于 C预处理器 里的宏,所以被称为 MACRO_CASE;以及 Unix 中的 环境变量,比如 bash 里的BASH_VERSION。有时会被幽默地称作 SCREAMING_SNAKE_CASE。 用大小写区分另一种做法就是在单词组合成一个字符串的中间使用大写字母,被称作駝峰式大小寫(camelCase)或者“Pascal case”等等,也就把 " 元数据与混合命名规则有一些命名规则不仅是特定程序、某个特定项目和问题的规则和需求,还通过软件架构称为对其下层的程序语言和跨项目的一个方法论框架。 匈牙利命名法最著名的命名规则包括匈牙利命名法,具体包括“系统匈牙利命名法”和“匈牙利应用命名法”[9]。比如变量 szName 中的前缀 "sz" 代表其是一个零结束字符串。 各种语言的命名规则C 和 C++原则上使用小写字母。在C标准库里,最常用的做法是使用缩写名称,如用于测试是字符是否为字母数字的函数写成 C#C♯命名规则基本上遵循微软的 .NET 语言的规范。[12](详见后续 .NET 章节),但 C# 编译器并不强制使用命名规则。微软推荐仅用 微软规范对 filed 命名仅限于 标识符可以添加 @ 符号却不改变含义。也就是说 JavaJava的命名规则是由多个社区制定的,包括昇陽電腦[14]、网景[15]、AmbySoft[16]等等。下述采用昇陽電腦制定规则的例子,比如 "CamelCase",不用空格直接连起来,每个单词首字母大写,比如 "CamelCase".
缩写词长达三个字母及其以上时用CamelCase而不是全大写(比如 JavaScriptJavaScript 的内置库采用与 Java 同样的命名规则。数据类型和建造函数使用 upper camel case (RegExp, TypeError, XMLHttpRequest, DOMObject) 而方法使用 lower camel case (getElementById, getElementsByTagNameNS, createCDATASection)。为了保持统一,大部分 JavaScript 开发者都遵循此命名规则。[17] .NET微软公司Microsoft .NET 推荐大部分标识符都用 Objective-CObjective-C 使用源于 Smalltalk 的代码方式。通用的变量、函数的顶层条目,包括类、协议都用 UpperCamelCase 并用一个短的全大写前缀标示命名空间,比如 PerlPerl继承了C中的一些规则。本地范围内的变量和子程序名用小写字母加下划线。包变量采用 title case,声明的常量全大写。包的名字采用 camel case 但 pragmata 例外,比如 PHPPHP推荐方式写在 PSR-1 (PHP Standard Recommendation 1) 和 PSR-12 中。[23] 根据 PSR-1,类的名字要用 PascalCase, 类的常数要用 MACRO_CASE,而 method 名要用 camelCase。[24] Python and RubyPython和Ruby都推荐类名使用 SwiftSwift語言的命名规则根据不同发布有所变化。但是随着 Swift 3.0 的重大更新后,其命名规则规范更为清晰,希望能对所有第三方的 API 命名和声明规则进行标准化[25]。变量、函数声明的命名规则还是以 参见注释
外部链接
|
Portal di Ensiklopedia Dunia