講師介紹
楊周
CODING DevOps 架構師
CODING 布道師
連續創業者、DIY/Linux 玩家、知乎小 V,曾在創新工場、百度擔任后端開發,十余年一線研發和帶隊經驗,經歷了 ToB、ToC、O2O、國內、出海各種專案,見證了云計算時代的誕生,擅長研發最佳實踐:Code Review、DevOps、Git Workflow、敏捷開發、架構、極客辦公硬體,
PHP 老專案常見質量問題
問題一:未提交 composer.lock
Composer 官方檔案(getcomposer.org)提醒:一定要提交 composer.lock 檔案到代碼庫,才能確保所有人、所有機器安裝的依賴包都是同一版本,
問題二:提交了 vendor
把第三方包的代碼提交到了自己的代碼庫里,導致代碼庫過大,拉取速度慢,并且無法跟進第三方包的升級,所以,應該使用.gitignore 忽略vendor 目錄,
解決方案:洗掉 vendor,執行 composer install,再把 composer.lock 提交到代碼庫,
結果報錯:
1.使用了廢棄的包;
2.使用了已廢棄的語法;
3.框架命令執行失敗,
查看 PHP 官方檔案可以發現:PHP 7.4 不贊成使用花括號語法來訪問陣列元素和字串偏移量,
修改之后即可解決,從這個技術細節可以看出此開源專案無法跟上 PHP 官方的版本升級,在我們做技術選型時要避免使用這種落后的專案、框架,而應使用全球知名框架,能夠緊跟語言官方版本升級,目前 PHP 7.1 已經廢棄,7.2 即將結束維護升級,建議大家使用 7.4 ,
修改 composer 包
如果需要修改 vendor 中的第三方包,有兩個辦法:
1.Fork:修改代碼→制作補丁,自己用 → 發起合并請求,回饋開源;
2.私有 composer 倉庫:把修改后的包發布到 coding.net 制品庫,
Lint:增量檢查代碼規范
清理了第三方代碼之后,可以通過 Lint(代碼靜態分析工具)程式掃描自己的代碼,PHP Lint 常用的是 CodeSniffer,內置知名的「PSR12」規范,包括很多規則,比如:
- 每行代碼最大長度 120 個字符;
- 運算子左右各 1 個空格;
- 檔案結尾必須有一個空行,
老專案有成千上萬的報錯,一次難以清理干凈,建議使用增量檢查,具體請訪問 CODING 幫助檔案,搜索「增量檢查」,
PHP 自動化測驗
自動化測驗要點
可測性:不要在系統中使用系統時間、亂數、實體化物件,
Fake:用于偽造測驗資料,而不要在測驗代碼中寫死 123、12:00:00,因為可能 999、00:00:00 時會報錯,
Mock:攔截所有的第三方服務,比如測微信登錄、支付,不可能每次測驗都真的付款,
PHPUnit 在自動化測驗時,可同時生成測驗覆寫率的 HTML 報告,可以看到哪一行代碼沒有覆寫,這種報告包含代碼,所以需要私有訪問,可使用 CODING 通用報告功能,在持續集成中自動上傳即可,
PHP 代碼自動生成 API 檔案
在專案開發中,最好讓代碼先行,在代碼里寫注釋,這樣可以保證注釋與代碼一起維護,然后通過工具自動生成檔案,
在持續集成中自動生成檔案,可上傳到 CODING API 檔案中,支持團隊成員直接訪問、加密分享,
點擊觀看課程回放
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/961.html
標籤:其他
上一篇:CODING DevOps 代碼質量實戰系列第一課:代碼規范與 Git Flow
下一篇:8 月的最后一天,我們攤牌了……