- 掌握Web底层工作原理
- 掌握Orm库的底层工作原理
- 掌握缓存库的设计原理
以下内容三选一进行完成即可
该Web框架具备以下功能
- 路由支持GET、POST、DELETE、PUT功能
- 实现Context功能
- 嵌入log、cors、recovery等middleware
使用Gout库实现简单的HTTP的请求与响应
该orm框架具备以下功能
- 能进行表的结构映射
- 实现简单的create、update、find、delete等等api接口
- 支持事务
使用go-orm对数据库表进行处理
该cache用于提高mysql的查询速度,缓存库具备一下功能
- 当查询数据在redis中存在时,就在redis中读取,否则在mysql中读取并写入redis
- 当进行增加、删除和修改操作时,redis数据进行更新
- 需要保证mysql与redis的双写一致性
benchmark进行测试,至少保证10k的并发读写量
如果感到困难,可以选择退而求其次,完成对Gin、Gorm、Redis源码的学习,需要你提交一份学习报告
如果你选择提交学习报告,你可以选择的源码就很多了,下面列举了你可以选择的源码: grpc-go、kitex、kratos、redis-go、gin、gorm
你可以按照如下步骤阅读源码,并编写你的报告
- 列出这个框架源码的目录结构,并对每个文件夹(或者重要的文件)进行注释
- 找出这个框架特特性、优点
- 为了实现这些特性、优点,这个框架做了什么
- 为了实现这些特性、优点,这个框架放弃了什么
- 这个框架涉及到了哪些数据结构/算法的内容
- 挑选一个相同/类似的框架,并对二者进行对比,找出其中的区别
- 为这个框架编写一个简易demo(以gin为例,我们实现一个简单的HTTP接口),并在这个基础上,按照代码流程编写一份流程报告(以Gin为例,我们可以从接收HTTP请求开始,一直分析代码到发送响应请求结束,分析这中间的代码跳转、数据封装、语言特性使用等)
同时,多在群里提问,主打的就是一个直言不讳