讲师介绍周扬CODINGDevOps架构师CODING布道者连续创业者,DIY/Linux玩家,知乎小V,曾在创新工场、百度做后端开发。十余年一线研发和团队领导经验,经历过ToB、ToC、O2O、国内外项目,见证了云计算时代的诞生,擅长研发最佳实践:CodeReview、DevOps、GitWorkflow、敏捷开发、架构、极客办公硬件。PHP老项目常见质量问题问题一:未提交composer.lockComposer官方文档(getcomposer.org)温馨提示:一定要提交composer.lock文件到代码库,确保所有机器上安装的依赖包都是同一个版本。问题二:厂商将第三方包的代码提交到自己的代码库,导致代码库过大,拉取速度慢,无法跟进第三方包的升级。因此,应使用.gitignore忽略供应商目录。解决方法:删除vendor,执行composerinstall,提交composer.lock到代码库。结果报错:1.使用了过时的包;2.使用过时的语法;3.框架命令执行失败。查看PHP官方文档可以发现:PHP7.4deprecatestheuseofcurlybracessyntaxtoaccessarrayelementsandstringoffsets。修改后即可解决。从这个技术细节可以看出,这个开源项目跟不上PHP正式版的升级。我们在做技术选型的时候,要避免使用这种落后的项目和框架,而要使用世界知名的框架。能跟上语言正式版升级,目前PHP7.1已经废弃,7.2即将结束维护升级,建议大家使用7.4。修改composer包如果需要修改vendor中的第三方包,有两种方式:1.Fork:修改代码→打补丁,自己用→发起合并请求贡献开源;2.私有composer仓库:将修改后的包发布到coding.net神器库中。Lint:增量检查代码规范清理完第三方代码后,可以通过Lint(代码静态分析工具)程序扫描自己的代码。PHPLint常用CodeSniffer,内置了著名的“PSR12”规范,包括很多规则,例如:每行代码的最大长度为120个字符;运算符左右两边必须有空格;文件末尾必须有一个空行。旧项目报错上千条,很难一下子清理干净。建议使用增量检查。详情请访问CODING帮助文档,搜索“增量校验”。PHP自动化测试自动化测试要点可测试性:不使用系统时间、随机数、系统中的实例化对象。Fake:用来伪造测试数据,而不是在测试代码中写123,12:00:00,因为999,00:00:00可能会报错。Mock:拦截所有第三方服务,比如测试微信登录和支付,不可能真的每次测试都付费。PHPUnit在自动化测试的时候,可以同时生成测试覆盖率的HTML报告,可以看到哪一行代码没有被覆盖。这种报表是有代码的,所以需要私有访问,可以在持续集成中使用CODING通用报表功能自动上传。PHP代码自动生成API文档在项目开发中,最好让代码先行,在代码中写注释,这样可以保证注释和代码一起维护,然后通过工具自动生成文档。持续集成时自动生成文档,可上传至CODINGAPI文档,支持团队成员直接访问和加密共享。点击观看课程回放关于CODING,了解更多
