前端接口契约治理实践:MSW + 错误码 + OpenAPI 的一次落地

背景

在一个中后台项目中,我们遇到了一个典型但长期被低估的问题:

  • Swagger 文档先于页面设计完成
  • 页面实际需要的数据结构与现有接口不一致
  • 错误码基本等同于 HTTP Status,语义不足
  • 前端页面中大量 if (res.code !== 0) + toast(res.message)

结果是:

  • 前后端对接口结构理解不一致
  • Mock 与真实接口行为不一致
  • 错误提示不可控,难以国际化
  • 后续维护成本持续升高

我们最终决定 重构接口契约的生产流程,而不是继续修补页面代码。

阅读更多

MSW 在前端项目中的正确打开方式:从“造数据”到“定义接口”

为什么要重新理解 MSW

在很多项目里,MSW 被当成了:

  • 一个 mock 数据工具
  • 一个本地调试的临时方案
  • 一个替代 mock.js 的库

但在实际工程中,如果这样使用 MSW,价值会非常有限,甚至会制造新的混乱。

我们最终达成的共识是:

MSW 不是用来“造假数据”的,而是用来“定义接口行为”的。

阅读更多

自动切换 Node.js 版本:Windows & macOS 全平台完整指南

在日常前端开发中,我们经常需要为不同项目使用不同版本的 Node.js。

例如:

  • 老项目需要 Node 14/16
  • 新项目需要 Node 18/20
  • 一些工具链只能运行在特定版本上

为了避免每次手动 nvm use,我们可以实现 进入项目目录时自动切换到正确的 Node 版本

本文将分别讲解:

  • macOS 自动切换 Node(nvm + zsh hook)

  • Windows 自动切换 Node(nvm-windows、fnm、Volta 三种方法)

  • .nvmrc 的正确用法

阅读更多

前端工程模块化

为什么需要模块化

当前端工程到达一定规模后,就会出现下面的问题:

  • 全局变量污染:多个文件中定义的全局变量容易冲突
  • 依赖混乱:多个文件之间的依赖关系复杂,难以维护
阅读更多

Canvas 2D 快速上手

使用Canvas进行2D绘制,需要使用Canvas的上下文对象,上下文对象提供了一些方法(API)来绘制图形。
我们不仅可以通过Canvas绘制图形,还可以通过Canvas绘制动画。

阅读更多

【webpack】webpack快速入门

概念

本质上,webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个依赖图,然后将你项目中所需的每一个模块组合成一个或多个 bundles,它们均为静态资源,用于展示你的内容。

阅读更多

TypeScript 极速梳理

JavaScript是非常灵活的一门编程语言,但是这种灵活是把双刃剑,一方面使得JavaScript蓬勃发展,无所不能;另一方面也使它的代码质量参差不齐,维护成本高,运行时错误多。

TypeScript是具有类型的JavaScript,在很大程度上弥补了它的缺点。

阅读更多

unittest框架总结以及ddt数据驱动

快速入门

本文章于 2023 年学习时记录,无法保证准确性

用例编写

unittest 是 Python 自带的一个单元测试框架

此外,unittest 还支持自动化测试的接口测试、UI 测试。

阅读更多

如何在centOS中配置环境等

本文章于 2023 年学习时记录,无法保证准确性

centOS 安装以及宿主机的连接

安装 centOS

​ 根据 iso 安装需要版本的 centOS,可选带有桌面或者无桌面的内核版本

阅读更多