新書推薦:
《
爱你,是我做过最好的事
》
售價:NT$
254.0
《
史铁生:听风八百遍,才知是人间(2)
》
售價:NT$
254.0
《
量子网络的构建与应用
》
售價:NT$
500.0
《
拍电影的热知识:126部影片里的创作技巧(全彩插图版)
》
售價:NT$
500.0
《
大唐名城:长安风华冠天下
》
售價:NT$
398.0
《
情绪传染(当代西方社会心理学名著译丛)
》
售價:NT$
403.0
《
中国年画 1950-1990 THE NEW CHINA: NEW YEAR PICTURE 英文版
》
售價:NT$
1100.0
《
革命与反革命:社会文化视野下的民国政治(近世中国丛书)
》
售價:NT$
435.0
|
編輯推薦: |
《全栈Monorepo开发实战(Vue 3 Fastify Deno pnpm)》融合了资深开发工程师多年一线工作经验,通过项目实战教你快速上手Monorepo
手把手步骤演练,循序渐进、由浅入深,详尽的代码、图文讲解,配套资源丰富。书中操作部分配有二维码视频,使读者身临其境,迅速、深入地掌握各种经验和技巧。
|
內容簡介: |
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、华为等专业认证。
|
目錄:
|
第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从框架到框架无关
第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创建全局类型收束项目
第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函数代理
第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发送邮件
第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进行数据建模
第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单元测试
第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实现获取用户信息接口
第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实现获取活动信息接口
第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实现网页应用状态层
第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项目中的定位
第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
第12章 开源项目的Monorepo实践
12.1开源渐进式JavaScript框架Vue.js
12.2新一代前端构建工具Vite
12.3 island架构框架Astro
12.4下一代TypeScript ORM框架
|
內容試閱:
|
本书适合对使用TypeScript实现Monorepo项目感兴趣的程序员阅读,全书涉及的TypeScript和JavaScript上下游工具链和框架较为广泛,但是选取的例子都相对简单,目的是写给前端开发入门者,以及计划在自己项目中实践Monorepo项目的中级前端开发工程师。
作为一本Monorepo入门的实践指南,全书涉及三种运行时:Node.js、Deno和浏览器,较为系统地介绍了Deno这个比较新的JavaScript/TypeScript运行时。
本书使用Monorepo整合了Node.js、Deno和浏览器三个运行时的代码,实现了报名登记应用。在一个相对完整的前后端全栈项目中,讲解Monorepo项目的实现路径。
全书共12章,以编写报名登记应用为主线,从零搭建一个基于pnpm的项目,以TypeScript 4.9版本为主,讲解必要的TypeScript知识。从Deno开始构建模拟的FaaS环境,构建简单的函数注册中心、文件函数服务、邮箱函数服务、计时器函数服务等FaaS服务。接着在Node.js环境中使用时下流行的Prisma、Fastify和MySQL构建后端服务程序。后使用Vue 3、Vite和Tailwind构建报名登记应用的前端应用。在实战项目完成之后,探讨了一些和运维部署相关的话题。后一章以4个现实中的Monorepo项目为例,讲解Monorepo架构常用的配置。
第1章介绍了Monorepo与其他代码仓库技术的异同,JavaScript、TypeScript的发展概况。
第2章介绍了本书管理Monorepo的软件pnpm,较为详细地讲解了pnpm的核心机制,安装了实战项目的开发环境,包括TypeScript、ESLint和Prettier,创建了全局类型收束项目。
第3章在项目中引入了Deno运行时,充分利用Deno的架构与技术特点开发了一个简单的函数注册中心。
第4章介绍了函数即服务。基于第3章的工作,开发了三个函数服务,分别是本地文件服务器、基于HTTP协议的计时器和邮箱服务。
第5章主要介绍了Docker、MySQL和Prisma,重点介绍了使用Docker部署MySQL,并使用Prisma完成报名登记应用的数据模型构建。
第6章介绍了Node.js生态快的Web框架Fastify,简要介绍了Fastify的插件系统和日志系统,引入TypeBox作为JSON Schema类型工具,确保同时获得JSON Schema和类型,完成服务端项目的初始化。
第7章使用Fastify开发报名登记应用的用户管理服务,编写JWT身份验证插件,融合Prisma和Fastify,实现了发送验证码、用户注册、用户登录等RESTFUL风格的服务接口。
第8章使用Fastify开发报名登记应用的活动管理服务,实现了活动的发布、上线、结束、取消等服务接口。
全栈Monorepo开发实战(Vue 3 Fastify Deno pnpm)第9章介绍了Vue、Vite、Tailwind等前端技术栈,创建前端应用的环境。
第10章编写报名登记应用的前端代码,完成报名登记应用整个业务流程,并介绍了不同的打包工具,如Rollup、Vite等在该项目中的定位。
第11章介绍了应用的部署、监控和高可用相关的内容,介绍了服务监控工具Prometheus、Grafana,以及应用高可用性部署。
第12章讲解了使用pnpm、TypeScript技术栈的开源项目Vue、Vite、Astro和Prisma与Monorepo相关的设计。
因为涉及的文件比较多,代码示例会以 // 开头写明具体的代码路径。
本书涉及的开源软件均提供了详细数据表格。
其中GitHub Stars和npm包月下载量数据截至2023年3月。
本书作者使用macOS系统开发,使用的各主要软件版本如下。名称版本TypeScript4.9.4Deno1.30.2Vite4.0.3Fastify4.12.0Prisma4.8.0Node.js18.13.0pnpm7.26.0
因为Node.js生态更新较快,不同版本的行为可能差异较大。
本书提供了免费配套资源,包括TypeScript类型系统、常用的TypeScript工具范性、Deno基础以及完整的项目代码。
前言
感谢机械工业出版社策划这样一本书。感谢编辑李培培在整个出版过程给予的支持和帮助。感谢家人在写书过程中的理解和支持。
作者
|
|