//

Information for details

浅谈php开发中编码规范之三

7 空白

 

7.1 空行


空行将逻辑相关的代码段分隔开,以提高可读性。


下列情况应该总是使用两个空行:

- 一个源文件的两个片段(section)之间

- 类声明声明之间 


下列情况应该总是使用一个空行:

- 两个方法之间

- 方法内的局部变量和方法的第一条语句之间

- 块注释或单行注释之前

- 一个方法内的两个逻辑段之间,用以提高可读性 


 

7.2 空格


下列情况应该使用空格:

- 一个紧跟着括号的关键字应该被空格分开,例如:

while ( true ) {

...

}


注意:空格不应该置于方法名与其左括号之间。这将有助于区分关键字和方法调用。

- 空白应该位于参数列表中逗号的后面

- 所有的二元运算符,除了".",应该使用空格将之与操作数分开。一元操作符和操作数之间不因该加空格,比如:负号("-")、自增("++")和自减("--")。例如: 

$a += $c + $d;

$a = ( $a + $b ) / ( $c * $d );


while ( $d++ = $s++ ) {

  $n++;

}

printSize( "size is " + $foo + "\n" );


- for语句中的表达式应该被空格分开,例如: 

for (expr1; expr2; expr3)


- 强制转型后应该跟一个空格,例如: 

myMethod( (byte) $aNum, (int) $x );

myMethod( (int) ($cp + 5 ), ( (int) ($i + 3)) + 1 );



8 命名规范


8.1 命名空间


一个唯一命名空间的前缀总是全部小写的ASCII字母并且是一个顶级域名,通常是com,edu,gov,mil,net,org,或1981年ISO 3166标准所指定的标识国家的英文双字符代码。命名空间的后续部分根据不同机构各自内部的命名规范而不尽相同。这类命名规范可能以特定目录名的组成来区分部门(department),项目(project),机器(machine),或注册名(login names),也可以按功能模块来分类。 


8.2 类


类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML) 


class Raster;

class ImageSprite


在为类(class)命名前首先要知道类的功能。如果通过类名的提供的线索,不能准确反映类的功能,那么,命名就是失败的。


超过三个词组成的混合名是容易造成系统各个实体间的混淆,尝试使用(CRC Session card)看看该命名所对应的实体是否有着那么多的功用。

对于派生类的命名应该避免带其父类名的诱惑,一个类的名字只与它自身有关,和它的父类无关。

有时后缀名是有用的,例如:如果你的系统使用了代理(agent),那么就把某个部件命名为“下载代理”(downloadAgent)用以真正的传送信息。


8.2.1 类属性的命名


属性命名应该以字符‘m’为前缀。 

前缀‘m’后采用于类命名一致的规则。 

‘m’总是在名字的开头起修饰作用,就像以‘r’开头表示引用一样。 

理由

前缀'm'防止类属性和方法名发生任何冲突。你的方法名和属性名经常会很类似,特别是存取元素。 

例如

class NameOneTwo

{

  int $mVarAbc;

  int $mErrorNumber;

  String $mrName;

}

8.3 函数


方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。

function run();

function runFast();

function getBackground();


通常每个方法都是执行一个动作的,所以对它的命名应该清楚的说明它是做什么的:用checkForErrors()代替errorCheck(),用dumpDataToFile()代替dataFile()。这么做也可以使功能和数据成为更可区分的物体。


有时后缀名是有用的: 

Max - 含义为某实体所能赋予的最大值。

Cnt - 一个运行中的计数变量的当前值。

Key - 键值。

例如:retryMax 表示最多重试次数,retryCnt 表示当前重试次数。 


有时前缀名是有用的: 

is - 含义为问一个关于某样事物的问题。无论何时,当人们看到Is就会知道这是一个问题。 

get - 含义为取得一个数值。

set - 含义为设定一个数值

例如:isHitRetryLimit




8.4 变量


除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。

变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。


char $c;

int $i;

float $myWidth;



8.5 实例变量


大小写规则和变量名相似,除了前面需要一个下划线


int $_employeeId;

String $_name;

Customer $_customer;


8.6 常量


类常量和ANSI常量的声明,应该全部大写,单词间用下划线隔开。(尽量避免ANSI常量,容易引起错误)


static final int $MIN_WIDTH = 4;

static final int $MAX_WIDTH = 999;

static final int $GET_THE_CPU = 1;


  • 滇公网安备 53010202001388号