Anthony Kan與 AI 一起實作
所有實作筆記

兩個工具分享資料時,把約定說清楚

容許已知的可選欄位,不代表遇上壞格式也要照猜。

做下去,遇上新難題閱讀時間約 2 分鐘

程式已連起來,約定也要跟上

Nottinghamshire Jobs 提供職位資料,My Next Step 目前的應用程式碼,也已有讀取這份資料的目錄路徑。這說明程式已實作,不代表某個公開安裝版本已採用最新內容。

當一個工具負責產生資料、另一個負責讀取,改動其中一方,就可能碰到另一方的假設。欄位變成可選、表頭(header)名稱改動,或網址格式變了,都需要有意識地決定怎樣相容。

資料值可以容許變化,結構則要清楚

My Next Step 的解析程式支援指定的 CSV 結構(schema),並會檢查欄位排列。可選的截止日期沒有提供時,可以留空不列;某行的申請網址無法使用時,可以略過該行並記下原因。但如果連表頭名稱都對不上,程式不會硬去猜每個欄位代表甚麼。

只影響單一行的問題,可以局部隔離處理;但如果整份 CSV 的欄位結構不合,每個欄位的意思都會變得含糊,這時就應直接報錯停止。不能憑空編造截止日期,也不能在沒有任何可用職位時,把空白目錄悄悄當成成功匯入。成功與略過的行數、以及失敗原因,都要記錄下來幫助追查。

資料接收條件的判斷示例,並非完整解析程式。
Unsupported header/schema -> reject with a diagnostic
Known optional value missing -> omit or normalise
Unusable application URL -> skip that row, record why
No usable rows -> report an unavailable catalogue

兩邊一起檢查改動

為支援的格式版本、缺少可選資料、無效網址,以及完全無法使用的資料集,保留測試範例。採用產生端的新格式之前,先用接收端的程式實際讀一次。資料來源與更新時間也要保留,讓人知道眼前看的是甚麼時候的資料。

相容,不等於甚麼都照單全收,而是說清楚哪些變化能可靠理解,其他變化則在有人依賴結果之前,先讓問題浮現出來。

相關專案

Nottinghamshire Jobs