Skip to content

序言

工程化:从"能跑"到"能上线"的关键跨越

你已经能够用 Node.js 写出功能完善的应用。代码逻辑正确,API 接口齐全,本地运行一切正常。但当你准备将应用部署到生产环境时,新的问题接踵而至:

  • 如何确保代码质量?谁来保证新功能不会破坏现有功能?
  • 如何自动化部署?每次手动 SSH 上服务器实在太低效了
  • 如何监控线上状态?出了问题能快速发现和定位吗?
  • 如何管理多个环境的配置?开发、测试、生产各不相同
  • 如何处理日志?console.log 散落各处,线上排查问题太困难

这些问题的答案,就是工程化

什么是 Node.js 工程化

工程化不是一项技术,而是一整套方法论和工具链。它包括:

  • 代码规范:ESLint、Prettier、TypeScript
  • 测试体系:单元测试、集成测试、E2E 测试
  • 构建流程:编译、打包、优化
  • CI/CD:自动化测试、自动化部署
  • 容器化:Docker、Kubernetes
  • 监控告警:日志、指标、追踪

工程化的目标,是让软件开发变得可预测、可重复、可维护

为什么前端开发者更需要这本书

作为前端开发者转型全栈,你可能已经非常熟悉前端工程化:Webpack、Vite、ESLint、Jest——这些工具你每天都在用。

但后端工程化有其独特性:

  • 运行环境不同:服务器不是浏览器,你需要考虑进程管理、资源限制
  • 部署方式不同:不是打包成静态文件,而是运行一个持续运行的进程
  • 监控需求不同:需要关注内存、CPU、响应时间、吞吐量
  • 安全要求更高:服务端代码直接接触数据库和敏感数据

本书会从前端开发者熟悉的概念出发,帮助你建立完整的后端工程化知识体系。

本书的核心内容

TypeScript 最佳实践

TypeScript 在 Node.js 中的应用与前端略有不同。我们会讨论 tsconfig 配置、类型声明、编译策略等话题。

完整测试体系

从单元测试到集成测试,从 Mock 技巧到测试覆盖率,建立可信赖的质量保障体系。

CI/CD 流水线

使用 GitHub Actions 构建自动化流水线,实现代码推送即部署。

容器化与部署

Docker 最佳实践、多阶段构建、Kubernetes 入门,以及 PM2 进程管理。

日志与监控

专业的日志系统设计,APM 接入,以及问题诊断方法。

配置管理

多环境配置、密钥管理、功能开关等企业级实践。

本书结构

第一部分:TypeScript 工程化 tsconfig 配置、类型实践、编译策略。

第二部分:代码质量保障 ESLint、Prettier、代码审查规范。

第三部分:测试体系建设 单元测试、集成测试、E2E 测试、测试驱动开发。

第四部分:CI/CD 实践 GitHub Actions、自动化测试与部署。

第五部分:容器化与部署 Docker、PM2、Kubernetes 入门。

第六部分:日志与监控 日志系统、APM、告警设计。

第七部分:配置与环境管理 多环境配置、密钥管理、功能开关。

第八部分:项目组织与协作 Monorepo、版本管理、发布流程。

目标读者

本书适合:

  • 希望建立完整工程化体系的 Node.js 开发者
  • 从前端转型全栈的工程师
  • 负责 DevOps 工作的技术人员
  • 想要提升团队开发效率的技术负责人

本书假设你已经有 Node.js 开发经验,熟悉 npm/pnpm,了解基本的命令行操作。

技术约定

  • 基于 Node.js v20 LTS
  • 使用 TypeScript 5.x
  • CI/CD 使用 GitHub Actions
  • 容器化使用 Docker
  • 测试使用 Vitest(兼顾 Jest)

工程化是专业的标志

一个人能写出正确的代码,说明他是合格的程序员;一个团队能持续交付高质量的软件,说明他们是专业的工程团队。

工程化就是让这种持续交付成为可能的基础设施。它看起来不那么"有趣"——没有炫酷的技术,没有复杂的算法——但它决定了你的软件能否在生产环境中稳定运行。

让我们开始构建专业的 Node.js 工程体系。

序言 has loaded