CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
多语言后端入门/课时/Go 入门
RawBlame
课时目录12 节

多语言后端入门

  1. 01多语言后端概览
  2. 02Go 入门
  3. 03Rust 入门
  4. 04C# 入门
  5. 05Ruby 入门
  6. 06语言对比
  7. 07并发模型
  8. 08包管理与工具链
  9. 09与 Java 互操作
  10. 10如何选择语言
  11. 11多语言微服务
  12. 12综合练习

Go 入门

goroutine、标准库、云原生常见度。

35 分钟

Go 入门

Go(Golang)由 Google 设计,主打 简单语法、静态编译、内置并发。在云原生栈里 Kubernetes、Docker、Prometheus、etcd 大量用 Go 编写——若你已在 java-fundamentals 打好 OOP 与 Maven 基础,Go 的 包管理 go mod + 单二进制部署 会显得很「运维友好」。

学习目标

  • 读懂最小 Go HTTP 服务与 go mod 项目结构
  • 理解 goroutine、channel 与 Java 线程模型的差异
  • 说清 Go 在后端/云原生中的常见落点

最小 HTTP 服务

package main

import (
    "encoding/json"
    "net/http"
)

func tracksHandler(w http.ResponseWriter, r *http.Request) {
    _ = json.NewEncoder(w).Encode(map[string]string{"slug": "java-fundamentals"})
}

func main() {
    http.HandleFunc("/tracks", tracksHandler)
    http.ListenAndServe(":8080", nil)
}

编译:go build -o server . → 单个可执行文件,无需 JVM。对比 Spring Boot:启动快、内存占用常更低,标准库 HTTP 够用,复杂领域仍可能回到 Java。

goroutine 与 channel

概念GoJava(对照 java-fundamentals)
轻量并发go fn() goroutineThread、ExecutorService
通信channel ch <- vBlockingQueue、CompletableFuture
风格口号不要通过共享内存通信synchronized、锁、JUC
ch := make(chan int)
go func() { ch <- 42 }()
n := <-ch

M:N 调度由 runtime 负责;泄漏 goroutine(channel 无人读)是常见生产 bug,需 pprof 排查。

标准库与生态

  • net/http:REST、反向代理入门
  • context:超时、取消,贯穿 gRPC 与 HTTP 客户端
  • encoding/json:无 Jackson 也能跑,结构体 tag 映射字段
  • 测试:go test 内置,表格驱动测试是社区习惯

框架:Gin、Echo、Fiber 类似 Express(见 node-express),比 Spring 薄。

何时选 Go

  • 基础设施:网关、Sidecar、Operator、CLI
  • 高并发 I/O:代理、推送、日志采集
  • 团队要小:语法少、review 面窄
  • 不太适合:复杂领域模型 + 大量 ORM 魔法——Java Spring 或 C# EF 往往更顺手。

    练习

    • 安装 Go,用 go mod init demo 跑通上文 HTTP 示例
    • 写一个 goroutine + channel 求和,对比 Java ExecutorService 思路
    • 查 Kubernetes 任一组件仓库,确认主要语言为 Go

    小结

    Go = 简单语法 + goroutine + 单二进制;云原生工具链的默认方言。 下一课 Rust:所有权与安全。

    加载本节练习…
    ← 上一课多语言后端概览下一课 →Rust 入门