CODING DevOps 代碼質量實戰系列第二課: PHP 版

1

講師介紹

楊周
CODING DevOps 架構師
CODING 佈道師git

連續創業者、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

結果報錯:composer

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:用於僞造測試數據,而不要在測試代碼中寫死 12三、12:00:00,由於可能 99九、00:00:00 時會報錯。
Mock:攔截全部的第三方服務,好比測微信登陸、支付,不可能每次測試都真的付款。

10

PHPUnit 在自動化測試時,可同時生成測試覆蓋率的 HTML 報告,能夠看到哪一行代碼沒有覆蓋。這種報告包含代碼,因此須要私有訪問,可以使用 CODING 通用報告功能,在持續集成中自動上傳便可。

11

12

13

PHP 代碼自動生成 API 文檔

在項目開發中,最好讓代碼先行,在代碼裏寫註釋,這樣能夠保證註釋與代碼一塊兒維護,而後經過工具自動生成文檔。

14

在持續集成中自動生成文檔,可上傳到 CODING API 文檔中,支持團隊成員直接訪問、加密分享。

15

16

17

點擊觀看課程回放
關於 CODING,瞭解更多
相關文章
相關標籤/搜索