计算机
类型
可以朗读
语音朗读
132千字
字数
2023-08-01
发行日期
展开全部
主编推荐语
资深开发工程师,通过项目实战教你快速上手Monorepo。
内容简介
Monorepo是近年来较流行的组织代码仓库的方式。越来越多有影响力的JavaScript/TypeScript开源项目开始使用Monorepo架构管理代码,如Vite、React、Vue3、Babel、Next.js、Nuxt.js等。每一个新开发的JavaScript/TypeScript项目都应该考虑采用Monorepo架构来提高开发效率和代码质量。
本书基于pnpm构建了一个完整的报名登记应用来实践这种代码仓库,实现Vite+Vue+Tailwind编写的前端应用、基于Fastify编写的后端应用、基于Deno的函数服务开发和以Prisma为ORM的数据模型设计。本书的应用涉及的TypeScript和JavaScript上下游工具链和框架较为广泛,但是选取的例子较为简单,容易上手,旨在帮助开发者更好地了解各技术栈的特点。
本书适用于前端开发入门者、计划在自己的项目中实践Monorepo项目的中级前端开发工程师,以及想实践Monorepo技术的计算机专业学生阅读。
目录
- 版权信息
- 内容提要
- 前言
- 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
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。