Go实现 Gee 框架 Day2 学习笔记

Go实现 Web 框架 Day2 学习笔记

极客兔兔大佬的《七天用Go从零实现系列》Day2 上下文 学习笔记

文章目录

    • Go实现 Web 框架 Day2 学习笔记
      • Day2内容
      • 前置知识
      • 实际代码
      • 思考题
      • 小结

Day2内容

  • 独立路由
  • 封装Context,作为请求和响应的上下文
  • Day2 框架新增代码约90行

前置知识

  • go的类型转换
  • 字符串 和 byte切片类型转换
  • json 的解析和生成
  • 字符串拼接
  • 变量、常量、函数自定义类型可见性或作用域设定

实际代码

目的:

  • 类似 ServletContext,构建请求的 Context 上下文,将 ResponseWriter、Request 等封装。
  • 简化业务构建逻辑,区分 GET、POST 请求,并封装 string、json、html 等类型的框架处理。
  • 路由处理的逻辑内聚为 router

步骤:

  • 封装 Context
  • 封装 router
  • 修改调用逻辑

学习内容: https://geektutu.com/post/gee-day2.html

思考题

  • 字符串 和 byte 切片类型转换如何实现?
  • 能不能实现无复制的 字符串 转 byte 切片?
  • 有没有 set 类型,实现一个 set ?
  • writer.WriterHeader() 与 writer.Header().Set() 有没有顺序要求?
  • go 标准库中的 context 作什么的,有什么应用场景?
  • go 中的 interface{} 做什么的?

最后答案单独列一篇,可以自己试着解答一下。

小结

本节属于 web 框架 Gee 的 Day1 实践。

在 Day1 的基础上进行重构,进行了一定的抽离和封装。抽象出了 Context 上下文,router 路由两个组件,并对常用的请求类型( text, hml, json )做了简单封装,整体调用更加简单明了。

你可能感兴趣的:(Go,Go实战,golang)