likes
comments
collection
share

从零到一实现一个Web框架

作者站长头像
站长
· 阅读数 19

配套视频地址

B站

西瓜

环境配置

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框架有更深的理解的。

项目介绍

从零到一实现一个Web框架 整体的内容如上图,当然有一些内容不会讲,比如文件的上传和文件的下载。这两部分内容其实都是比较简单的。

有些内容和兔兔的有点类似,比如路由组

有些内容和Gin框架的有点类似。[插一嘴,兔兔的挺多内容和Gin很像的]

收获

  1. 整个请求和响应的全过程
  2. 如何抽象接口
  3. AOP方案的实现方式:对比Gin的洋葱模式和基于责任链的设计模式
  4. ...

当然,能收获的东西肯定不止上面这些啦😀

学习

整套视频我都不会记笔记,对。不会记笔记。都是以注释的形式写下当时的想法。

为什么呢?因为我发现记笔记对我来说作用不大,但这绝不是说不要记笔记。

像这类的内容,记了笔记的效果其实不是很好,一篇文档,一个笔记不够将当时我想要表达的内容,或者当时想到的东西,全部表达出来。通常是每个点之间都会有很强的相关性。如果记笔记的话需要写的内容非常多

也正是这点,我才想要以视频的方式记录下来。

视频中的我也会从零到一的手敲所有项目,但是这个项目就不会上传到远程仓库中了,因为我之前已经在Github上有过一个仓库了。大家看那个也是可以的。

最后聊聊

相信大家都应该听过“不要重复造轮子”这句话,其实这句话的正确与否完全取决于当时处于什么场景。在公司上班,当然是效率优先,在这种情况下,有现成就不要自己实现。

但是在个人学习期间,造轮子是非常有必要的,而且对于学习新东西效率非常高的一种方式。

资源

项目仓库地址

即可兔兔地址

Gin官方仓库