《PHP高级程序设计:模式、框架与测试》第六章 关于规范
时间:2009-08-03
来源:互联网
本帖最后由 HDH007 于 2009-8-3 17:08 编辑
在用PHP之前一直在写dot net。从Net Framework1.0 1.1 到2.0越用越觉得自己能做的事多了,但是自己了解的事却越来越少了。
为了自由的编写和掌控程序。我才转到PHP。
大学里学过规范、设计及架构的一些东西,这些理论套在dot net上还算顺手,
但到了php上就有点儿玩不转了,PHP提供给程序员一个比较大的自由度,但是这种自由是有代价的。
对比dot net。php自由的代价之一就是规范的不够严格。
《PHP高级程序设计:模式、框架与测试》第六章 主要讲文档和编码的规范。
首先说下文档的规范。在我看到这章内容的时候真不知道有PHPDoc这种东东。以为这种格式的规范是Dot Net的专利。
至于PHPDoc是否借鉴了Dot Net我就不知道了。
从我学PHP到工作以来,一直都在用文本编辑器写代码,所以不知道PHP的IDE是否支持这种PHPDoc的自动填充。(Dot Net的VS是支持的)
其次再说下编码的规范
这个说起来有点难为情,因为php的函数库就不是规范的。
命名规范一般有这么几种(不局限与以下几种):全大写,全小写,下划线分割,骆驼命名法,帕斯卡命名法,匈牙利命名法
通常一种语言对类,常量,函数(特别是系统函数)会分别使用三种命名方法,其他的例如变量的命名可以由用户选择一种命名法。
而PHP的系统函数(方法)及常量的命名法则已经超出了三种。
用户要么选择一种自创的前缀/后缀与系统函数相区别(如Discuz的某些函数在前面加d,如dfopen),
要么把函数名写的很长,要么干脆用拼音当做函数名(我估计这个方法是最保险的,而且是最不规范的)。
之所以造成php系统函数命名不规范,甚至冗长,我认为原因可能有两点:
一 长期的社区式开发,缺乏对贡献者提供的函数命名的规范,以致难以形成规范。
二 没有库、包和命名空间(namespace)之类的区分,而且散步在世界各地的贡献者都在各自开发自己的功能函数。
导致贡献者难以保证自己开发的函数名与其他贡献者的函数名不冲突,
所以名字越起越长,而且采用多种命名法,以便区分。
所以如果要谈规范的话就要看PHP今后如何发展和规范了。
而当下,我们可以做的只有规范当前开发的代码,而让某一特定范围的人群所了解和熟知。
比如,Discuz的代码规范对中国的php程序员影响深远。
因为Discuz的开源和相对标准的规范,以及市场的影响力,导致很多程序员默默接受了这种代码风格。
甚至有的程序员是看着Discuz的代码成长起来的,
更有甚者是看了Discuz的代码该行做php的(例如 me)。
所以尽管这种风格不是官方所推广的,也深受一部分人的推崇。
正所谓,英雄所见略同,书中第六章所说的编码规范虽然很简短片面,但与Discuz的风格也多有相似。
如果某一天老天爷开恩,佛祖保佑,上帝显灵能让Zend发表一份相对官方的规范的话,
从Discuz现有的编码规范转过去,应该也不是很难吧!
最好能能顺便规范一下php的函数名。
打完收功!
钦赐
在用PHP之前一直在写dot net。从Net Framework1.0 1.1 到2.0越用越觉得自己能做的事多了,但是自己了解的事却越来越少了。
为了自由的编写和掌控程序。我才转到PHP。
大学里学过规范、设计及架构的一些东西,这些理论套在dot net上还算顺手,
但到了php上就有点儿玩不转了,PHP提供给程序员一个比较大的自由度,但是这种自由是有代价的。
对比dot net。php自由的代价之一就是规范的不够严格。
《PHP高级程序设计:模式、框架与测试》第六章 主要讲文档和编码的规范。
首先说下文档的规范。在我看到这章内容的时候真不知道有PHPDoc这种东东。以为这种格式的规范是Dot Net的专利。
至于PHPDoc是否借鉴了Dot Net我就不知道了。
从我学PHP到工作以来,一直都在用文本编辑器写代码,所以不知道PHP的IDE是否支持这种PHPDoc的自动填充。(Dot Net的VS是支持的)
其次再说下编码的规范
这个说起来有点难为情,因为php的函数库就不是规范的。
命名规范一般有这么几种(不局限与以下几种):全大写,全小写,下划线分割,骆驼命名法,帕斯卡命名法,匈牙利命名法
通常一种语言对类,常量,函数(特别是系统函数)会分别使用三种命名方法,其他的例如变量的命名可以由用户选择一种命名法。
而PHP的系统函数(方法)及常量的命名法则已经超出了三种。
用户要么选择一种自创的前缀/后缀与系统函数相区别(如Discuz的某些函数在前面加d,如dfopen),
要么把函数名写的很长,要么干脆用拼音当做函数名(我估计这个方法是最保险的,而且是最不规范的)。
之所以造成php系统函数命名不规范,甚至冗长,我认为原因可能有两点:
一 长期的社区式开发,缺乏对贡献者提供的函数命名的规范,以致难以形成规范。
二 没有库、包和命名空间(namespace)之类的区分,而且散步在世界各地的贡献者都在各自开发自己的功能函数。
导致贡献者难以保证自己开发的函数名与其他贡献者的函数名不冲突,
所以名字越起越长,而且采用多种命名法,以便区分。
所以如果要谈规范的话就要看PHP今后如何发展和规范了。
而当下,我们可以做的只有规范当前开发的代码,而让某一特定范围的人群所了解和熟知。
比如,Discuz的代码规范对中国的php程序员影响深远。
因为Discuz的开源和相对标准的规范,以及市场的影响力,导致很多程序员默默接受了这种代码风格。
甚至有的程序员是看着Discuz的代码成长起来的,
更有甚者是看了Discuz的代码该行做php的(例如 me)。
所以尽管这种风格不是官方所推广的,也深受一部分人的推崇。
正所谓,英雄所见略同,书中第六章所说的编码规范虽然很简短片面,但与Discuz的风格也多有相似。
如果某一天老天爷开恩,佛祖保佑,上帝显灵能让Zend发表一份相对官方的规范的话,
从Discuz现有的编码规范转过去,应该也不是很难吧!
最好能能顺便规范一下php的函数名。
打完收功!
钦赐
作者: HDH007 发布时间: 2009-08-03
牛
作者: xu569874 发布时间: 2009-08-04
期望再次发功,第六章有点蜻蜓点水.....
作者: cnkiller 发布时间: 2009-08-06
ZendFramework有严格的编码规范,楼主貌似长时间不研究PHP了
作者: 七月十五 发布时间: 2009-08-11
ZendFramework有严格的编码规范,楼主貌似长时间不研究PHP了
七月十五 发表于 2009-8-11 21:31
我没看过任何的框架,也很少研究PHP,要不也不至于不知道有phpdoc这种东西啊! 七月十五 发表于 2009-8-11 21:31
作者: HDH007 发布时间: 2009-08-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28