在很多情况下PHP最可贵的特点也可能是它最薄弱的环节就是它的语法松散性。PHP能够如此广泛的被使用,因为它使得许多没有经验的Web开发者能够制作出强大的应用程序,而用不着过多的考虑规划、连贯性和文档。

不幸的是,正是以上的特点,是的很多的PHP源代码很臃肿,很难阅读甚至无法维护。我深深的体会到这一点,因为我已经写了很多这样的代码。

为了避免上面的情况以及很多其他的情况发生。很多的核心PHP开发人员和团体成员走到了一起,开始了PEAR,一个着力于增加PHP扩展和插件仓库的项目。到现在未知,来源于PEAR项目的文档和其他的东西还很少并且难以理解,这篇文章试图向开发者们讲述他们(PEAR小组)所做的事情。

决定代码可维护性的重要因素是代码的格式和注释。一个工程的所有代码应该以贯穿始终的形式组织。我非常坚持代码库的建设,我想程序员们也应如此。

(1)缩进

开发者所有的代码应该完全按照缩进的方式书写。这是提高代码可读性最基本的措施。即使你没有注释你的代码,缩进对于让其他人读懂你的代码也是非常大的帮助。

例如下面的例子:

while ($x < $z) {

if ($a == 1) {

echo 'A was equal to 1';

} else {

if ($b == 2) {

//do something

} else {

//do something else

}

}

}

PEAR草案标准要求利用4个空格缩进而不是利用tab。我个人并不同意这个观点,我想我仍然会继续利用tab键。我认为使用tab比多个空格能够让文件变得更小。而更小的文件能够更快的被解释、上载、下载等等。而使用tab还有一个很大的有点,就是当观看其他人的代码时,你能够自己设置tab键的空格数。我通常使用8个空格长度的tab键设置,但是最近换成了4个空格长度的,呵呵,我把他称为代码的成重新格式化,仅仅是个人的爱好啦。

(2)控制结构

这个很大程度上取决于个人口味。我仍然可以看到很多的控制结构代码不带分支语句造成可读性非常差,如果你使用IF语句时不带分支,不但可读性变差,当其他人修改你的程序时,还会造成很多的bug。请看下例:

不好的例子:

if ($a == 1) echo 'A was equal to 1';

这是非常难以辨认的。它能够正常工作,但是除了你之外,别人根本不会赞赏这句代码。

有改进的例子:

if ($a == 1)

echo 'A was equal to 1';

现在至少这句代码可以读懂了,但是仍然没有很好的可维护性。如果当$a==1的时候我希望一个附加的事件发生,或者需要添加分支呢?如果后来的程序员忘记了添加大括弧或者else关键字,那么程序中将出现bug。

完美的例子

if (($a == 1) && ($b==2)) {

echo 'A was equal to 1';

//很容易的可以添加其他代码

} elseif (($a == 1) && ($b==3)) {

//其他操作

}

请注意在if和elseif后面的空格,这会将本语句和函数调用区分开来,此外,虽然在elseif的执行程序段中没有语句,只有注释,表面上显得多余可是却给以后维护程序的程序员给予了非常方便的提示,并且非常利于添加功能。

http://www.bkjia.com/PHPjc/446922.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446922.htmlTechArticle在很多情况下PHP最可贵的特点也可能是它最薄弱的环节就是它的语法松散性。PHP能够如此广泛的被使用,因为它使得许多没有经验的Web开发...

