来源/腾讯课堂Coding学院(ID:ke_coding)
虽说PHP是世界上 的语言,但是写出来的PHP代码却往往不是最美观的。究其原因,可能正式因为PHP简单易上手,适合快速迭代的特性,导致了我们沉浸在迅速完成需求迭代的窃喜中,却忘记了规范性、忽略了易维护性,给后人挖了无数的坑,后面维护起来简直想骂娘。各位PHPer不妨问一下自己是否曾经写过下面的代码?
举例说明
一个函数写了两百行甚至更多
一个函数的参数有七八个甚至十几个
单行代码/字符串最长超过了个字符
一个PHP文件写了上万行
修改代码的时候没有把对应的注释也修改一下
不使用web框架提供的封装,而是直接用$_POST,$_GET,$_SESSION这些全局变量
其实以上问题,在我们的项目中真的全都存在。写出上面的代码并不会影响代码功能的正常运行,不过所谓前人栽树后人乘凉,杂乱的代码就像一堆杂草,后人维护一堆杂草远比一颗大树痛苦的多。这其中带来的效率损失恐怕很难量化。试想一下阅读一个行的函数,其中的局部变量就定义了不下50个,你看到一个变量时,脑海中根本想不到这个变量代表的含义,又要回去找定义它的地方,一步步跟踪下来或许思路早就被打断了。如果阅读一个50行的函数,整个函数体在一个电脑屏幕就可以容纳,连鼠标都不用翻动就可以看到全部,这时心里会有多么舒坦。
反面例子
一望无际的函数参数
写了多行的代码文件
手拼SQL语句,“貌似”很便捷
六层foreach嵌套
做出改变
曾经看到过很多开发组,意识到代码规范问题之后,会去制定自己的代码规范。曾经我们也希望所有的开发坐下来,大家友好地协商出一份统一的代码规范。然而,这么做 是很花时间,第二是不够细致,讨论中很难涉及到编码中的所有方面,第三也是最重要的一点,根本无法达成一致……想必大家都听说过程序界的一个经久不衰的段子,就是编码应该用空格缩进还是用tab缩进。偏偏代码规范这种东西,它是没有标准答案的,你可以列出10条使用空格做缩进的好处,但马上就会有人提出10条使用tab做缩进的好处。“讨论”这种方式根本行不通。
要想让大家指定并遵循一个没有标准答案的“标准”,光靠讨论是出不来结果的,这个时候我们需要的可能就是“权威”以及“强权”。“权威”是指去寻找业界大牛们到底是怎么做的,把他们的做法作为我们的“标准”总归不会有错。“强权”则是指确定了“标准”以后,依靠开发leader去强推给组内所有人,没有讨论的余地。“权威”保证了代码规范的正确性,“强权”保证了代码规范的执行力。
谁是权威
有了上面的思路以后,我们就要讨论一下谁的代码规范才能代表“权威”。平时使用PHP做Web开发,想必大家一定会用到各种PHP框架,例如Laravel,Symfony,YiiFramework,ZendFramework等等。作为全球知名的开源框架,这些框架里的代码应该是非常符合规范的。那么他们符合的是什么规范呢?
其实随便一搜索你就可以找到了,绝大多数框架都遵循PSR(PHPStandardRe白癜风专科医院哪家好白癜风的发病年龄