# go-study **Repository Path**: Y-LOVE-Z/go-study ## Basic Information - **Project Name**: go-study - **Description**: go语言学习示例,从入门开始深入学习 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-09-03 - **Last Updated**: 2025-11-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Go语言全面学习指南 (Go 1.24+) ## 📚 学习路径 ### 🔰 基础概念 (01-06) - [01-变量与常量](./01-variables/README.md) - 变量声明、类型推断、常量定义 - [02-数据类型](./02-data-types/README.md) - 基本类型、复合类型、类型转换 - [03-运算符](./03-operators/README.md) - 算术、比较、逻辑、位运算符 - [04-条件语句](./04-conditionals/README.md) - if、switch、条件表达式 - [05-循环结构](./05-loops/README.md) - for循环的各种用法 - [06-函数](./06-functions/README.md) - 函数定义、参数、返回值、闭包 ### 🎯 进阶概念 (07-12) - [07-指针](./07-pointers/README.md) - 指针基础、指针运算、指针与函数 - [08-数组与切片](./08-arrays-slices/README.md) - 数组、切片、动态数组操作 - [09-映射(Maps)](./09-maps/README.md) - 哈希表、键值对操作 - [10-结构体](./10-structs/README.md) - 结构体定义、方法、嵌入 - [11-接口](./11-interfaces/README.md) - 接口定义、实现、类型断言 - [12-错误处理](./12-error-handling/README.md) - error接口、自定义错误、panic/recover ### ⚡ 高级特性 (13-23) - [13-并发编程](./13-concurrency/README.md) - goroutine、channel、select、并发模式 - [14-网络编程](./14-networking/README.md) - TCP、UDP、网络协议基础 - [15-HTTP编程](./15-http/README.md) - HTTP客户端、服务端、RESTful API - [16-JSON数据](./16-json-data/README.md) - JSON/XML序列化、数据处理 - [17-数据库操作](./17-database/README.md) - **PostgreSQL + Redis + 向量数据库** - 现代数据库技术栈 - [18-Web框架](./18-web-frameworks/README.md) - 自定义框架、Gin/Echo示例 - [19-gRPC微服务](./19-grpc/README.md) - gRPC、Protocol Buffers、微服务 - [20-高级主题](./20-advanced-topics/README.md) - 反射、性能优化、部署 - [21-设计模式](./21-design-patterns/README.md) - 常用设计模式实现 - [22-实用技巧](./22-practical-tips/README.md) - 最佳实践、开发技巧 - [23-Go泛型](./23-generics/README.md) - **Go 1.18+泛型特性** - 类型安全的通用编程 ### 🚀 实战项目 - [demo-task-manager](./demo-task-manager/README.md) - 综合性任务管理系统,整合基础学习概念 - [demo-web-api](./demo-web-api/README.md) - 完整的RESTful API项目,演示Web开发全栈技能 ## 🚀 快速开始 ### 1. 克隆项目 ```bash git clone cd go-study ``` ### 2. 验证Go环境 ```bash go version # 确保Go 1.24+ go mod tidy # 安装依赖 ``` ### 3. 从基础开始学习 ```bash # 学习变量和常量 cd 01-variables go run main.go go test -v # 学习数据类型 cd ../02-data-types go run main.go go test -v ``` ### 4. 体验现代数据库技术栈 ```bash # 体验PostgreSQL + Redis + 向量数据库 cd 17-database # 设置环境变量(可选) export DATABASE_URL="postgres://postgres:password@localhost:5432/go_study?sslmode=disable" export REDIS_URL="localhost:6379" # 运行基础演示 go run main.go # 运行向量搜索演示 go run main.go vector-demo # 运行向量搜索测试 go run main.go vector-search ``` ### 5. 尝试实战项目 ```bash # 运行任务管理系统demo cd demo-task-manager go run . # 运行完整Web API项目 cd ../demo-web-api go run *.go # 访问 http://localhost:8080 ``` ## 🎯 使用方式 ### 运行示例代码 ```bash # 运行某个模块的示例 cd 01-variables go run main.go # 运行所有测试 go test ./... # 运行特定模块的测试 cd 01-variables go test -v ``` ### 学习建议 1. **按顺序学习**: 从01开始,每个模块都建立在前面的基础上 2. **动手实践**: 每个示例都要亲自运行和修改 3. **完成测试**: 确保理解每个测试用例的含义 4. **阅读注释**: 代码中包含详细的中文注释 5. **实践项目**: 完成基础学习后,进行实战项目练习 ## 📋 学习进度 ### ✅ 已完成模块 #### 🔰 基础概念 - [x] 01-变量与常量 - 完整的变量声明、类型推断、常量使用 - [x] 02-数据类型 - 基本类型、复合类型、类型转换、内存布局 - [x] 03-运算符 - 算术、比较、逻辑、位运算符及实际应用 - [x] 04-条件语句 - if/switch语句、类型switch、最佳实践 - [x] 05-循环结构 - for循环、range、循环控制语句 - [x] 06-函数 - 函数定义、参数、闭包、高阶函数、函数式编程 - [x] 07-指针 - 指针基础、内存管理、安全使用、实际应用 #### 🎯 进阶概念 - [x] 08-数组与切片 - 数组操作、切片原理、动态数组、性能优化 - [x] 09-映射 - Map的使用、哈希表原理、并发安全 - [x] 10-结构体 - 结构体定义、方法、嵌入、组合、面向对象 - [x] 11-接口 - 接口设计、实现、类型断言、多态、设计模式 - [x] 12-错误处理 - error接口、自定义错误、panic/recover、最佳实践 #### ⚡ 高级特性 - [x] 13-并发编程 - goroutine、channel、select、并发模式、性能优化 - [x] 14-网络编程 - TCP、UDP、Socket编程、网络协议 - [x] 15-HTTP编程 - HTTP客户端、服务端、中间件、RESTful API设计 - [x] 16-JSON数据 - JSON/XML序列化、数据处理、性能优化 - [x] 17-数据库操作 - **PostgreSQL + Redis + pgvector向量数据库** - 现代数据库技术栈 - [x] 18-Web框架 - 自定义Web框架、路由、中间件、最佳实践 - [x] 19-gRPC - gRPC、Protocol Buffers、微服务基础 - [x] 20-高级主题 - 反射、性能分析、内存优化、部署策略 - [x] 21-设计模式 - 常用设计模式实现、最佳实践 - [x] 22-实用技巧 - 最佳实践、开发技巧、工具集合 - [x] 23-Go泛型 - **Go 1.18+泛型特性** - 类型安全的通用编程 #### 🚀 实战项目 - [x] demo-task-manager - 综合任务管理系统,整合基础概念 - [x] demo-web-api - 完整的RESTful API项目,包含认证、CRUD、测试 ### 🎉 学习完成 恭喜!所有模块已经完成,包含: - 🔰 **基础概念** (7个模块) - 变量、类型、操作符、流程控制 - 🎯 **进阶概念** (5个模块) - 数据结构、面向对象、错误处理 - ⚡ **高级特性** (11个模块) - 并发、网络、Web开发、数据处理、设计模式、泛型 - 🚀 **实战项目** (2个项目) - 任务管理系统、Web API项目 **总计23个核心模块 + 2个实战项目**,涵盖Go语言从入门到精通的完整学习路径! ## 🔧 环境要求 ### 基础环境 - **Go 1.24+** - 最新版本Go语言 - **VS Code + Go插件** - 推荐开发环境 - **Git** - 版本控制 ### 数据库环境(17-database模块) - **PostgreSQL 12+** - 关系型数据库 ```bash # Docker快速启动 docker run --name postgres -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres:15 ``` - **Redis 6+** - 内存缓存数据库 ```bash # Docker快速启动 docker run --name redis -p 6379:6379 -d redis:7 ``` - **pgvector扩展** - PostgreSQL向量数据库扩展 ```sql -- 在PostgreSQL中启用 CREATE EXTENSION IF NOT EXISTS vector; ``` ### 依赖包 ```bash # 核心依赖(已包含在go.mod中) go get github.com/lib/pq # PostgreSQL驱动 go get github.com/redis/go-redis/v9 # Redis客户端 go get github.com/pgvector/pgvector-go # 向量数据库支持 go get github.com/stretchr/testify # 测试框架 ``` ## 🌟 项目亮点 ### 📊 17-数据库操作模块 - 现代数据库技术栈 - **PostgreSQL** - 企业级关系型数据库 - **Redis** - 高性能缓存系统 - **pgvector** - 向量数据库,支持AI/ML应用 - **完整功能**: - 🔍 向量相似性搜索 - 🎯 商品推荐系统 - 📝 文档检索系统 - 🚀 高性能缓存 - 🔄 事务管理 - 📈 性能监控 ### 🚀 技术特色 - **现代化技术栈** - PostgreSQL + Redis + 向量数据库 - **AI就绪** - 支持向量搜索和推荐系统 - **生产级代码** - 包含错误处理、事务、缓存 - **完整测试** - 单元测试、基准测试、集成测试 - **详细文档** - 中文注释、使用示例、最佳实践 ## 📞 帮助与反馈 如果在学习过程中有任何问题,可以: 1. 查看每个模块的README文档 2. 运行测试用例了解预期行为 3. 修改代码进行实验 4. 特别推荐体验17-database模块的现代数据库功能 祝你学习愉快!🎉