作品简介

Monorepo是近年来较流行的组织代码仓库的方式。越来越多有影响力的JavaScript/TypeScript开源项目开始使用Monorepo架构管理代码,如Vite、React、Vue 3、Babel、Next.js、Nuxt.js等。每一个新开发的Java Script/TypeScript项目都应该考虑采用Monorepo架构来提高开发效率和代码质量。《全栈Monorepo开发实战(Vue 3 Fastify Deno pnpm)》基于pnpm构建了一个完整的报名登记应用来实践这种代码仓库,实现Vite Vue Tailwind编写的前端应用、基于Fastify编写的后端应用、基于Deno的函数服务开发和以Prisma为ORM的数据模型设计。本书的应用涉及的TypeScript和JavaScript上下游工具链和框架较为广泛,但是选取的例子较为简单,容易上手,旨在帮助开发者更好地了解各技术栈的特点。

《全栈Monorepo开发实战(Vue 3 Fastify Deno pnpm)》适用于前端开发入门者、计划在自己的项目中实践Monorepo项目的中级前端开发工程师,以及想实践Monorepo技术的计算机专业学生阅读。

孙浩(知乎名Hugo),毕业于北京邮电大学。曾在浪潮任数据挖掘工程师、PingCAP华南区首席解决方案架构师,主导建设了微众银行、华为、平安、顺丰、丰巢等公司的分布式数据库。自创业以来,专注于TypeScript、C#、Kotlin等编程语言,有非常丰富的从0到1的Monorepo项目实战经验。

于丹,曾在运营商从事多年云计算基础设施运维、信息安全、网络规划等工作,拥有Oracle、华为等专业认证。