php 编程风格,PHP程序员的自我修炼:PHP编程风格_PHP教程相关推荐

  1. 程序员的自我修炼(一):打通任督二脉

    程序员的自我修炼(一):打通任督二脉 文章目录 程序员的自我修炼(一):打通任督二脉 前言 思想的力量 黄金圈法则 软技能 剑的力量 驱动力3.0 十步学习法 整体性学习方法 费曼学习法 富爸穷爸爸爸 ...

  2. 程序员的自我修炼(二):锻造倚天屠龙

    程序员的自我修炼(二):锻造倚天屠龙 文章目录 程序员的自我修炼(二):锻造倚天屠龙 前言 杠杆 心智的杠杆 计划的杠杆 行动的杠杆 起步的杠杆 稀缺 专注与管窥 带宽 装箱.权衡式思维.余闲 装箱 ...

  3. 编程规范及程序员的自我修养

    本文重点解决如下问题:什么样的代码是好的代码,什么样的程序员是优秀的程序员? 先看图 4 3(a)中的代码,你能明白这段代码要做什么事情吗?再看图 4 3(b)中的代码,你可以知道这段代码在做什么吗? ...

  4. (心态篇)空杯心态,一个程序员的自我修炼

    原计划端午假期回家清静一下,反思这半年的得与失,但是因为自己的失误导致没赶上回家的高铁,此外,最近心态有些欺负,今日午后昏睡中觉醒,脑海中只有"空杯心态"这四个字 禅师与我 梦回远 ...

  5. 怎么提高计算机编程能力,提高程序员技能的11招编程技巧

    1.清晰的分析问题 2.三思而后行如何解决这个问题 3.收集完整的需求. 花点时间,想好产品的目标形态和最终的用户群.在这个阶段思路清晰会给以后节省很多时间. 4.写一个执行计划 对于比较大的项目,将 ...

  6. 程序员的自我修炼---小白成长历程

    读研时期晚上十一点,下实验室的放松自拍,消除了一天的疲劳 大四在上海通联金融实习的证件照 大四背诵政治后决定把头发换个颜色 大四在写别业论文时的自拍当时嗓子不算太好戴上了口罩 考完研后在南京游玩的摆拍 ...

  7. 好书推荐 “程序员的自我修养”

    09年4月份出的,算是比较新的 (见http://www.china-pub.com/195439) 买来看是因为自己在代码跨平台移植的过程中不可避免的遇到编译与链接问题,而自己对这一大块领域又没什么 ...

  8. 一个程序员的自我修养

    摘要: 如何成为华为技术专家. 原文:一个程序员的自我修养 作者:徐宏伟 一天晚上,我和老婆聊天,说部门要我写个"大咖谈软件"的文章,老婆斜了我一眼,淡淡地说:"Linu ...

  9. 在华为写了十几年代码,一个程序员的自我修养

    以下内容来自公众号逆锋起笔,关注每日干货及时送达 本文来自<华为人>徐宏伟,转载请注明出处 一天晚上,我和老婆聊天,说部门要我写个"大咖谈软件"的文章,老婆斜了我一眼, ...

最新文章

  1. C# 3.0下有限状态机的一种优雅的实现
  2. 美妆AI要抢李佳琦的饭碗?
  3. 最小熵原理:“物以类聚”之从图书馆到词向量
  4. 程序员如何克服焦虑?
  5. Scrapy中的get_project_settings 读取设置文件
  6. 硬解析和软解析 mysql_Oracle学习之shared pool--硬解析和软解析
  7. Python高性能HTTP客户端库requests的使用
  8. java 微信二次分享_微信二次分享
  9. Spring Boot + JPA +MySQL 数据操作及示例环境搭建(手动建表建类)
  10. python标准库之collections
  11. 广发基金总经理林传辉:深耕资产管理本源做投资者的资产配置专家
  12. Qt实战案例(18)——Qt位置相关函数汇总实例
  13. 电感电容串联起什么作用
  14. Android 反编译修改包名、重新签名、更换app名称
  15. STM32 CubeIDE快速创建工程(图文详解)
  16. HDS存储产品概述1
  17. 前端找实习岗的7条建议
  18. gz rar zip 7z bz2 tgz压缩率比较,以及做一些简单的关于压缩包介绍
  19. 岁月温柔-2 又住院了,祈祷早日康复
  20. 蓝桥杯:互质数及其定义

热门文章

  1. 如何使用shell脚本快速排序和去重文件数据
  2. Linux报错./configure: error: C compiler cc is not found
  3. Swoole的TCP/IP HTTP WebSocket关系
  4. 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导
  5. 密度图的密度估计_基于核密度的宝鸡地名文化特征与时空分布研究
  6. 【Java】日期/事件字符串包含TZ
  7. JQuery 定期刷新网页,保持登录状态Session
  8. 有微型计算机广告,广告还会受欢迎?都是斯巴达克显卡惹的“祸”
  9. java 右移两位_java左移右移运算符
  10. ubuntu python3.6_在 Ubuntu 16.04 LTS 系统上安装 Python 3.6