iT邦幫忙

omnipay相關文章
共有 25 則文章
鐵人賽 IT Operation DAY 25

技術 Day 25:幫 Refund 補一個例外測試,只花了 13 行

前言:不等新功能當藉口,主動補一個例外測試 第二部看過 commit 80d3469「順路補測試」的真實案例——加新功能時,順便把舊路徑的測試缺口補上。今天反過...

鐵人賽 IT Operation DAY 24

技術 Day 24:把 `check-style` 接進 CI,會先踩到 8 個已知的坑

前言:把 check-style 接進 CI,會先踩到什麼坑? 「一個 composer script 早就寫好了,接進 CI 不就是加一行 yaml 嗎?」...

鐵人賽 IT Operation DAY 23

技術 Day 23:把 `--no-coverage` 拿掉,會發生什麼事

前言:把覆蓋率的開關打開,要花多少功夫? 「覆蓋率工具要裝、要設定門檻、CI 要改,聽起來是一個大工程吧?」 前幾天看到 phpunit.xml 裡明明有完整的...

鐵人賽 IT Operation DAY 22

技術 Day 22:第三部小結——相容性防線,目前完全靠「跑過測試」撐著

前言:把第三部的發現串起來看一次全貌 第三部花了 7 天挖這個套件的跨版本相容性跟靜態品質工具現況。今天把它們串起來看一次全貌。 今日目標 回顧第三部 7 天...

鐵人賽 IT Operation DAY 21

技術 Day 21:請 AI 幫忙寫程式碼,怎麼確保它沒用 CI 矩陣不支援的語法?

前言:AI 寫的程式碼,會不會用了 CI 不支援的新語法? 如果現在請 AI 幫 omnipay-ecpay 加一個新功能,AI 很有可能會很自然地寫出 mat...

鐵人賽 IT Operation DAY 20

技術 Day 20:接進 CI 前先跑一次,才發現它從一開始就是紅燈

前言:一個從沒被呼叫過的 composer script composer.json 裡有一個叫 check-style 的 script,執行 phpcs 檢...

鐵人賽 IT Operation DAY 19

技術 Day 19:第一次跑 PHPStan,抓到一個打字打錯的烏龍

前言:實際跑一次 PHPStan,會冒出什麼? 昨天講完「這個套件沒有靜態分析工具」,今天實際動手裝一次,看看真的跑起來會冒出什麼。先說清楚:以下是我在一份本機...

鐵人賽 IT Operation DAY 18

技術 Day 18:沒有 PHPStan,型別錯誤靠什麼擋?答案:目前沒有

前言:這個套件有在用靜態分析工具嗎? 「這個套件寫得算工整,應該有在用靜態分析工具吧?」 沒有。翻遍整個專案,找不到 phpstan.neon、psalm.xm...

鐵人賽 IT Operation DAY 17

技術 Day 17:徽章連到的 CI 服務,幾年前就沒人在用了

前言:徽章還在,但它指的東西早就換了 Day 04 講過 README 的功能說明沒跟上程式碼——那是「這個套件能做什麼」的文件漂移。今天要看另一種完全不同面向...

鐵人賽 IT Operation DAY 16

技術 Day 16:跨版本相容,不是刻意做出來的,是「沒用到新語法」換來的

前言:跨版本相容,是刻意做出來的嗎? 「支援 PHP 7.1 到 8.3,程式碼裡是不是寫了一堆 if (version_compare(...)) 這種版本分...

鐵人賽 IT Operation DAY 15

技術 Day 15:composer.json 沒寫最低 PHP 版本,相容性靠誰承諾?

前言:CI 測過的範圍,等於正式承諾的範圍嗎? 「CI 矩陣測過 PHP 7.1 到 8.3,代表這個套件正式支援這個範圍吧?」 打開 composer.jso...

鐵人賽 IT Operation DAY 14

技術 Day 14:制度 vs 自覺,哪個更靠得住

前言:制度跟自覺,哪個更靠得住? 第二部用一筆真實的 commit,帶出了一連串觀察。今天把它們收在一起,回答一開始留下的問題:制度跟自覺,哪個更靠得住? 今日...

鐵人賽 IT Operation DAY 13

技術 Day 13:怎麼下 prompt,讓 AI 順便幫你檢查測試缺口

