V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding.NET 轻量级社交
开源项目广场
使用帮助
意见反馈
CodingNET
V2EX  ›  Coding

CODING DevOps 代码质量实战系列第二课: PHP 版

  •  
  •   CodingNET · 2020-09-03 16:14:17 +08:00 · 2487 次点击
    这是一个创建于 1542 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    点击观看课程回放

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2831 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:35 · PVG 21:35 · LAX 05:35 · JFK 08:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.