7 days golang apps from scratch
README 中文版本
7天用Go从零实现系列
7天能写什么呢?类似 gin 的 web 框架?类似 groupcache 的分布式缓存?或者一个简单的 Python 解释器?希望这个仓库能给你答案。
推荐先阅读 Go 语言简明教程,一篇文章了解Go的基本语法、并发编程,依赖管理等内容
7天用Go从零实现Web框架 - Gee
Gee 是一个模仿 gin 实现的 Web 框架,Go Gin简明教程可以快速入门。
- 第一天:前置知识(http.Handler接口) | Code
- 第二天:上下文设计(Context) | Code
- 第三天:Tire树路由(Router) | Code
- 第四天:分组控制(Group) | Code
- 第五天:中间件(Middleware) | Code
- 第六天:HTML模板(Template) | Code
- 第七天:错误恢复(Panic Recover) | Code
7天用Go从零实现分布式缓存 GeeCache
GeeCache 是一个模仿 groupcache 实现的分布式缓存系统
- 第一天:LRU 缓存淘汰策略 | Code
- 第二天:单机并发缓存 | Code
- 第三天:HTTP 服务端 | Code
- 第四天:一致性哈希(Hash) | Code
- 第五天:分布式节点 | Code
- 第六天:防止缓存击穿 | Code
- 第七天:使用 Protobuf 通信 | Code
WebAssembly 使用示例
具体的实践过程记录在 Go WebAssembly 简明教程。
What can I write in 7 days? A gin-like web framework? A distributed cache like groupcache? Or a simple Python interpreter? Hope this repo can give you the answer.
Web Framework - Gee
- Day 1 - http.Handler Interface Basic Code
- Day 2 - Design a Flexiable Context Code
- Day 3 - Router with Tire-Tree Algorithm Code
- Day 4 - Group Control Code
- Day 5 - Middleware Mechanism Code
- Day 6 - Embeded Template Support Code
- Day 7 - Panic Recover & Make it Robust Code
Distributed Cache - Geecache
GeeCache is a groupcache-like distributed cache
- Day 1 - LRU (Least Recently Used) Caching Strategy Code
- Day 2 - Single Machine Concurrent Cache Code
- Day 3 - Launch a HTTP Server Code
- Day 4 - Consistent Hash Algorithm Code
- Day 5 - Communication between Distributed Nodes Code
- Day 6 - Cache Breakdown & Single Flight | Code
- Day 7 - Use Protobuf as RPC Data Exchange Type | Code