手把手带你写一个Web框架

手把手带你写一个Web框架 / 从0到1,实现自己的工业级Web框架

叶剑峰 腾讯高级工程师,前滴滴技术专家
  • 课程目录
  • 课程介绍
  • 在线阅读:开篇词|为什么我们要从零开发框架?

    Web 开发框架太多怎么快速上手?

  • 01|net/http:使用标准库搭建Server并不是那么简单

    如何快速掌握一个代码库?

  • 02|Context:请求控制器,让每个请求都在掌控之中

    怎么实现框架的 Context ?

  • 03|路由:如何让请求更快寻找到目标函数?

    规则条数不是评价路由好坏的标准,设计感才是。

  • 04|中间件:如何提高框架的可拓展性?

    在架构层面,中间件机制就相当于在每个请求的横切面统一注入了一个逻辑。

  • 05|封装:如何让你的框架更好用?

    框架中每个函数的参数、返回值、命名,都代表着我们作为作者在某个事情上的思考。

  • 06|重启:如何进行优雅关闭?

    从shutdown函数的实现原理看Golang源码优雅之处。

  • 07|目标:站在巨人肩膀,你的理想框架到底长什么样?

    评价一个框架的五项标准

  • 08|自研or借力(上):集成Gin替换已有核心

    细节和生态是Gin如此成功核心原因。

  • 09|自研or借力(下):集成Gin替换已有核心

    复制源码替换Gin?

  • 加餐|国庆特别放送:什么是业务架构,什么是基础架构?

    架构师做什么?怎么做架构师?

  • 加餐|阶段答疑:这些代码里的小知识点你都知道吗?

    读源码,思维导图怎么画?

  • 10|面向接口编程(上):一切皆服务,服务基于协议

    什么是面向过程/对象/接口编程?

  • 11|面向接口编程(下):一切皆服务,服务基于协议

    实现框架主体的服务容器逻辑。

  • 12|结构:如何系统设计框架的整体目录?

    目录结构如何贯彻面向接口的思想?

  • 13|交互:可以执行命令行的框架才是好框架

    把框架改造成命令行工具,加速开发效率。

  • 14|定时任务:如何让框架支持分布式定时脚本?

    如果要开发一个定时命令,能不能做到在业务中增加一行代码就行了?

  • 15|配置和环境(上):配置服务中的设计思路

    在容器化流行的架构设计中,框架需要支持使用环境变量来区别不同的环境和配置。

  • 16|配置和环境(下):配置服务中的设计思路

    如何为框架增加配置服务?

  • 17|日志:如何设计多输出的日志服务?

    一切皆服务,类似积木拼接?

  • 18|一体化:前端和后端一定要项目分开吗?

    你的框架支持前后端一体化吗?

  • 19|提效(上):实现调试模式加速开发效率

    如何用Golang的反向代理实现调试模式?

  • 20|提效(下):实现调试模式加速开发效率

    前端、后端、前后端同调,调试模式的具体实现细节。

  • 21|自动化(上):DRY,如何自动化一切重复性劳动?

    自动化命令行工具的套路是?

  • 22|自动化(下):DRY,如何自动化一切重复性劳动?

    自动化初始化脚手架的命令设计

  • 23|管理接口:如何集成swagger自动生成文件?

    如何把swagger融合进入hade框架?

  • 24|管理进程:如何设计完善的运行命令?

    app 一级命令和四个二级命令启动/停止/重启/查询 app 服务的实现

  • 25|GORM(上):数据库的使用必不可少

    Gorm 源码解读

  • 26|GORM(下):数据库的使用必不可少

    如何把Gorm完美集成到hade框架,更好地支持业务对数据库频繁的增删改查操作?

  • 27|缓存服务:如何基于Redis实现封装?

    一个服务的接口设计,就是一个“我们想要什么服务”的思考过程。

  • 28|SSH:如何生成发布系统让框架发布自动化?

    如何实现将代码自动化部署到Web服务器的机制?

  • 29|周边:框架发布和维护也是重要的一环

    为框架的升级和维护设计了一套完整的方案

  • 大咖助阵|大明:抽象,抽象,还是抽象

    谁是我们的朋友,谁是我们的敌人,是革命的首要问题

  • 大咖助阵|飞雪无情:十年面试经验忠告,不要被框架所束缚

    框架是减少重复代码、提升开发效率的工具,我们可以通过它打开学习框架的大门,但是永远不要被它所束缚。

  • 30|设计先于实战:需求设计和框架搭建

    实战部分,我们真正使用hade框架来开发一个类知乎的问答网站。

  • 31|通用模块(上):用户模块开发

    “协议优于实现”,一个业务,最重要的是定义好、说明清楚协议,然后才是实现。

  • 32|通用模块(下):用户模块开发

    服务模块的协议设计不一定能一次性抽象好,从需求出发,遇到新的需求,不断迭代你的设计就可以。

  • 33|业务开发(上):问答业务开发

    开发问答业务服务

  • 34|业务开发(下):问答业务开发

    恭喜你完成了一个自己的Web框架的搭建和使用

  • 结束语|在语言的上升期投入最大热情,是最正确的投资

    感谢能一起经历这段Golang的Web之旅

  • 期末测试|来赴一场满分之约!

    特别给你准备了一套结课测试题,快来挑战一下吧!

