从零实现一个web框架(基于go语言)-序言

由于go的net/http包十分方便的帮我们实现了一个web服务器所需要的大部分功能,框架的设计模式和思想与语言无关,作为学习采用go来搭建自己的web框架。

为什么需要框架?即使不使用框架,我们依然可以实现相应的web服务和功能,但是很多地方都需要进行频繁的手工处理和庞大的代码量,这就是使用框架的价值,它可以帮助我们把很多需要频繁重复的代码封装简化。有很多框架,如spring的强大,django的重量级;也有小而轻的框架,如flask,gin,还有近日很火的fastapi,适合于构建敏捷型服务。近日起将从零实现一个自己的web框架,里面包含了很多gin源码的影子,django的设计模式。

框架帮助我们实现了很多web服务中需要的功能,例如

  • 路由(Routing):将请求映射到函数,根据访问路径动态匹配服务接口,如:www.xxx.com/login/name
  • 模板(Templates):使用内置模板引擎提供模板渲染机制。
  • 工具集(Utilites):提供对 cookies,headers 等处理机制。
  • 插件(Plugin):提供了插件机制。可以选择安装到全局,也可以只针对某几个路由生效。
  • 模型(Models):类似于django中的orm,提供数据库连接处理,数据模板映射
  • 表单(Form):提供数据验证,前后端交互中的数据处理机制
  • ...

框架代码量并不多,该系列只作为学习框架的设计模式和思想而记录,感谢qrara大佬给予我gin源码的参考建议。

感谢极客兔兔的系列教程。。。

 

posted @ 2021-11-09 15:58  fanyiaaa  阅读(208)  评论(0编辑  收藏  举报