全棧Monorepo開發實戰(Vue 3+Fastify+Deno+pnpm)

孫浩

  • 出版商: 機械工業
  • 出版日期: 2023-08-24
  • 定價: $714
  • 售價: 8.5$607
  • 語言: 簡體中文
  • 頁數: 312
  • 裝訂: 平裝
  • ISBN: 7111733592
  • ISBN-13: 9787111733591
  • 相關分類: Vue.js
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

本書基於pnpm建構了一個完整的報名登記應用程式來實踐這種程式碼倉庫,實現Vite+Vue+Tailwind編寫的前端應用、
基於Fastify和Prisma編寫的後端應用、基於Deno的函數服務開發和以Prisma為ORM的資料模型設計。
本書的應用涉及的TypeScript和JavaScript上下游工具鏈和框架較為廣泛,但是選取的範例較為簡單,
容易上手,旨在幫助開發者更瞭解各技術棧的特性。

作者簡介

孫浩,畢業於北京郵電大學。曾在浪潮任數據挖掘工程師、PingCAP華南區首席解決方案架構師,主導建設了微眾銀行、華為、平安、順豐、豐巢等公司的分佈式數據庫。自創業以來,專註於TypeScript、C#、Kotlin等編程語言,有非常豐富的從0到1的Mon-orepo項目實戰經驗。

目錄大綱

前言
第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框架prisma