41讲

你将获得

  • 洞悉 Web 框架底层设计原理
  • 攻克框架开发 6 大核心概念
  • 4 站通关 Go Web 框架项目开发
  • 深度剖析 Gin 框架,提升业务效能

讲师介绍


课程介绍

因此,就有很多实际的问题摆在了我们面前:

  • 市面上众多框架如何迅速上手?如何选择?
  • 业务快速迭代时,框架如何迅速拓展?
  • 想要自研一款称手的 Web 框架,如何设计?

全方位提升开发效能成为突破瓶颈的最佳解决方案。叶剑峰根据自己的十余年一线 Web 后端研发经验,梳理了一套系统的 Web 框架搭建方法论。他将使用 Go 语言,从标准库开始,逐步演进,手把手带你研发一个工业级的 Go Web 框架,以基本概念与核心理论为指导,实战演练总结底层框架的设计技巧

课程模块设计

整个专栏分为实战四关,你会从零开始,收获一个自己的工业级 Go Web 框架。

实战第一关:分析 Web 框架的本质,从最底层的 Go 的 HTTP 库讲起,如何基于 HTTP 库搭建 server、如何搭建路由、如何增加中间件等等,从而搭建出一个 Web 框架最核心的设计部分。

实战第二关:框架核心搭建好后,基于具体业务场景重新思考,要设计的框架目标到底是什么? 框架的设计感和要解决的问题在哪里? 框架的倾向性是什么? 如果要搭建出一个“一切皆服务”的框架,应该如何设计。

思考清楚后,我们会用 Gin 框架集成实战第一关自研的 Web 框架的核心,力求站在巨人的肩膀上看世界,然后一步步实现框架核心的功能服务。

实战第三关:为这个框架增加不同的周边功能,在添加功能时,会首先讨论目前社区中的标准做法,以及有没有更好的设计,最终把这些标准做法融合到我们的框架中。

实战第四关:现在框架已经基本搭建完成了,我们会用这个框架应用开发一个问答后台,使用 vue-element-admin 来做前端封面,再结合框架开发具体的统计展示和计算业务。


课程目录


适合人群

有一些Go语言开发经验,以及有Web开发经验或Web框架使用经验的开发者


特别放送

免费领取福利


限时活动推荐


订阅须知

随机推荐

狮王小狮王儿童氟防蛀牙膏 20g用户评价如何?独家揭秘评测分享?

狮王小狮王儿童氟防蛀牙膏 20g物有所值吗?3分钟了解评测报告!

狮王小狮王儿童氟防蛀牙膏 20g分享一下使用心得?真实评测分享点...

狮王小狮王儿童氟防蛀牙膏 20g好不好,值得购买吗?小白买前必看...

雀巢超启能恩奶粉3段760g*4罐好不好,入手推荐?良心评测点评!

滋源 无患子控油洗头水 200ml使用感受如何?真相揭秘实际情况!