PHP 编程标准


这个解决方案仅仅是一个建立在不精确的基础上的一大群可笑的人。



认同观点

这行不通;

也许可行吧,但是它既不实用又无聊;

这是真的,而且我也告诉过你啊;

这个是我先想到的;

本来就应该这样。

如果您带着否定的成见而来看待事物的话,请您保持开放的思想。你仍可以做出它是废话的结论,但是做

出结论的方法就是你必须要能够接受不同的思想。请您给自己一点时间去做到它。





项目的四个阶段

数据库结构

设计

数据层

HTML层

----------------------------------------------------------------------------

命名规则

合适的命名

命名是程序规划的核心。古人相信只要知道一个人真正的名字就会获得凌驾于那个人之上的不可思议的力

量。只要你给事物想到正确的名字,就会给你以及后来的人带来比代码更强的力量。别笑!



名字就是事物在它所处的生态环境中一个长久而深远的结果。总的来说,只有了解系统的程序员才能为系

统取出最合适的名字。如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推

想也能在意料之中。

如果你发觉你的命名只有少量能和其对应事物相匹配的话, 最好还是重新好好再看看你的设计吧。

类命名

在为类(class )命名前首先要知道它是什么。如果通过类名的提供的线索,你还是想不起这个类是

什么 的话,那么你的设计就还做的不够好。


超过三个词组成的混合名是容易造成系统各个实体间的混淆,再看看你的设计,尝试使用(CRC Se-

ssion card)看看该命名所对应的实体是否有着那么多的功用。

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

关。


有时后缀名是有用的,例如:如果你的系统使用了代理(agent ),那么就把某个部件命名为“下

载代理”(DownloadAgent)用以真正的传送信息。

方法和函数命名

通常每个方法和函数都是执行一个动作的,所以对它们的命名应该清楚的说明它们是做什么的:用

CheckForErrors()代替ErrorCheck(),用DumpDataToFile()代替DataFile()。这么做也可以使功能和

数据成为更可区分的物体。

有时后缀名是有用的:

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

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

Key - 键值。

例如:RetryMax 表示最多重试次数,RetryCnt 表示当前重试次数。

有时前缀名是有用的:

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

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

Set - 含义为设定一个数值

例如:IsHitRetryLimit。

缩写词不要全部使用大写字母

无论如何,当遇到以下情况,你可以用首字母大写其余字母小写来代替全部使用大写字母的方法来表

示缩写词。


使用: GetHtmlStatistic.

不使用: GetHTMLStatistic.

理由

当命名含有缩略词时,人们似乎有着非常不同的直觉。统一规定是最好,这样一来,命名的含义就完

全可以预知了。

举个NetworkABCKey的例子,注意C是应该是ABC里面的C还是key里面的C,这个是很令人费解的。有些

人不在意这些,其他人却很讨厌这样。所以你会在不同的代码里看到不同的规则,使得你不知道怎么

去叫它。

例如

class FluidOz // 不要写成 FluidOZ

class GetHtmlStatistic // 不要写成 GetHTMLStatistic

----------------------------------------------------------------------------

类命名

使用大写字母作为词的分隔,其他的字母均使用小写

名字的首字母使用大写

不要使用下划线(''_'')

理由

根据很多的命名方式,大部分人认为这样是最好的方式。

例如

class NameOneTwo


class Name

----------------------------------------------------------------------------

类库命名

目前命名空间正在越来越广泛的被采用,以避免不同厂商和团体类库间的类名冲突。


当尚未采用命名空间的时候,为了避免类名冲突,一般的做法是在类名前加上独特的前缀,两个字符就

可以了,当然多用一些会更好。

例如

John Johnson的数据结构类库可以用Jj做为前缀,如下:

class JjLinkList

{

}


----------------------------------------------------------------------------

方法命名

采用与类命名一致的规则

理由

使用所有
Copyright © 2008 chengduxinxi.com All Rights Reserved PHP编程开发 由朝夕网络维护