学习服务端 Web 框架最好的方式,就是从头写一个 Web 框架。与其按部就班的学习,开发框架本身更高效!
如果你是一名前端开发,学习 Web 框架技术可以帮助你理解 Web 应用的整体架构,跨入全栈工程师的赛道,获得更多机会。当然,如果你是后端开发,Web 框架开发应该是你的必学内容了。
开发 Web 框架就像造轮子,关键是如何让轮子既有用 又有趣。
掘金小册联合作者「曾振中」创作了《TypeScript 框架开发实战》这本小册,基于 TypeScript,再现了一个开源 Web 框架从 0 到 1 的开发过程,完成 30+ TypeScript 装饰器和框架核心、路由、数据三大模块,助你快速掌握服务端开发精髓!
曾振中,前虎牙直播研发效能组技术经理,现任职某海外直播 App 技术负责人,关注技术管理、全栈开发以及研发效能等领域。开发并长期维护 SpeedPHP、k、TypeSpeed 等开源 Web 框架及社群。
Web 框架包括哪些部分?
假设,我们从浏览器开始访问某个页面地址,那这个访问请求发送到 Web 框架之后,会先到达 API 路由,再经由路由功能指向不同的页面代码。
当某个页面代码被执行时,通常会先读取或者写入数据库,修改和存储业务状态数据,完成特定业务需求,然后返回给浏览器具体的数据。
在此基础上,还需要一套针对对象进行管理的核心机制来协调这些对象的生产和使用,类似前面提到的 Database 对于数据库连接对象的管理。
因此,Web 框架的主要组成部分包括核心对象管理、路由功能和数据读写。
-
核心对象管理是 Web 框架运行和扩展的基础逻辑。它提供了一整套方法,规定了如何创建和使用对象,无论对象来自于框架内部或是框架使用者编写的对象。
-
路由功能将浏览器的访问地址与页面代码关联起来。作为程序的功能入口,大部分 Web 程序的功能都从路由开始执行(也有少量情况是通过定时任务或其他方式启动)。
-
数据读写是 Web 框架提供的最常见功能,几乎所有 Web 服务的业务逻辑都与数据的读写有密切关系。因此,数据读写也是 Web 框架的主要组成部分之一。
小册包括哪些内容?
基于此,小册也分为对应的三个主要模块。
框架核心:
- 本模块以日志扩展为例,从零开始讲解 Web 框架的核心对象管理设计。沿着"创建"和"使用"对象的主线,深入介绍了依赖注入、对象工厂、入口文件等相关知识,并展示了如何通过核心机制来扩展框架功能的方法;
- 装饰器是 TypeScript 最具创造性的特性之一,它在框架开发中得到广泛应用。本模块详细演示了装饰器的作用、设计方法、基础能力和执行方法等方面的知识。
Web 路由:
- 本模块实现将 ExpressJS 内置为框架的 Web 服务基础,用前面设计的核心对象管理的方法,构建起类似于 NestJS 的装饰器路由系统;
- 实现在 Web 框架中集成 ExpressJS 各种常用的中间件。本模块还探讨了其他与 ExpressJS 相关的使用技巧,读者可以获得更全面的服务端开发知识。
数据库开发:
-
本模块开发了两种不同的数据库操作实现方式:装饰器风格和数据模型风格。两种方法互为补充,帮助读者全面掌握 Web 框架的数据库操作实现;
-
介绍了数据操作相关的查询分页、结果缓存、自定义查询语法等相关知识。深入到数据操作底层,研究在大型服务端项目中常见的数据库读写分离的实现。
除了以上三个核心模块,课程还设置了常用服务以及测试发布两个模块。
常用服务: 讲述服务端开发中常见服务的开发支持,如 Redis、RabbitMQ、Swagger、命令行脚手架、Socket.IO等,对这些服务与框架的实际应用结合做了详细的介绍。提升读者服务端开发知识的广度。
测试与发布: 本课程围绕着 Web 框架项目的设计、开发、测试和发布进行一系列的讲述。在本模块会重点介绍项目发布 NPM 的实践过程,以及对框架的单元测试和发布测试覆盖率等,让读者对开源项目有更全面的了解。
总的来说,课程不仅介绍了组成框架的 31 个 TypeScript 装饰器的开发过程,展示装饰器在服务端开发中的妙用。
还讲述了各种服务端编程概念,以及如何用它们解决框架开发中的实际问题。
此外,本课程是一个真实开源 Web 框架的开发过程,制作开源项目的相关知识点贯穿在课程当中,供有兴趣的同学参考。
适宜人群
- 精通前端框架并且已熟练使用 TypeScript,想快速入门服务端开发的前端工程师。
- 掌握服务端开发技能,希望深入学习 Web 框架底层的后端工程师。
- 对框架程序设计、开源项目感兴趣的开发者。
你将获得
- 从 0 呈现 Web 框架三大模块的构建过程;
- 31 个装饰器开发,彻底掌握 TS 核心特性;
- 先解决问题再抽象概念,扫清服务端开发认知障碍;
- 深度体验开源项目开发历程,提升职业竞争力。
8月16日-8月30日
期间购买,立享6折!
赶紧点击下方图片
或者扫描海报二维码
,一起加入学习吧!