iT邦幫忙

2026 iThome 鐵人賽

DAY 8
0
Software Development

當 AI 越來越會寫程式,開發者究竟還需要懂什麼系列 第 8 篇

Day08 - 命名,讓團隊與AI理解同一件事

  • 分享至 

  • xImage
  •  

AI能幫忙取名字,也能發現命名異常。我們需要懂的,是這個名字在系統裡代表什麼。

昨天談到,同樣叫做庫存,可能是在庫量,也可能是可售量。名稱提供了理解的起點,而我們如何命名,也會影響同事與AI接下來怎麼使用這份資料。

例如,要替既有訂單流程加上出貨通知,規格已經寫清楚:寄給訂單指定的收件人。讀到訂單裡的User,卻還要確認它究竟是購買的人、操作帳號,還是收件人。

這個疑問可以由工程師提出,也可以在AI分析程式時被主動指出。接下來要做的,是把名稱與實際用途核對清楚。

先知道在說誰,才知道名字怎麼取

以公司採購為例,登入的是採購人員,訂單歸屬的客戶是公司,收件人可能是倉管。同一張訂單,這幾個角色各有用途。

因此,命名時可以分別表達:

  • CreatedByAccountId:建立訂單的操作帳號。
  • CustomerId:訂單歸屬的客戶。
  • RecipientEmail:訂單指定的收件Email。

這些名稱的價值,在於讓讀程式的人知道該拿哪個欄位做判斷。查操作紀錄、統計客戶訂單與寄送出貨通知,需要的是不同資料。

如果自己也沒分清楚,請AI「幫我取個更好的名字」,得到的可能只是英文更順,含義仍然模糊。

AI提出的提醒,也需要有依據地判斷

提供規格、資料模型與相關程式後,AI可以協助追查欄位的寫入與使用位置,找出名稱和用途不一致的地方。例如它可能提醒:某個叫做User的物件,實際只保存收件資料,建議改成Recipient。

這是很有用的協助。但接受建議前,還要確認這個物件是否真的只代表收件人。如果其他流程也把它當成購買者使用,就需要先釐清資料混用的原因,不能直接整批換名字。

反過來,AI也可能受到名稱影響,把CustomerId當成客戶識別,卻沒有發現它在某段舊流程中保存的是操作帳號。這是需要核對的風險,並不表示AI必然會漏看。

我覺得,懂得命名背後的概念,讓我們能和AI討論「為什麼這樣改」。它指出異常時,我們能判斷是否合理;它沿用舊名稱時,我們也知道要追查哪些關係。

團隊說的是同一件事,AI才有一致的脈絡

這件事在人與人之間也一樣。如果規格裡的「客戶」指公司,開會時卻拿來稱呼操作人員,程式再全部寫成User,接手的人就得重新猜一次。

在同一個業務範圍裡,同一概念盡量使用一致的名稱;不同角色會影響處理規則時,就明確區分。不同系統有自己的用語,也應交代對應關係。

確認過的定義可以留在專案Markdown文件裡,讓團隊與AI在修改前讀取。例如簡短記錄:「Account是操作帳號,Customer是交易對象,出貨通知使用訂單的RecipientEmail。」這比只有「請遵守良好命名」更能提供判斷依據。

若命名檢查已成為固定工作,再考慮把追查來源、核對定義與檢查影響的步驟整理成Skill。文件記錄的共識需要保持正確,也要讓AI在相關任務中實際讀到。

名稱改清楚了,再確認資料真的用對

回到出貨通知,若實作改成:

await SendShipmentNotificationAsync(order.RecipientEmail);

審查時仍要確認,這個值確實來自訂單指定的收件資料。只把登入帳號的Email放進新名稱,並沒有解決問題。

測試可以讓購買者與收件人使用不同Email,確認通知寄到規格指定的對象。這個情境能檢查角色是否被混用,而不只是看程式中的名字是否一致。既有公開欄位若需要更名,也要核對使用端的相容性。

清楚的命名,讓我們能把業務概念交代清楚、判斷AI的建議,並確認修改符合原本的意思。 AI可以一起找出問題,團隊也能把釐清過的共識留下來,減少下一次修改時的猜測。


工程師問前輩:「這個叫Temp的資料夾可以刪嗎?」
前輩:「不行,正式環境還在用。」
「那為什麼叫Temp?」
「因為五年前,我們以為只會用一個禮拜。」
/images/emoticon/emoticon31.gif


上一篇
Day07 - 讀懂程式,不只是看懂每一行
下一篇
Day09 - 狀態不能隨便改,規則該寫在哪裡?
系列文
當 AI 越來越會寫程式,開發者究竟還需要懂什麼 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言