GoLevel

Go Engineering Skill Model

GoLevel breaks Go engineering ability into 5 domains and 25 measurable skill nodes, each with P4-P8 level expectations. Assessment questions are mapped to nodes — your Skill Profile and gap analysis are driven by this model. (Model content is currently in Chinese; translation in progress.)

Assess yourself against this model →

01语言基础

语法与类型系统

P4掌握基本语法、零值、类型转换与断言的安全写法
P5理解值语义与引用语义、深浅拷贝差异,会用泛型
P6理解无类型常量、类型可比较性规则等边界行为
P7能从语言规范角度解释行为差异与版本变更
P8能制定团队级语言使用规范与升级策略

slice / map 底层机制

P4正确使用 slice/map,知道 nil map 读写差异
P5理解共享底层数组陷阱、预分配、map 无序性
P6掌握 hmap 桶结构、渐进扩容、元素不可寻址的原因
P7能分析扩容策略对性能的影响并做容量规划
P8能基于底层机制设计高性能数据结构方案

接口与方法集

P4会定义和实现接口,理解鸭子类型
P5掌握方法集规则(值/指针接收者)与嵌入语义
P6理解 nil 接口陷阱、iface/eface 结构与断言原理
P7能做面向接口的架构设计与最小接口原则落地
P8能设计跨团队的接口契约与演进策略

错误处理与 panic 机制

P4规范处理 error,知道常见 panic 场景
P5掌握 panic/recover 边界与 goroutine panic 的进程级后果
P6理解错误链机制并能设计包级错误契约
P7能制定服务级错误处理与故障隔离规范
P8能设计跨服务的错误传播与治理体系

闭包与 defer

P4会用 defer 做资源清理,知道执行顺序
P5掌握 defer 参数求值时机与命名返回值交互
P6理解闭包捕获语义及 Go 1.22 循环变量变更
P7能识别闭包引起的逃逸与泄漏问题
P8能在框架设计中正确运用延迟执行机制

02并发编程

goroutine 与 channel

P4会用 channel 通信,牢记读写 close 行为规则
P5掌握 select 语义、生产者消费者等基础模式
P6理解 hchan 底层结构与 nil channel 技巧
P7能设计复杂 channel 拓扑并证明其正确性
P8能制定团队并发原语选型规范

同步原语(sync/atomic)

P4正确使用 WaitGroup/Mutex 保护共享状态
P5掌握 Once/RWMutex/atomic 的适用场景与陷阱
P6理解 Mutex 饥饿模式、sync.Map 双结构等实现机制
P7能做锁竞争分析与无锁化改造决策
P8能设计高并发下的同步策略与性能边界

context 与并发模式

P4会透传 ctx 并响应取消
P5掌握超时控制、errgroup、并发度限制等模式
P6理解取消传播树与 ctx 泄漏防治
P7能设计全链路超时预算与取消策略
P8能制定服务体系的并发治理规范

GMP 调度器

P4理解 goroutine 与线程的量级差异
P5能描述 GMP 模型与调度基本流程
P6理解 netpoller、hand-off、IO 与计算混布行为
P7掌握抢占机制演进,能排查调度类疑难问题
P8能基于调度器特性做架构级容量与延迟设计

数据竞争与泄漏防治

P4知道 map 并发写会崩溃,会开 -race
P5能识别常见 goroutine 泄漏模式并修复
P6理解 Go 内存模型与 happens-before 规则
P7能在生产环境定位复杂竞态与泄漏问题
P8能建立团队级并发安全防线(CI/review/监控)

03Runtime 与性能

GC 机制

P4知道 Go 自动 GC,了解 GOGC 的存在
P5理解 GC 触发时机与基本调参
P6掌握三色标记、STW 阶段与 GOMEMLIMIT 实践
P7理解写屏障原理,能做 GC 压力专项优化
P8能针对业务特征制定内存与 GC 架构策略

内存分配与逃逸

