这个项目能做什么
7days-golang 是 geektutu 维护的「7天用Go从零实现」系列教学仓库,采用 MIT 许可证。仓库通过在 7 天内逐步实现常见 Go 基础组件的方式,帮助读者理解这类工具的内部原理,每个子项目按天拆分目录,并配有作者网站上的系列讲解文章。
主要包含四个子项目:
1. Gee Web 框架(gee-web):模仿 gin 实现的 Web 框架,七天内容依次为 http.Handler 接口基础、Context 上下文设计、基于 Trie 树的路由、路由分组(Group)控制、中间件机制、HTML 模板嵌入,以及 Panic 恢复与健壮性处理。
2. GeeCache 分布式缓存(gee-cache):模仿 groupcache 实现的分布式缓存系统,内容涵盖 LRU 缓存淘汰策略、单机并发缓存、HTTP 服务端、一致性哈希、分布式节点间通信、防止缓存击穿的 singleflight 实现,以及使用 Protobuf 作为数据交换格式。
3. GeeORM 框架(gee-orm):参考 xorm 与 gorm 设计的 ORM 框架。作者说明由于 gorm v2 尚在开发中,而 xorm 的设计更易理解,因此接口设计主要参考 xorm,部分细节实现参考 gorm。七天内容包括 database/sql 基础、对象与表结构映射、记录新增与查询、链式操作与更新删除、钩子(Hooks)、事务支持,以及数据库迁移(Migrate)。
4. GeeRPC 框架(gee-rpc):基于 Go 标准库 net/rpc 实现的 RPC 框架,代码约 1k 行,在其基础上增加了协议交换、服务注册与发现、负载均衡、超时处理、HTTP 协议调试支持等能力,按天讲解服务端与消息编码、支持并发与异步的客户端、服务注册、超时处理、HTTP 协议支持、负载均衡,以及服务发现与注册中心。
此外,仓库还附带四个 Go WebAssembly 示例(demo-wasm),演示 Hello World、注册函数、操作 DOM 与回调函数的写法,配套文章为《Go WebAssembly 简明教程》。
作者还推荐了配套阅读材料,包括《Go 语言简明教程》《Go 语言笔试面试题》与《Go 语言高性能编程》,建议读者先了解 Go 的基本语法、并发编程与依赖管理后再动手实践。整个仓库适合希望通过阅读和手写源码来深入理解 Web 框架、分布式缓存、ORM 与 RPC 内部机制的 Go 学习者。
评论
0 评分人数达到10人后显示
登录后参与讨论。