文章
抽象層級的紀律,每層清楚的做一件事情
每層只負責一件講得清楚的事,責任模糊時 debug 就得跨層猜。談抽象不足、過度抽象,以及沒有第二個 caller 就別先抽介面。
錯誤訊息是寫給下一個人看的
好的 error message 要交代發生什麼、在哪個邊界出錯、下一步往哪查,log、metrics、trace 各補一塊,寫給凌晨兩點半被 call 起來的下一個人。
net/http 與 middleware 模式
每個 Go web 框架都長在 net/http 上,http.Handler 與 ServeHTTP 是唯一的抽象,middleware 就是包一層 Handler 的閉包,外層先跑。
在 macOS 用 OrbStack 跑 Docker 與 Linux 機器
OrbStack 是 Docker Desktop 的輕量替代,啟動快、吃資源少,還能順便跑 Linux 機器與 Kubernetes。
我的 Docker Compose 範本集
一組放在 GitHub 的 Docker Compose 範本,clone 下來改一下就能起 MySQL、Redis 等常用服務的開發環境,適合本地開發和整合測試,不建議直接上 production。
Hugo 架站筆記
Hugo 架站記錄:安裝、照 Quick Start 建站、選 Hugotex 主題、用 GitHub Actions 部署到 GitHub Pages,附新增文章和自訂 archetype 的指令。