Go 大工程的程式碼目錄分析:以 k8s、multica、etcd、prometheus 為例
從 Java 轉過來的人開啟 kubernetes 原始碼,第一反應是找 controller、service、dao——看到的卻是 cmd、pkg、staging。順著這個困惑往下追:這三個目錄各是什麼來歷,為什麼 etcd 連 cmd 和 internal 都沒有,k8s 的 controller 為什麼不是那個 controller,multica 又怎麼長回了 handler/service/db 三層,prometheus 為什麼連 service 層的生態位都沒有。