不得不说PHP程序员总是一不小心就被列为程序员鄙视链的底端(还好现在有前端工程师了,哈哈哈哈),那么从PHP语法结构,PHP命名规范与预定义的关键字来说,确实有些定义不算很协调,但是总在底端这件事PHP语言也不该背锅,据统计最近PHP7的使用率达到60%以上,PHP7的底层规范做了一些标准处理,但是语言优化了,而PHP程序员呢?大多数PHP程序员确实严重缺乏编码规范。这和PHP语言本身的入门门槛不高也存在一定的关系。但是既然我们写了PHP代码,我们就要做一名合格的PHP程序员,从编码规范开始吧!
为了提高工作效率,保证开发的有效性和合理性,并最大程度提高程序代码的可读性和重复利用性,提高沟通效率,任何语言都需要一份代码编写规范。PHP亦是如此。
一、代码规范的重要性
①促进团队合作。
项目是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码必定风格迥异。多个人同时开发同一模块,等到要整合代码的时候也很头疼,可读性差。
②减少Bug处理。
减少低级错误发生。再复杂的逻辑看起来也是很清晰。规则不统一,容易出错。步调一致,减少细节思考。
③降低维护成本。
方便后面的人进行代码阅读和维护,减少程序耦合性,方便在之前的模块上扩展一些功能。可维护性高。
④有助代码审查。
代码审查有据可依。减少代码审查的工作量。统一度量标准。
⑤有助自身成长。
谁能保证之后不需要来维护自己的代码。在紧张的项目进度要求下,提高自身工作效率,产生高质量代码。防止后续别人读自己的代码,心里默默在骂你。一定要高效率,专业。
二、代码规范的要求
良好的工程结构
目录结构要清晰,例如很多框架采用了mvc设计思想。模型放一个目录,视图放一个目录,控制器放一个目录。大家可以下载相关的mvc设计思想的框架,例如:ThinkPHP、Laravel。
使用DRY原则
不要重复你的代码。拆分可重用函数或类,使用常量定义。
使用有意义并一致命名
不要使用拼音命名,不要没有明确含义的命名。
变量命名:变量的名词性(形容词+名词),长名字可用下划线连接。
函数名:小驼峰式(如:getUserInfo())。函数的动词性(动词+形容词+名词;谓语+宾语)
类的命名:大驼峰式(如:UserInfo)类的名词性:如:OrderModel。不可出现下划线。
适当留空和必要缩进
使用tab键缩进(不可使用4个空格来代替缩进)。
留空(使用空格、换行、空行)
避免深嵌套
嵌套不应该大于3层。函数不应该有多个出口。
添加应有的注释
注释块/**/
文件头:名词,版权,作者。
类:类作用解释。
函数:函数作用,入参数,返回内容。
注释行//:帮助记忆
代码说明:一般用于对某个逻辑块的说明。
结束提示:常用于if、switch、while逻辑体结束说明。
待开发提示
调试提示
变量声明和初始化
避免声明的局部变量覆盖上一级声明的变量
使用前必须将变量初始化
变量名尽量体现数据类型
永远不要相信用户
天真的用户:只要有输入框,就会出现各种输入内容
不怀好意者:会想办法通过输入注入恶意内容
防范措施:前端对输入进行校验。后端对于输入校验必不可少,不能假设前端做了正确的校验。存在你也不知道的入口。攻击者会直接通过编造请求的方式进行提交。防止各种注入。
合理使用缓存机制
建议使用缓存机制缓存获得更好的性能。例如:redis、memcached等。
避免代码的Copy和Paste
没有理解代码的含义,就呆板的拷贝复制。拷贝来的代码未必就是对的。如果有重复代码,意味着可以拆分出一个功能函数。
尽量多使用框架
框架的目的是为了提高开发效率。框架是前辈们知识和经验积累而来,是被证明了的成熟解决方案。绝大数框架基于MVC(模型视图控制器)架构理念而开发。选择适合自己的框架。