ezdcbot:輕量 Discord 推播套件
ezdcbot 介紹與開發動機 身為一名後端工程師,我們經常需要實作一些自動化的小工具,例如: 接收 Stripe 伺服器傳來的付費 Webhook,並把通知傳到團隊的 Discord 群組。 寫一個爬蟲排程,每天早上把最新的天氣預報發到頻道裡。 在過去,大部分人的直覺反應是直接安裝強大的 disc...
. 核心架構與 Zero Dependency
在開發 ezdcbot 時,我們面臨的第一個決策是:要如何設計這個套件的基礎架構?我們希望它輕量、安全,且能適應 Serverless 環境。 Factory Pattern 工廠模式 我們沒有採用常見的單例模式 Singleton 或直接 export 一個物件,而是設計了 createBot 這...
. API 設計與 Threads 處理
我們刻意避免設計出 sendMessage, createThread, sendThreadMessage 這種冗長且繁雜的介面。相反地,我們將所有的行為抽象成兩個核心動作:push(推播)與 pull(拉取)。 處理 Discord 討論串的 Aha Moment 在實作討論串 Threads ...
. Embed 解析與錯誤攔截
在完成核心的 push 與 pull 架構後,我們還需要處理一些能大幅提升開發體驗 DX 的細節,例如:如何優雅地傳送 Rich Embed,以及當發生錯誤時該如何給予清晰的反饋。 自動 Embed 解析 Discord 的 Embed 訊息有特定的 JSON 結構(必須放在 embeds 陣列中)...