一、使用静态分析工具测量质量

我们用静态分析测量代码而不运行它。实际上,我们将这些工具用于评估代码、读取文件、衡量它所写的要素。使用这些工具,可以帮助我们对代码库有一个完整的层次化的认识,甚至在代码库变得更大、更复杂的时候也能掌握。

静态分析工具是项目过程中的一个关键组成部分,但是,只有定期使用它们,并以理想的方式进行每一次提交,静态分析工具才真正显示出价值。这些工具涵盖了代码的所有方面,从计数类和计算行数,到识别哪里有提示使用复制和粘贴的类似代码段。然后我们来看看静态分析工具在代码质量中两个特别关键的问题上如何帮助我们:编码标准和文档。

1、phploc

PHP代码行(phploc)可能并不是一个非常有趣的静态分析工具,但它确实给了我们一些有趣的信息,特别是随着时间的推移当我们反复运行它的时候。phploc提供项目拓扑结构以及尺寸的相关信息。

例如测试一个标准的WordPress版本,我们只需使用如下命令:

$ phploc wordpress

2、phpcpd

PHP复制粘贴器(phpcpd)看起来是一个在代码中寻找类似模式的工具,我们使用它是为了在代码库中识别代码在何处被复制或粘贴。这是常规构建过程中的一个非常有用的工具,但是从输出中获得正确的编号会让项目与项目有所不同。

同样,如果我们测试WordPress,可以使用下面的命令:

$ phpcpd wordpress

3、phpmd

PHP项目消息探测器(phpmd)是一个试图量化所谓开发老手所说的“代码发出的气味”的工具。它使用一系列指标寻找似乎失衡的项目元素。该工具生成大量的输出,其中大部分都是好的建议,下面是一个要求phpmd在WordPress中检查命名混乱的命令:

$ phpmd wordpress/  text naming

二、编码标准

编码标准是一个在很多开发团队中引起激烈争论的话题,既然缩进和使用空格并未影响代码的运行,那为什么我们要创建格式化的规则并且严格遵守呢?事实上,当我们已经习惯于某个编码风格,而且代码以我们期望的方式排列时,它会变得更加容易阅读。但是,在实际开发过程中,很容易忘记规则,所以需要工具区检查所有的代码。

1、使用PHP代码探测器检查编码标准

首先,你需要在服务器上安装这个工具。无论它在开发机器还是开发服务器上,这完全取决于你所拥有的可用资源。

安装后,就可以使用下面的命令测试代码了:

phpcs --standard=PEAR robot.php

2、查看违反编码标准的地方

PHP代码探测器有几个非常重要的报表样式,你可以用它们看着所用代码库的“重点”、我们将这些以详细报表的同样方式输出到屏幕上,它们也可以生成其他格式。

要生成一个汇总报表,只需这样做:

phpcs --standard=PEAR --report=summary *

3、查看PHP代码探测器标准

有几个编码标准是PHP代码探测器默认运行的,你可以生成或设置任何自己的标准。若想看到有哪些可用的标准,你可以运行具有-i开关的phpcs。

$ phpcs -i

三、文档和代码

使用phpDocumentor将注释转换为文档。

例如:

phpdoc -t docs -o HTML:Smarty:PHP -d .

四、源代码管理

常用源代码管理工具:

五、自动部署

Phing 是一个基于Apache ANT 的项目构建系统。Phing使用基于XML的配置,默认保存在一个名为build.xml的文件中。

我们给这个项目命令,并定义一系列属于这个项目的任务,还可以指定哪些任务被默认运行,都可以通过Phing进行配置。

