2024-03-05 · Go
用 Go 與 Cobra 打造指令列工具
處理子指令、環境變數與設定檔,不必自己黏合五個函式庫。
前言
文章從零建立一個小型同步工具,定義巢狀子指令並設定 persistent flag,讓操作方式與 GNU 工具一致,同時說明 Cobra 如何與標準函式庫的 flag 互相配合。
常見的翻車方式
跳過這個步驟的團隊,通常會踩到三種坑:
- 優化了一個沒有人同意要動的數字。
- 照抄了約束條件完全不同的專案的作法。
- 一直延後決策,直到反悔的成本高得嚇人。
建議的切入方式
- 用使用者的語言,一句話講清楚問題。
- 選一個每週都能量測的訊號,而不只是上線當天看一次。
- 給小實驗設時間盒;兩天的 spike 勝過兩週的辯論。
小結
如果 Go 教會我們什麼,那就是「無聊的一致性」打贏「聰明的一次性方案」。把學到的東西帶回團隊,別讓它變成口耳相傳的都市傳說。