从零到一实现一个Web框架
配套视频地址
环境配置
IDE:我这里使用的Goland,并且版本是2022.2.5
Go版本:我这边使用的1.18
建议大家和我使用同一个版本的IDE和Go。防止出现一些未知的错误而不知道如何解决。
当然,如果版本比我的高的话是没什么问题的。
我印象中
-
Goland的2021.2之前的版本是不支持Go的泛型的
-
Go的1.18及其以上的版本是支持泛型的
-
curl工具:下载地址。大家自行百度下载即可
curl工具是一个通过命令行的形式发送请求。由于咱们是开发Web框架,所以发送请求是肯定不能少的,但是安装一个Postman太麻烦了,就直接使用curl。
要求
大家应该清楚,这套视频是关于使用Golang从零到一实现一个web框架。所以需要
- 有一定的Golang基础
- HTTP的基础
- 整个web请求响应的全过程
- 前缀树数据结构
- ....
这套视频和兔兔的其实有很大的区别的。大家如果看完了兔兔的七天系列文章,再看我的这套视频,肯定会对web框架有更深的理解的。
项目介绍
整体的内容如上图,当然有一些内容不会讲,比如文件的上传和文件的下载。这两部分内容其实都是比较简单的。
有些内容和兔兔的有点类似,比如路由组
有些内容和Gin框架的有点类似。[插一嘴,兔兔的挺多内容和Gin很像的]
收获
- 整个请求和响应的全过程
- 如何抽象接口
- AOP方案的实现方式:对比Gin的洋葱模式和基于责任链的设计模式
- ...
当然,能收获的东西肯定不止上面这些啦😀
学习
整套视频我都不会记笔记,对。不会记笔记。都是以注释的形式写下当时的想法。
为什么呢?因为我发现记笔记对我来说作用不大,但这绝不是说不要记笔记。
像这类的内容,记了笔记的效果其实不是很好,一篇文档,一个笔记不够将当时我想要表达的内容,或者当时想到的东西,全部表达出来。通常是每个点之间都会有很强的相关性。如果记笔记的话需要写的内容非常多
也正是这点,我才想要以视频的方式记录下来。
视频中的我也会从零到一的手敲所有项目,但是这个项目就不会上传到远程仓库中了,因为我之前已经在Github上有过一个仓库了。大家看那个也是可以的。
最后聊聊
相信大家都应该听过“不要重复造轮子”这句话,其实这句话的正确与否完全取决于当时处于什么场景。在公司上班,当然是效率优先,在这种情况下,有现成就不要自己实现。
但是在个人学习期间,造轮子是非常有必要的,而且对于学习新东西效率非常高的一种方式。
资源
转载自:https://juejin.cn/post/7231116886050029626