编码如风,华丽如诗
做一个有仪式感的程序猿,编码如风,华丽如诗。
- 优雅的命名
- 清晰的结构
- 不十分差劲的算法
- 简单易懂的注释
优雅的命名
名不正,则言不顺,言不顺,则事不成 -论语
命名很重要,命名应该本着不怕长就怕不清楚的原则,尽量把一个类、方法、变量的含义交代清楚,比如:
$citycode
$newpostrule
$post_addtime
命名长,但是很清楚。(建议学好英语,不然像我一样编码的同时要打开一个翻译软件。)
接口的命名
接口的命名一般都是前缀动词或形容词,比如:
- addcart.php(动词)
- newuser.php(形容词)
接口往往用来分装一个或一组行为,实现接口的类意味着它具有了一个或一组行为的能力,所有常用形容词。当实在找不到一个恰当的形容词时,名词也可以。
类的命名
php中类命名遵循以下规则:
a. 以大写字母开头;
b. 多个单词组成的变量名,单词之间不用间隔,各个单词首字母大写。
例子:class MyClass 或class DbOracle等。
尽量使用名词,不排除个别情况下把一个行为封装为类时使用动词。
方法的命名
使用动词或动词性短语。
包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如有复数含义,类名可以使用复数形式。
杜绝完全不规范的缩写,避免望文不知义。
如果使用到了设计模式,建议在类名中体现出具体模式。
其它的字段啊、属性啊、事件啊出现命名问题的比较少,不再讨论。比如有的人喜欢字段用下划线开头,有的人喜欢用英文加_(add_)开头,都无关紧要,求同存异,只要使用的词语恰当,并不会带来太多麻烦。
此外需强调一点就是少用拼音多用英文,少用缩写多用全称,尽量不用拼音缩写,甚至是方言拼音缩写,还有英语加拼音,甚至是英语加拼音缩写......。本人就遇到过一个变量名叫 yytj ,最后一顿分析 发现是营业统计的开头字母拼音
在这里还要提醒,毕竟我们在国内编码,代码还没有那么高端,尽力不要用一些高级词汇,例如我写的一些变了 Increase 最后我还要找翻译软件。
清晰的结构
书写规则是指在编写php程序时,代码书写的规则,包括缩进、结构控制等方面规范:
1 代码缩进
在书写代码的时候,必须注意代码的缩进规则,我们规定代码缩进规则如下:
a. 使用4个空格作为缩进,而不使用tab缩进(对于ultraedit,可以进行预先设置)
例子:
for ( $i=0;$i<$count;$i++ )
{
echo “test”;
}
2 大括号{ }书写规则
在程序中进行结构控制代码编写,如if、for、while、switch等结构,大括号传统的有两种书写习惯,分别如下:
a.{直接跟在控制语句之后,不换行,如
for ($i=0;$i<$count;$i++) {
echo “test”;
}
b.{在控制语句下一行,如
for($i=0;$i<$count;$i++)
{
echo “test”;
}
其中,a是PEAR建议的方式,但是从实际书写中来讲,这并不影响程序的规范和影响用phpdoc实现文档,所以可以根据个人习惯来采用上面的两种方式,但是要求在同一个程序中,只使用其中一种,以免造成阅读的不方便。
3 小括号( )和函数、关键词等
小括号、关键词和函数遵循以下规则:
a. 不要把小括号和关键词紧贴在一起,要用一个空格间隔;如if ( $a<$b );
b. 小括号和函数名间没有空格;如$test = date(“ymdhis”);
c. 除非必要,不要在Return返回语句中使用小括号。 如Return $a;
4 =符号书写
在程序中=符号的书写遵循以下规则:
a. 在=符号的两侧,均需留出一个空格;如$a = $b 、if ($a = = $b)等;
b. 在一个申明块,或者实现同样功能的一个块中,要求=号尽量上下对其,左边可以为了保持对齐使用多个空格,而右边要求空一个空格;如下例:
$testa = $aaa;
$testaa = $bbb;
$testaaa = $ccc;
5 if else swith for while等书写
对于控制结构的书写遵循以下规则:
a. 在if条件判断中,如果用到常量判断条件,将常量放在等号或不等号的左边,例如:
if ( 6 == $errorNum ),因为如果你在等式中漏了一个等号,语法检查器会为你报错,可以很快找到错误位置,这样的写法要多注意;
b. switch结构中必须要有default块;
c. 在for和wiile的循环使用中,要警惕continue、break的使用,避免产生类似goto的问题;
算法
这里就涉及到了mysql的优化了,也不一一举例了。
该分页的地方分页。前端涉及到懒加载,瀑布流等。
简单易懂的注释
程序注释
每个程序均必须提供必要的注释,书写注释要求规范,参照PEAR提供的注释要求,为今后利用phpdoc生成php文档做准备。程序注释的原则如下:
a. 注释中除了文件头的注释块外,其他地方都不使用//注释,而使用/* */的注释;
b. 注释内容必须写在被注释对象的前面,不写在一行或者后面;
程序头注释块
每个程序头部必须有统一的注释块,规则如下:
a. 必须包含本程序的描述;
b. 必须包含作者;
c. 必须包含书写日期;
d. 必须包含版本信息;
e. 必须包含项目名称;
f. 必须包含文件的名称;
g. 重要的使用说明,如类的调用方法、注意事项等;
代码之外
代码规范编写只能算是锦上添花,更加高级的算法和逻辑思维才是一个合格程序猿的审核标准,就像咱哈尔滨大盒饭,雀黑,齁咸,希螚,胶黏,一天一个味没有一点变化规则。但离家多年想念的还是那12块钱三荤两素。
作文以记之
辛丑年辛丑月下,疫之猖獗,尤为甚之。亮隔之粤b。不可归乡,归乡则隔一十四日。一周之末,摸鱼无趣,遂重修代码规范,属予作文以记之。予今之胜状,驼峰命名,强制注释,迫之芸芸码士,俱迂腐巨细之论,此前人之述备矣。乃吾辈之悲。