以真實存在的公開 PHP 套件 omnipay-ecpay 為素材,拆解一套 CI/品質工具鏈從「設定了但沒人看」到「真的把關」的維運歷程:覆蓋率報表被 --no-coverage 關掉、composer script 從沒接進 CI、PHPStan/phpcs 第一次跑就抓到真實問題。用真實 commit 與實測數字,示範 AI 輔助開發下,日常維運怎麼把「應該還好吧」的假設逐項核對成可傳承的品質防線。
前言:AI 會不會主動幫你補被冷落的測試? 「如果請 AI 幫我在 PurchaseRequest 加一個新的付款方式,AI 會不會像 Day 09 講的那樣,...
前言:沒有覆蓋率門檻,缺口靠什麼被補上? 前面幾天看到的「順路補測試」,是在一個完全沒有覆蓋率門檻的套件裡發生的——phpunit.xml 雖然設定了覆蓋率報表...
前言:把「順便檢查」寫成能照著做的 prompt Day 11 講了心態:AI 不會自動「順路」注意到測試缺口,除非你明確要求。今天把這件事變成真的能照著做的方...
前言:制度跟自覺,哪個更靠得住? 第二部用一筆真實的 commit,帶出了一連串觀察。今天把它們收在一起,回答一開始留下的問題:制度跟自覺,哪個更靠得住? 今日...
前言:CI 測過的範圍,等於正式承諾的範圍嗎? 「CI 矩陣測過 PHP 7.1 到 8.3,代表這個套件正式支援這個範圍吧?」 打開 composer.jso...
前言:跨版本相容,是刻意做出來的嗎? 「支援 PHP 7.1 到 8.3,程式碼裡是不是寫了一堆 if (version_compare(...)) 這種版本分...
前言:徽章還在,但它指的東西早就換了 Day 04 講過 README 的功能說明沒跟上程式碼——那是「這個套件能做什麼」的文件漂移。今天要看另一種完全不同面向...
前言:這個套件有在用靜態分析工具嗎? 「這個套件寫得算工整,應該有在用靜態分析工具吧?」 沒有。翻遍整個專案,找不到 phpstan.neon、psalm.xm...
前言:實際跑一次 PHPStan,會冒出什麼? 昨天講完「這個套件沒有靜態分析工具」,今天實際動手裝一次,看看真的跑起來會冒出什麼。先說清楚:以下是我在一份本機...
前言:一個從沒被呼叫過的 composer script composer.json 裡有一個叫 check-style 的 script,執行 phpcs 檢...