zoukankan      html  css  js  c++  java
  • CODING DevOps 代码质量实战系列第二课: PHP 版

    1

    讲师介绍

    杨周
    CODING DevOps 架构师
    CODING 布道师

    连续创业者、DIY/Linux 玩家、知乎小 V,曾在创新工场、百度担任后端开发。十余年一线研发和带队经验,经历了 ToB、ToC、O2O、国内、出海各种项目,见证了云计算时代的诞生,擅长研发最佳实践:Code Review、DevOps、Git Workflow、敏捷开发、架构、极客办公硬件。

    PHP 老项目常见质量问题

    问题一:未提交 composer.lock

    Composer 官方文档(getcomposer.org)提醒:一定要提交 composer.lock 文件到代码库,才能确保所有人、所有机器安装的依赖包都是同一版本。

    2

    问题二:提交了 vendor

    把第三方包的代码提交到了自己的代码库里,导致代码库过大,拉取速度慢,并且无法跟进第三方包的升级。所以,应该使用.gitignore 忽略vendor 目录。

    解决方案:删除 vendor,执行 composer install,再把 composer.lock 提交到代码库。

    3

    结果报错:

    1.使用了废弃的包;
    2.使用了已废弃的语法;
    3.框架命令执行失败。

    查看 PHP 官方文档可以发现:PHP 7.4 不赞成使用花括号语法来访问数组元素和字符串偏移量。

    4

    修改之后即可解决,从这个技术细节可以看出此开源项目无法跟上 PHP 官方的版本升级,在我们做技术选型时要避免使用这种落后的项目、框架,而应使用全球知名框架,能够紧跟语言官方版本升级,目前 PHP 7.1 已经废弃,7.2 即将结束维护升级,建议大家使用 7.4 。

    5

    6

    修改 composer 包

    如果需要修改 vendor 中的第三方包,有两个办法:

    1.Fork:修改代码→制作补丁,自己用 → 发起合并请求,回馈开源;
    2.私有 composer 仓库:把修改后的包发布到 coding.net 制品库。

    7

    8

    Lint:增量检查代码规范

    清理了第三方代码之后,可以通过 Lint(代码静态分析工具)程序扫描自己的代码,PHP Lint 常用的是 CodeSniffer,内置知名的「PSR12」规范,包括很多规则,比如:

    • 每行代码最大长度 120 个字符;
    • 运算符左右各 1 个空格;
    • 文件结尾必须有一个空行。

    9

    老项目有成千上万的报错,一次难以清理干净,建议使用增量检查,具体请访问 CODING 帮助文档,搜索「增量检查」。

    PHP 自动化测试

    自动化测试要点

    可测性:不要在系统中使用系统时间、随机数、实例化对象。
    Fake:用于伪造测试数据,而不要在测试代码中写死 123、12:00:00,因为可能 999、00:00:00 时会报错。
    Mock:拦截所有的第三方服务,比如测微信登录、支付,不可能每次测试都真的付款。

    10

    PHPUnit 在自动化测试时,可同时生成测试覆盖率的 HTML 报告,可以看到哪一行代码没有覆盖。这种报告包含代码,所以需要私有访问,可使用 CODING 通用报告功能,在持续集成中自动上传即可。

    11

    12

    13

    PHP 代码自动生成 API 文档

    在项目开发中,最好让代码先行,在代码里写注释,这样可以保证注释与代码一起维护,然后通过工具自动生成文档。

    14

    在持续集成中自动生成文档,可上传到 CODING API 文档中,支持团队成员直接访问、加密分享。

    15

    16

    17

    点击观看课程回放

  • 相关阅读:
    jQuery 语法
    jQuery 简介
    把数据存储到 XML 文件
    XML 注意事项
    XML DOM (Document Object Model) 定义了访问和操作 XML 文档的标准方法。
    通过 PHP 生成 XML
    XML 命名空间(XML Namespaces)
    XML to HTML
    XMLHttpRequest 对象
    使用 XSLT 显示 XML
  • 原文地址:https://www.cnblogs.com/codingdevops/p/13571815.html
Copyright © 2011-2022 走看看