中航信e-build php,学习PHP精粹,编写高效PHP代码之质量保证相关推荐

  1. php 精粹 评论,php精粹 编写高效php代码好不好

    PHP高效率写法1.尽量静态化 2.echo的效率高于print,因为echo没有返回值,print返回一个整型; 3.在循环之前设置循环的最大次数,而非在在循环中; 4.销毁变量去释放内存,特别是大 ...

  2. 《PHP精粹:编写高效PHP代码》——2.1节数据持久化和Web应用程序

    本节书摘来自华章社区<PHP精粹:编写高效PHP代码>一书中的第2章,第2.1节数据持久化和Web应用程序,作者:(美) Davey Shafik,更多章节内容可以访问云栖社区" ...

  3. 《PHP精粹:编写高效PHP代码》——第1章面向对象编程

    本节书摘来自华章社区<PHP精粹:编写高效PHP代码>一书中的第1章面向对象编程,作者:(美) Davey Shafik,更多章节内容可以访问云栖社区"华章社区"公众号 ...

  4. 《PHP精粹:编写高效PHP代码》——2.7节设计数据库

    本节书摘来自华章社区<PHP精粹:编写高效PHP代码>一书中的第2章,第2.7节设计数据库,作者:(美) Davey Shafik,更多章节内容可以访问云栖社区"华章社区&quo ...

  5. 《PHP精粹:编写高效PHP代码》——1.1节为什么要使用面向对象编程

    本节书摘来自华章社区<PHP精粹:编写高效PHP代码>一书中的第1章,第1.1节为什么要使用面向对象编程,作者:(美) Davey Shafik,更多章节内容可以访问云栖社区"华 ...

  6. 百融金服、趣店、中航信面试总结

    百融金服: 总体面试官很好,一共三个人面我,一个leader,两个员工,一起面: 自我介绍基本必不可少 1.逻辑回归的推导 2.参加竞赛的讲述(要细致,我每次面试都会带上纸和笔方便讲述) 3.项目的评 ...

  7. 中航信HBE接口接口开发指南

    一.实现数据的本地化 因为中航信的接口,是所有代理人公用的接口,所以查询的数据比较,所以我们可以把酒店查询的数据,存到我们的数据库中,这样可以带来更好的客户体验. 下载的时候,可以一次下载一个月,下载 ...

  8. (转载)中航信面试经历

    收到中航信的offer,立刻就据了,虽然很后悔,但是只能这样了,看来跟中航信无缘了,攒rp,总结一下笔经和面经. 笔试:笔试挺简单的,就是50分的公务员考题和50分的技术类题目,全是选择题,公务员的题 ...

  9. 技术笔试汇(IBM 百度 中航信 汉略 瞬联 新华社 ×××中心)

    这是大部分单位考查的形式,一般是针对具体的专业领域考察你的专业技能,所以不同的专业考的应该会不一样.这里,我只能把计算机相关的笔试经验分享给大家,如果恰巧有你要笔试的单位,希望可以对你有所帮助. 1) ...

  10. 《深度学习案例精粹:基于TensorFlow与Keras》深度学习常用训练案例合集

    #好书推荐##好书奇遇季#<深度学习案例精粹:基于TensorFlow与Keras>,京东当当天猫都有发售.本书配套示例源码.PPT课件.思维导图.数据集.开发环境与答疑服务. <深 ...

最新文章

  1. JBPM4常见错误汇总
  2. 2018-2019-2 20165313 《网络对抗技术》Exp4 恶意代码分析
  3. python游戏服务器框架_Scut游戏服务器免费开源框架--快速开发(2)
  4. 如何成为一个好的程序员...java应用架构师之后
  5. mysql存储过程--往表中批量插入数据
  6. tomcat配置一个线程来调试ThreadLocal的代码问题
  7. hibernate mysql写入中文乱码
  8. vue element form中input等组件不能输入值
  9. Joint Consensus两阶段成员变更的单步实现
  10. CSS3 Version
  11. Python__名称空间与作用域
  12. MVC微信浏览器图片上传(img转Base64)
  13. Object Detection︱RCNN、faster-RCNN框架的浅读与延伸内容笔记
  14. GBTD(Gradient Boosting Decision Tree)学习
  15. redis scan命令详解
  16. 火车售票系统html模板,火车售票系统设计
  17. 位置式数字PI控制器C语言
  18. Java代理模式概述及应用场景
  19. 淘宝产品3d展示-家具沙发三维模型应用
  20. 基于51单片机的温湿度检测及调节系统

热门文章

  1. cat6 万兆_CAT6、CAT6A超六类和CAT7七类网线哪个更适合10GBASE-T万兆网络
  2. iOS实现一个简单的视频播放器
  3. c语言 多核优化,【模型工具】一种对SWMM5的多核优化
  4. c#.net配置mysql数据库连接池_c# 创建 mysql数据库连接池
  5. 咸鱼之王小游戏PC版鼠标模拟器实现
  6. Power Query For Excel数据处理利器
  7. grads 风向杆值大小
  8. 雷达信号处理基础 ch1 note1
  9. 使用标尺工具获取某点的坐标
  10. Linux USB驱动详解