作品目录

  • 前言 PREFACE
  • CHAPTER 1 第1章 Monorepo架构
  • 1.1 代码仓库发展历程
  • 1.1.1 常用的代码组织架构
  • 1.1.2 Single-repo与Monolith
  • 1.1.3 Monorepo≠Monolith
  • 1.1.4 Monorepo的优点
  • 1.1.5 Monorepo的缺点
  • 1.1.6 Monorepo在现实中的应用
  • 1.2 全栈Monorepo的关键设计原则
  • 1.3 全栈开发语言JavaScript和TypeScript
  • 1.3.1 JavaScript的发展历程
  • 1.3.2 TypeScript:从21%到69%
  • 1.3.3 从框架到框架无关
  • CHAPTER 2 第2章 基于pnpm和TypeScript构建 Monorepo项目
  • 2.1 pnpm简介
  • 2.1.1 高性能的npm
  • 2.1.2 npm、pnpm包管理算法区别
  • 2.1.3 pnpm的核心概念
  • 2.1.4 package.json的配置
  • 2.2 初始化Monorepo的工作空间
  • 2.3 以TypeScript为核心的Monorepo设计
  • 2.3.1 TypeScript简介
  • 2.3.2 安装TypeScript
  • 2.4 安装ESLint和Prettier
  • 2.4.1 使用ESLint检查代码质量
  • 2.4.2 使用Prettier自动格式化代码
  • 2.5 创建全局类型收束项目
  • CHAPTER 3 第3章 使用Deno构建简单的注册中心
  • 3.1 Deno简介
  • 3.1.1 Deno的特点
  • 3.1.2 Deno包管理
  • 3.2 在Monorepo中引入Deno
  • 3.2.1 安装Deno
  • 3.2.2 Monorepo项目配置Deno
  • 3.3 使用Deno搭建注册中心
  • 3.3.1 健康检查端点
  • 3.3.2 使用localStorage存储状态
  • 3.3.3 注册中心端点
  • 3.3.4 管理界面
  • 3.3.5 在线提供注册函数
  • 3.3.6 测试样例程序
  • 3.3.7 函数代理
  • CHAPTER 4 第4章 函数服务的实现
  • 4.1 本地文件服务器
  • 4.1.1 使用Deno标准库打印日志
  • 4.1.2 设计和实现文件服务器的服务层
  • 4.1.3 编写文件服务器的Controller层
  • 4.2 基于HTTP的计时器
  • 4.3 实现邮箱服务
  • 4.3.1 邮箱配置
  • 4.3.2 发送邮件
  • CHAPTER 5 第5章 使用Prisma构建数据模型
  • 5.1 Docker简介
  • 5.2 使用Docker部署MySQL
  • 5.2.1 安装Docker
  • 5.2.2 MySQL环境搭建
  • 5.3 使用Prisma作ORM
  • 5.3.1 Prisma:新一代ORM
  • 5.3.2 Prisma中的事务
  • 5.3.3 在Monorepo中引入Prisma
  • 5.3.4 配置Prisma schema文件
  • 5.3.5 使用Prisma进行数据建模
  • CHAPTER 6 第6章 以Fastify为核心的服务器设计
  • 6.1 Node.js最快的Web框架Fastify
  • 6.1.1 安装Fastify
  • 6.1.2 Fastify的扩展性
  • 6.1.3 Fastify的日志系统
  • 6.2 JSON Schema校验
  • 6.3 单元测试
  • CHAPTER 7 第7章 实现用户管理服务
  • 7.1 实现JWT身份验证插件
  • 7.1.1 JWT身份验证简介
  • 7.1.2 使用环境变量
  • 7.1.3 自定义插件
  • 7.2 集成测试
  • 7.3 集成Prisma与Fastify
  • 7.4 实现用户相关接口
  • 7.4.1 实现发送验证码接口
  • 7.4.2 实现用户注册接口
  • 7.4.3 实现用户登录接口
  • 7.4.4 实现获取用户信息接口
  • CHAPTER 8 第8章 实现活动管理服务
  • 8.1 业务概览
  • 8.2 实现活动管理服务的功能
  • 8.2.1 实现活动发布的流程
  • 8.2.2 实现活动上线接口
  • 8.2.3 实现活动结束接口
  • 8.2.4 实现活动取消接口
  • 8.3 实现用户与活动相关接口
  • 8.3.1 实现用户参与活动接口
  • 8.3.2 实现获取活动信息接口
  • CHAPTER 9 第9章 实现报名登记应用的前端
  • 9.1 初始化报名登记应用前端项目
  • 9.1.1 Vue简介
  • 9.1.2 Vite:下一代前端开发与构建工具
  • 9.1.3 使用Vite初始化Vue环境
  • 9.2 配置Tailwind环境
  • 9.3 配置Vue Router及规划页面
  • 9.4 报名登记前端应用状态
  • 9.4.1 Pinia:Vue新一代状态管理工具
  • 9.4.2 用Pinia实现网页应用状态层
  • CHAPTER 10 第10章 报名登记应用页面设计
  • 10.1 实现首页
  • 10.1.1 使用VeeValidate实现表单验证
  • 10.1.2 实现登录卡片与注册卡片
  • 10.2 实现仪表盘页面
  • 10.2.1 实现仪表盘导航栏
  • 10.2.2 实现仪表盘主页
  • 10.2.3 实现活动详情页
  • 10.2.4 实现活动发布页面
  • 10.3 构建工具Rollup、esbuild、Vite、tsup、tsc在Monorepo项目中的定位
  • CHAPTER 11 第11章 项目的部署、监控与高可用
  • 11.1 使用DockerFile实现后端服务容器化
  • 11.2 Docker Compose工具
  • 11.3 服务监控原理与部署
  • 11.3.1 Prometheus简介
  • 11.3.2 Grafana简介
  • 11.3.3 安装Prometheus与Grafana
  • 11.4 高可用的部署方式
  • 11.4.1 Nginx简介
  • 11.4.2 正向代理和反向代理
  • 11.4.3 部署Nginx
  • CHAPTER 12 第12章 开源项目的Monorepo 实践
  • 12.1 开源渐进式JavaScript框架Vue.js
  • 12.2 新一代前端构建工具Vite
  • 12.3 island架构框架Astro
  • 12.4 下一代TypeScript ORM框架Prisma
展开全部