Skip to content

Go · 02 核心能力 ​

1. Goroutine + Channel ​

这是 Go 真正与 Java 不同的体感:

  • 轻量并发:go func(){...}()
  • Channel 做通信;「用通信分享内存」而不是处处锁
  • context 做取消与超时——必须会用
适合小心
网络 IO、worker 池、扇出请求goroutine 泄漏(没退出条件)
代理、边车、简单 API无界开 goroutine 打爆内存

和 Java 线程池比:更轻,但 泄漏与数据竞争 一样会要命;go test -race 要会跑。


2. 性能与部署边界 ​

  • 静态编译、单文件部署,容器友好
  • 内存与延迟在网络服务场景通常很漂亮
  • 不是自动让业务变简单:域复杂、生态组件丰富度仍常输给 Java

适合:网关、高并发小工具、云原生旁路组件。
不适合(对我):取代 Java 做整套复杂中台。


3. 适合 / 不适合 ​

适合不适合(对我而言)
边车、网关、高并发小工具取代 Java 做整套 CRM/ERP
对内存/部署体积敏感快速 AI 试错(Python 更快)
读开源、改小服务团队不会 Go 却强行全量迁移

我为什么了解 Go ​

  • 读开源、改小服务时用得上
  • 并发与部署思路能反哺 Java 架构讨论
  • 不与 Java 抢主业务,做 补位技能

下一篇:03 框架与生态