![[中字] Golang 全栈后端开发实战(Postgres+](/storage/uploads/1537_fc171756-dddd-4334-a0c2-9163057c0a55.jpg)
![[中字] Golang 全栈后端开发实战(Postgres+](/storage/uploads/1537_26cea0de-352d-4853-9019-58f83aed622d.jpg)
![[中字] Golang 全栈后端开发实战(Postgres+](/storage/uploads/1537_e0dd88c8-79f7-4e81-b360-51e0351e3e35.jpg)
资源介绍
Kubernetes+gRPC)(中文字幕英文视频教程)
本课程是一套体系化的后端开发实战教程,以 Golang 为核心技术栈,围绕 “数据库设计 - API 开发 - 生产部署 - 高级进阶 - 异步处理” 五大核心模块,从基础原理到实战落地,全面覆盖企业级后端系统开发的关键技术与流程。课程注重 “理论讲解 + 代码实现 + 问题解决” 三位一体,每个知识点均配套视频演示、PDF 课件与中文字幕,帮助开发者快速掌握工业级后端开发能力,独立搭建高可用、可扩展的后端服务。
课程模块详情
模块一:数据库实战(Postgres + SQLC)
本模块聚焦数据库层开发,从设计到测试构建完整数据库操作体系,解决后端开发中 “数据存储” 的核心问题。
数据库设计与 SQL 生成:通过可视化工具 dbdiagram.io 设计数据库 schema,自动生成 SQL 代码,理解表结构、字段约束(唯一键、外键)的设计逻辑,为后续开发奠定规范的数据模型基础。
容器化数据库环境搭建:学习使用 Docker 快速部署 Postgres 数据库,搭配 TablePlus 可视化工具管理数据,同时提供 “root 用户不存在” 等常见问题的解决方案,确保开发环境稳定运行。
Golang 数据库迁移:掌握在 Golang 项目中编写和执行数据库迁移的方法,实现表结构版本化管理,避免多人协作或环境切换时的数据结构不一致问题。
SQLC 代码生成与 ORM 对比:从 SQL 语句自动生成 Golang CRUD 代码,深入对比 dbsql、gorm、sqlx 与 sqlc 四种数据库操作工具的优劣,理解不同场景下的技术选型逻辑。
数据库单元测试:结合随机数据生成技术,为数据库 CRUD 操作编写单元测试,提升代码健壮性,确保数据操作逻辑的正确性。
数据库事务进阶:学习 Golang 中数据库事务的优雅实现方式,理解事务锁机制、死锁产生的原因与解决办法,掌握 “查询顺序控制” 等避免死锁的实战技巧。
事务隔离级别深度解析:剖析不同事务隔离级别(读未提交、读已提交、可重复读、串行化)的特性,结合 “脏读、不可重复读、幻读” 等读现象,明确生产环境中隔离级别的合理选择。
自动化测试流水线:配置 Github Actions 实现 Golang+Postgres 项目的自动化测试,每次代码提交或合并时自动执行测试用例,保障代码质量。
模块二:RESTful API 开发(Gin + JWT + PASETO)
本模块围绕 “HTTP 接口开发” 展开,覆盖 API 设计、配置管理、测试、认证授权等关键环节,构建安全、易用的 RESTful 服务。
Gin 框架实战:基于 Gin 框架快速实现 RESTful HTTP API,掌握路由设计、请求参数解析、响应格式统一等基础能力,搭建高性能的 API 服务骨架。
配置管理最佳实践:使用 Viper 工具实现 “配置文件 + 环境变量” 的双重配置加载,适配开发、测试、生产等不同环境,避免硬编码配置带来的维护问题。
API 测试与覆盖率优化:通过 Mock 数据库实现 HTTP API 的解耦测试,设计针对性测试用例,最终达成 100% 代码覆盖率,验证 API 逻辑的完整性。
业务 API 与参数校验:开发 “转账 API” 等实际业务接口,自定义参数校验规则,确保请求数据的合法性,减少下游业务逻辑的异常处理压力。
PostgreSQL 高级约束:在用户表中添加唯一约束、外键约束,强化数据库层面的数据完整性,避免应用层逻辑疏漏导致的数据不一致。
Golang 数据库错误处理:学习正确捕获和处理 PostgreSQL 数据库返回的错误,区分 “数据不存在”“约束冲突” 等不同错误类型,返回友好的错误提示。
密码安全存储:使用 Bcrypt 算法对用户密码进行哈希处理,避免明文或弱哈希存储带来的安全风险,理解哈希加盐的核心原理。
Gomock 自定义匹配器:扩展 Gomock 的测试能力,编写自定义参数匹配器,实现更灵活、更精准的单元测试,提升测试代码的可读性与可维护性。
认证令牌技术选型:对比 JWT 与 PASETO 两种令牌技术的安全性、易用性,分析 JWT 的潜在风险,理解 PASETO 在令牌验证、防篡改等方面的优势。
令牌生成与验证:在 Golang 中实现 JWT 与 PASETO 令牌的创建、签名、验证逻辑,掌握令牌过期时间设置、载荷信息解析等关键操作。
登录 API 开发:实现用户登录接口,支持返回 PASETO 或 JWT 访问令牌,完成 “账号密码校验 - 令牌生成 - 令牌返回” 的完整登录流程。
Gin 认证与授权中间件:开发全局认证中间件,验证请求中的令牌合法性;设计基于角色的授权规则,实现 “管理员 - 普通用户” 等不同角色的接口访问控制。
模块三:生产环境部署(Docker + Kubernetes + AWS)
本模块聚焦 “项目落地”,从容器化到云服务部署,覆盖生产环境所需的基础设施搭建、自动化流程与安全配置。
Golang 镜像优化:使用多阶段 Dockerfile 构建轻量级 Golang 应用镜像,减少镜像体积、降低部署时间与资源占用,理解 “构建阶段 - 运行阶段” 分离的核心逻辑。
Docker 网络配置:学习创建自定义 Docker 网络,实现两个独立容器(如应用容器、数据库容器)的网络互通,避免端口映射带来的安全风险。
Docker Compose 编排:编写 Docker Compose 配置文件,定义多服务(应用、数据库、缓存等)的启动顺序、依赖关系与资源限制,实现本地开发与测试环境的一键部署。
AWS 免费账号创建: step-by-step 指导创建 AWS 免费套餐账号,熟悉 AWS 控制台的核心功能,为后续云服务使用奠定基础。
Github Actions 镜像推送:配置自动化流水线,实现代码提交后自动构建 Golang 应用镜像,并推送至 AWS ECR(容器镜像仓库),减少手动操作失误。
AWS RDS 数据库部署:在 AWS 上创建生产级 PostgreSQL 数据库(RDS),配置备份策略、访问控制与网络安全组,确保数据库服务的高可用与安全性。
AWS 密钥管理:使用 AWS Secrets Manager 存储生产环境的数据库密码、API 密钥等敏感信息,避免配置文件中硬编码密钥,降低泄露风险。
Kubernetes 架构与 EKS 集群:理解 Kubernetes(K8s)的核心组件(Pod、Service、Deployment、Ingress),通过 AWS EKS 服务创建托管式 K8s 集群,减少集群运维成本。
K8s 集群连接:学习使用 kubectl 命令行工具与 k9s 可视化工具连接 AWS EKS 集群,实现 Pod 查看、日志查看、容器进入等日常运维操作。
K8s 应用部署:编写 K8s Deployment、Service 配置文件,将 Golang 应用部署到 EKS 集群,实现应用的多副本运行、自动重启与负载均衡。
Route53 域名配置:注册自定义域名,通过 AWS Route53 服务管理 DNS 解析,设置 A 记录指向 K8s 集群的外部访问地址,实现域名访问应用。
K8s Ingress 路由:部署 Ingress 控制器,配置 Ingress 规则,实现基于域名或路径的流量路由,将不同请求分发到 K8s 集群中的不同服务。
TLS 证书自动化:集成 cert-manager 与 Let's Encrypt,实现 HTTPS TLS 证书的自动申请、部署与续期,确保应用访问的传输层安全。
K8s 自动化部署:配置 Github Actions 流水线,实现代码合并后自动更新 EKS 集群中的应用,完成 “代码提交 - 镜像构建 - 应用更新” 的全自动化部署。
模块四:后端高级主题(Sessions + gRPC)
本模块探索后端开发的进阶技术,覆盖会话管理、高性能 API、文档生成等场景,提升系统的扩展性与可维护性。
用户会话与刷新令牌:设计基于刷新令牌的会话管理方案,实现 “访问令牌过期 - 刷新令牌获取新访问令牌” 的流程,减少用户频繁登录,提升体验。
DB 文档与 SQL 导出:从 DBML(数据库建模语言)自动生成数据库文档页面与 schema SQL 脚本,实现数据库设计的可视化与版本化,方便团队协作。
gRPC 基础入门:理解 gRPC 的通信原理、Protocol Buffers(Protobuf)数据格式的优势,对比 gRPC 与 RESTful API 的适用场景,明确技术选型依据。
gRPC API 定义与代码生成:使用 Protobuf 定义 gRPC 服务接口与消息结构,通过 protoc 工具自动生成 Golang 服务端与客户端代码,减少手动编码工作量。
gRPC 服务运行与调用:编写 Golang gRPC 服务端代码,实现接口逻辑;使用 Evans 等客户端工具调用 gRPC API,验证服务功能,理解 gRPC 的请求 - 响应流程。
gRPC 用户相关 API:实现 “创建用户”“用户登录” 等 gRPC 接口,集成数据库操作与密码哈希逻辑,完成 gRPC 服务的业务落地。
gRPC Gateway 开发:通过 gRPC Gateway 工具,基于已有的 gRPC 服务自动生成 RESTful API 接口,实现 “一次编码,同时提供 gRPC 与 HTTP 服务”,适配不同客户端需求。
gRPC 元数据提取:学习在 gRPC 服务中读取请求元数据(Metadata),获取客户端传递的令牌、版本号等信息,实现认证、日志记录等附加功能。
Swagger 文档自动化:集成 Swagger 工具,从 Golang 代码中自动生成 API 文档,支持在线查看与接口调试,减少文档维护成本。
Golang 静态文件嵌入:使用 Golang 的 embed 包,将前端静态文件(HTML、CSS、JS)嵌入后端二进制文件,实现 “单文件部署”,简化部署流程。
gRPC 参数校验与响应优化:自定义 gRPC 参数校验逻辑,捕获非法请求并返回结构化错误信息;设计 “人可理解 + 机器可解析” 的响应格式,提升客户端体验。
Golang 内置数据库迁移:将数据库迁移逻辑集成到 Golang 应用代码中,实现应用启动时自动执行迁移脚本,减少部署时的额外操作步骤。
SQLC 可空参数与部分更新:使用 SQLC 的可空参数特性,实现数据库记录的部分更新(如仅更新用户昵称,不修改密码),避免全字段更新带来的冗余。