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 层的生态位都没有。