# GeeWeb **Repository Path**: alan223/geeweb ## Basic Information - **Project Name**: GeeWeb - **Description**: geektutu-geeweb - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-04 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Gee: 手搓 Go Web 框架学习总结 本项目是跟随 [geektutu/7days-golang](https://github.com/geektutu/7days-golang) 实现的一个简易 Go Web 框架 gee,通过逐步实现 HTTP 基础、路由、中间件、模板渲染、异常恢复等功能,深入理解了 Web 框架的核心原理。 ## 学习收获与知识点 ### 1. HTTP 基础 - 理解了 Go 标准库 `net/http` 的基本用法。 - 学习了 Handler、ServeMux、Request、ResponseWriter 的工作机制。 ### 2. 路由实现 - 实现了基本的路由映射(GET/POST/动态路由)。 - 通过 Trie 树优化路由匹配效率,支持参数和通配符路由。 ### 3. 上下文 Context - 设计了 Context 对象,封装请求和响应相关操作。 - 支持链式调用、参数获取、JSON/HTML 响应等。 ### 4. 路由分组 - 实现了路由分组(Group),支持统一前缀和中间件。 - 便于模块化管理路由和中间件。 ### 5. 中间件 Middleware - 支持全局和分组中间件。 - 实现了 Logger、错误恢复(Recovery)等常用中间件。 - 理解了中间件链式调用和 next() 原理。 ### 6. 模板渲染 - 集成 Go 的 `html/template`,支持模板渲染。 - 支持自定义模板函数、静态文件服务。 ### 7. 错误恢复 - 实现了 panic 捕获和恢复,保证服务稳定性。 - 错误日志记录,便于排查问题。 ## 目录结构说明 - `day1-http-base` ~ `day7-recovery`:每个目录对应一个功能点的实现和演进。 - `gee/`:核心框架代码(Context、Router、Middleware、Template 等)。 - `static/`、`templates/`:静态资源和模板文件。 ## 总结 通过手写 Web 框架,深入理解了 HTTP 协议、路由、中间件、模板、异常处理等 Web 框架的底层原理。对 Go 语言的语法、标准库、工程组织有了更深刻的认识。 --- 感谢 geektutu 的教程,推荐大家动手实践,收获颇丰!