# sbs-go **Repository Path**: fizechan/sbs-go ## Basic Information - **Project Name**: sbs-go - **Description**: Go手把手教程。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-07 - **Last Updated**: 2026-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Go 语言商业级开发教程 > 目标读者:具备其他语言(Java/Python/C++/Node.js)开发经验,旨在使用 Go 进行商业项目开发的程序员。 > 学习路径:**极速上手 → 工程化 → 并发 → Web 开发 → 测试调优 → 云原生部署** --- ## 第一章:Go 核心思维与极速上手 | 文件 | 内容 | |------|------| | [1-1-go-philosophy](01-getting-started/1-1-go-philosophy.md) | 生产力优先、组合优于继承、错误即值、少即是多 | | [1-2-syntax-comparison](01-getting-started/1-2-syntax-comparison.md) | 变量、控制流、函数、包、错误处理对比 Java/Python/Node.js | | [1-3-data-types](01-getting-started/1-3-data-types.md) | int/uint、byte/rune、string、零值机制、类型别名 | | [1-4-slice](01-getting-started/1-4-slice.md) | 底层结构、扩容机制、截取陷阱、预分配 | | [1-5-pointer](01-getting-started/1-5-pointer.md) | &和*、new vs &T{}、何时传指针、闭包陷阱 | | [1-6-interface](01-getting-started/1-6-interface.md) | 隐式实现、空接口、类型断言、type switch | | [1-7-generics](01-getting-started/1-7-generics.md) | 类型参数、约束、泛型数据结构 | | [1-8-error-handling](01-getting-started/1-8-error-handling.md) | error 接口、错误创建、错误包装、panic/recover | | [1-9-standard-library](01-getting-started/1-9-standard-library.md) | strings、strconv、time、os/io、context、sync、log/fmt | | [1-10-cli-tool](01-getting-started/1-10-cli-tool.md) | flag、os/io、time、文件遍历 - 日志归档工具 | --- ## 第二章:工程化实践与依赖管理 | 文件 | 内容 | |------|------| | [2-1-go-modules](02-engineering/2-1-go-modules.md) | go.mod、语义版本、依赖代理、私有仓库 | | [2-2-project-layout](02-engineering/2-2-project-layout.md) | 标准布局、cmd/internal/pkg、分层架构 | | [2-3-code-style-and-lint](02-engineering/2-3-code-style-and-lint.md) | gofmt、goimports、golangci-lint、命名规范 | | [2-4-dependency-injection](02-engineering/2-4-dependency-injection.md) | 依赖注入、constructor injection、Google Wire、Uber fx | | [2-5-project-scaffold](02-engineering/2-5-project-scaffold.md) | 配置、模型、仓库、服务、处理器、中间件、main 入口 | --- ## 第三章:并发编程精要 | 文件 | 内容 | |------|------| | [3-1-goroutine](03-concurrency/3-1-goroutine.md) | Goroutine 基础、vs 线程、闭包陷阱、泄漏检测 | | [3-2-channel](03-concurrency/3-2-channel.md) | Channel 基础、无缓冲/有缓冲、select、常见模式 | | [3-3-sync-package](03-concurrency/3-3-sync-package.md) | Mutex、RWMutex、WaitGroup、Once、Map、Pool、atomic | | [3-4-context](03-concurrency/3-4-context.md) | Context 接口、创建、用法、三条铁律、WithValue | | [3-5-concurrency-pitfalls](03-concurrency/3-5-concurrency-pitfalls.md) | 竞态、Goroutine 泄漏、并发 map、死锁、最佳实践 | | [3-6-log-engine](03-concurrency/3-6-log-engine.md) | Worker Pool、优雅关闭、日志分发处理 | --- ## 第四章:商业级 Web 开发 | 文件 | 内容 | |------|------| | [4-1-net-http](04-web-development/4-1-net-http.md) | Server、Handler、Request、Response、Client | | [4-2-gin-framework](04-web-development/4-2-gin-framework.md) | Gin 路由、参数绑定、分组路由、中间件 | | [4-3-middleware](04-web-development/4-3-middleware.md) | Gin 中间件原理、日志/鉴权/限流/CORS/Recovery | | [4-4-database-and-orm](04-web-development/4-4-database-and-orm.md) | database/sql、GORM、SQLC、事务最佳实践 | | [4-5-configuration](04-web-development/4-5-configuration.md) | Viper、多环境配置、环境变量、热更新 | | [4-6-redis-cache](04-web-development/4-6-redis-cache.md) | 缓存策略、穿透/击穿/雪崩、分布式锁、Pipeline、Pub/Sub | | [4-7-grpc](04-web-development/4-7-grpc.md) | Protobuf、service 定义、四种 RPC 模式、拦截器、错误处理 | | [4-8-logging-and-observability](04-web-development/4-8-logging-and-observability.md) | Zap 结构化日志、Prometheus 指标、OpenTelemetry 链路追踪 | | [4-9-message-queue](04-web-development/4-9-message-queue.md) | Asynq、NSQ、Kafka、消息幂等、可靠性 | | [4-10-api-design](04-web-development/4-10-api-design.md) | RESTful 规范、响应格式、Swagger 文档、版本管理 | | [4-11-security-practices](04-web-development/4-11-security-practices.md) | 输入校验、SQL注入、XSS、CSRF、JWT、HTTPS、限流 | | [4-12-restful-order-system](04-web-development/4-12-restful-order-system.md) | DDD 分层、完整 CRUD、库存扣减、支付流程 | --- ## 第五章:测试与性能调优 | 文件 | 内容 | |------|------| | [5-1-unit-testing](05-testing/5-1-unit-testing.md) | go test、Table Driven、Mock、httptest、覆盖率 | | [5-2-pprof-profiling](05-testing/5-2-pprof-profiling.md) | CPU/Heap/Goroutine/Mutex Profile、火焰图、go-torch | | [5-3-escape-analysis](05-testing/5-3-escape-analysis.md) | 逃逸场景、减少逃逸、GC 调优、tcmalloc | | [5-4-benchmark-and-optimization](05-testing/5-4-benchmark-and-optimization.md) | wrk/hey/vegeta、pprof 分析、优化案例、对比测试 | --- ## 第六章:云原生部署 | 文件 | 内容 | |------|------| | [6-1-docker-multi-stage](06-cloud-native/6-1-docker-multi-stage.md) | 多阶段构建、CGO_ENABLED=0、alpine、最小镜像、安全 | | [6-2-cross-compilation](06-cloud-native/6-2-cross-compilation.md) | GOOS/GOARCH、CGO、Makefile、goreleaser | | [6-3-docker-compose](06-cloud-native/6-3-docker-compose.md) | 多容器编排、depends_on、健康检查、环境切换 | | [6-4-kubernetes](06-cloud-native/6-4-kubernetes.md) | Deployment、Service、ConfigMap/Secret、探针、滚动更新 | | [6-5-ci-cd](06-cloud-native/6-5-ci-cd.md) | GitHub Actions、lint → test → build → docker push、版本注入 | --- ## 附录 | 文件 | 内容 | |------|------| | [a-1-go-version-strategy](07-advanced/a-1-go-version-strategy.md) | Go 1.22 新特性、range over int、循环变量语义、go 指令 | | [a-2-recommended-dependencies](07-advanced/a-2-recommended-dependencies.md) | Web、ORM、日志、配置、验证、测试、消息队列、gRPC、工具 | | [a-3-interview-questions](07-advanced/a-3-interview-questions.md) | nil 陷阱、切片截取、闭包变量、goroutine 泄漏、死锁、内存对齐 | --- ## 学习路径建议 ``` 第一阶段(1-2天):第一章 + 1.10 命令行实战 第二阶段(1天):第二章(工程化基础) 第三阶段(2天):第三章(并发核心) 第四阶段(3-5天):第四章(Web 开发核心 + 4.12 综合实战) 第五阶段(1-2天):第五章(测试 + pprof) 第六阶段(1-2天):第六章(Docker + K8s + CI/CD) 附录:随时查阅 ``` ## 配套资源 - **代码仓库**:各章节实战代码位于对应目录下 - **Makefile**:项目根目录提供常用命令封装 - **配置文件**:configs/ 目录包含开发/生产环境配置模板