Gee 是一个模仿 gin 实现的 Web 框架。
- 第一天:前置知识(http.Handler接口) | Code
- 第二天:上下文设计(Context) | Code
- 第三天:Trie树路由(Router) | Code
- 第四天:分组控制(Group) | Code
- 第五天:中间件(Middleware) | Code
- 第六天:HTML模板(Template) | Code
- 第七天:错误恢复(Panic Recover) | Code
GeeORM 是一个模仿 gorm 和 xorm 的 ORM 框架
geeorm 接口设计上主要参考了 xorm,一些细节实现上参考了 gorm。
gorm 目前支持的特性有:
表的创建、删除、迁移。
记录的增删查改,查询条件的链式操作。
单一主键的设置(primary key)。
钩子(在创建/更新/删除/查找之前或之后)
事务(transaction)。
- 第一天:database/sql 基础 | Code
- 第二天:对象表结构映射 | Code
- 第三天:记录新增和查询 | Code
- 第四天:链式操作与更新删除 | Code
- 第五天:实现钩子(Hooks) | Code
- 第六天:支持事务(Transaction) | Code
- 第七天:数据库迁移(Migrate) | Code
GeeCache 是一个模仿 groupcache 实现的分布式缓存系统
支持特性有:
单机缓存和基于 HTTP 的分布式缓存
最近最少访问(Least Recently Used, LRU) 缓存策略
使用 Go 锁机制防止缓存击穿
使用一致性哈希选择节点,实现负载均衡
使用 protobuf 优化节点间二进制通信
- 第一天:LRU 缓存淘汰策略 | Code
- 第二天:单机并发缓存 | Code
- 第三天:HTTP 服务端 | Code
- 第四天:一致性哈希(Hash) | Code
- 第五天:分布式节点 | Code
- 第六天:防止缓存击穿 | Code
- 第七天:使用 Protobuf 通信 | Code
GeeRPC 是一个基于 net/rpc 开发的 RPC 框架 GeeRPC 是基于 Go 语言标准库 net/rpc
实现的,添加了协议交换、服务注册与发现、负载均衡等功能。
GeeRPC 选择从零实现 Go 语言官方的标准库 net/rpc,并在此基础上,新增了协议交换(protocol exchange)、注册中心(registry)、服务发现(service discovery)、负载均衡(load balance)、超时处理(timeout processing)等特性。分七天完成,最终代码约 1000 行