P4了解栈和堆的区别
P5能用 -gcflags=-m 查看逃逸并解释常见场景
P6掌握逃逸判定规则、内存对齐、分配器分级结构
P7能系统性降低分配率并量化收益
P8能做内存密集型系统的架构级设计

性能诊断(pprof)

P4会写基准测试并读懂输出
P5会采集 CPU/heap profile 定位热点
P6掌握火焰图分析、差分对比、泄漏排查流程
P7能主导生产环境性能事故的排查与复盘
P8能建设持续 profiling 与性能防退化体系

优化实践

P4掌握预分配、strings.Builder 等基础优化
P5会用 sync.Pool 并知道其边界
P6掌握容器环境 GOMAXPROCS/资源适配问题
P7理解 cache line、伪共享等硬件层效应
P8能在性能、成本、可维护性间做架构权衡

04工程实践

测试工程

P4会写表驱动单测,了解覆盖率工具
P5掌握并行测试、mock 注入与测试规范
P6能设计可测试的代码结构与分层测试策略
P7能建设团队测试基础设施与质量门禁
P8能制定组织级质量工程体系

工程结构与模块管理

P4会用 go mod 管理依赖
P5掌握 internal、build tag、embed 等工程机制
P6理解 MVS 算法,能治理依赖与初始化副作用
P7能设计多模块大型工程的结构与边界
P8能制定组织级工程规范与脚手架体系

服务健壮性与可观测性

P4了解服务需要优雅关闭与基础日志
P5掌握 Shutdown、HTTP 客户端复用等正确姿势
P6能识别 Timer/连接泄漏,会接入 metrics/trace
P7能统一可观测性体系,设计面向故障的服务生命周期
P8能建立 SLO/错误预算驱动的可靠性工程制度

代码质量与规范

P4遵循基础编码规范,会用 vet/lint
P5掌握错误包装、context 使用等惯用法
P6能在 review 中识别设计缺陷与安全隐患
P7能主导代码规范制定与架构守护
P8能建设组织级代码质量文化与工具链

平台工程与技术治理

P4了解团队的脚手架与工程规范并遵循
P5能改进 CI/构建流程,参与工具链维护
P6能为团队搭建脚手架与自动化检查
P7能主导跨团队的技术选型与迁移方案
P8能设计组织级平台工程与技术治理体系

05分布式与云原生

微服务与 RPC

P4了解微服务基本概念与 RPC 调用
P5掌握 gRPC 机制、灰度发布等交付实践
P6掌握超时传播、追踪链路等跨服务治理
P7能设计服务拆分、流量治理与容量方案
P8能主导大规模微服务体系架构演进

缓存与 Redis

P4会用 Redis 基础数据结构做缓存
P5掌握穿透/击穿/雪崩与布隆过滤器方案
P6掌握分布式锁陷阱、缓存一致性、大 key 治理
P7能设计多级缓存与热点应对架构
P8能制定缓存体系标准与容灾策略

消息队列与异步

P4了解消息队列的解耦削峰用途
P5理解投递语义与消费端幂等的必要性
P6掌握 rebalance 影响、积压治理与顺序性方案
P7能设计异步化架构与消息可靠性方案
P8能主导事件驱动架构的体系设计

Kubernetes 与云原生

P4了解容器化部署与 Pod 基本概念
P5掌握探针配置、HPA 与资源 requests/limits
P6能排查 OOMKilled、CPU 限流等容器化问题
P7能设计弹性、可观测的云原生服务架构
P8能主导平台工程与多集群体系建设

容错与稳定性设计

P4理解 CAP、幂等等基础概念
P5掌握限流算法与常见容错组件用法
P6能设计幂等方案、熔断策略,理解共识基础
P7能治理重试风暴等连锁故障,主导稳定性建设
P8能制定全局稳定性架构与故障演练体系

存储与网络基础

P4掌握 SQL 基础与 TCP/HTTP 基本概念
P5理解索引原理、连接池配置与网络排障基础
P6掌握 B+ 树选型逻辑、深分页优化、epoll 机制
P7能定位跨层(应用/网络/存储)的复杂生产问题
P8能做存储选型与数据架构的体系化设计