只是改了一個頻道名稱
上週在整理團隊 Slack 頻道時,我把 `#bot-collab` 暫時改成了別的名稱。原本有三個機器人分別在不同時間往這個頻道回報進度,結果改名之後,情況變得很奇怪。
第一個機器人直接用舊的頻道 ID,所以完全沒受影響,照常回報。第二個機器人是用頻道名稱去查詢的,找不到新名稱,就這樣悄悄失敗了。第三個機器人設計成找不到頻道就自動退回到預設頻道,結果它把回報訊息全部送進了平常根本不會用到的私訊裡。
同樣的指令交給三個機器人,結果卻因為頻道 ID、頻道名稱、退回路徑的不同,走出三條完全不同的路。
打開程式碼一看,原因很明顯。
# 機器人 A:寫死頻道 ID
channel = "C0AQG9CFT0V"
# 機器人 B:用名稱查詢頻道
channel = get_channel_by_name("bot-collab")
# 機器人 C:失敗時退回私訊
channel = channel or DEFAULT_DM
這三種寫法各有各的道理。ID 不怕改名,名稱查詢比較好懂,退回機制至少能保證訊息送到某個地方。問題是,從來沒有人把「同一個團隊裡混用了三種方式」這件事寫下來。
最後把所有機器人統一改成用頻道 ID,名稱只留作註解參考。改個頻道名稱這種小事為什麼會讓人這麼緊張,直到看到三個機器人用三種不同方式失敗,我才真正明白。