前言:把「順便檢查」寫成能照著做的 prompt Day 11 講了心態:AI 不會自動「順路」注意到測試缺口,除非你明確要求。今天把這件事變成真的能照著做的方...

鐵人賽 IT Operation DAY 12

技術 Day 12:沒有覆蓋率門檻,測試靠什麼被補上?

前言:沒有覆蓋率門檻,缺口靠什麼被補上? 前面幾天看到的「順路補測試」,是在一個完全沒有覆蓋率門檻的套件裡發生的——phpunit.xml 雖然設定了覆蓋率報表...

鐵人賽 IT Operation DAY 11

技術 Day 11:AI 會不會主動幫你補那些被冷落的測試?

前言:AI 會不會主動幫你補被冷落的測試? 「如果請 AI 幫我在 PurchaseRequest 加一個新的付款方式,AI 會不會像 Day 09 講的那樣,...

鐵人賽 IT Operation DAY 10

技術 Day 10:還沒等到「順路」機會的兩個類別

前言:順路補測試,總得先有人打開那個檔案 昨天說「順路補測試」是一種真實存在的償債機制,但它有個前提:得先有人因為別的理由打開那個檔案。今天看這個套件裡兩個一直...

鐵人賽 IT Operation DAY 9

技術 Day 09:兩種節奏——「功能配測試」跟「順路補測試」

前言:先寫測試再寫功能,才算有紀律? 「TDD 教的不是應該先寫測試、再寫功能嗎?昨天那筆 commit 看起來完全不是這樣,這樣算不算沒紀律?」 先說結論:昨...

鐵人賽 IT Operation DAY 8

技術 Day 08:一筆 commit,兩種說法

前言:commit message 講的,跟程式碼改的,是同一件事嗎? 「commit message 寫的是加了什麼功能,那測試就一定是為了驗證那個功能新寫的...

鐵人賽 IT Operation DAY 7

技術 Day 07:覆蓋率報表設定得很齊全,卻沒人在看

前言:覆蓋率報表設定好了,為什麼還要關掉? 「既然都設定好覆蓋率報表了,為什麼 CI 上還要特地加一個參數把它關掉?」 這是這個套件最反直覺的地方:phpuni...

鐵人賽 IT Operation DAY 6

技術 Day 06:不用 Mockery,這個套件怎麼假裝自己打過綠界 API

前言:不用 Mockery,這個套件怎麼辦? 「測試裡要模擬外部 API 呼叫,不就是 Mockery::mock() 一行解決的事嗎?」 omnipay-ec...

鐵人賽 IT Operation DAY 5

技術 Day 05:21 個測試方法,哪裡測得細、哪裡只測了半套

前言:「有寫測試」跟「測得夠不夠」是兩回事 「有寫測試」跟「測得夠不夠」是兩回事。今天把 omnipay-ecpay 全部 21 個測試方法攤開來數一遍,看清楚...

鐵人賽 IT Operation DAY 4

技術 Day 04:文件停在骨架範本,程式碼卻已經走了三年

前言:README 寫得爛,去看程式碼不就好了? 「README 寫得爛,去看程式碼註解或原始碼不就好了?」 這句話沒錯,但代價是:新使用者要多花一段時間,自己...

鐵人賽 IT Operation DAY 3

技術 Day 03:把廠商官方 SDK,包進一個多人共用的套件慣例裡

前言:官方 SDK 都出了,為什麼還要包一層 「廠商都出官方 SDK 了,為什麼還要多包一層 Omnipay 驅動套件,不是直接用官方 SDK 比較快?」 這是...

鐵人賽 IT Operation DAY 2

技術 Day 02:12 個付款方式類別,怎麼用 14 個 Trait 組出來

前言:付款方式一多,欄位要怎麼組 「同一個 PurchaseRequest,要同時支援信用卡、ATM、超商代碼、無卡分期、電子發票,這麼多種欄位組合,是不是要寫...

鐵人賽 IT Operation DAY 1

技術 Day 01:AI 幫你寫更多程式碼,但品質防線要自己蓋

前言:AI 能補程式碼,但補不出你沒發現的缺口 「現在 AI 這麼厲害,寫測試不是應該叫 AI 順手補一補就好了嗎?」 如果你也這樣想過,這個系列想用一個真實存...