SPT术语库

tech stack

技术栈与工具

开发工具、测试、语言、框架和组件各自负责什么。

22个已发布内容
22 / 22

开发工具

2 个内容

终端、npm、构建、CI 和代码检查工具。

构建Build

代码改完后,开发者需要确认项目能否打包,并得到可以部署的 dist 文件。

INPUTsrc/build.config.ts
CHECK GATE3 / 3 PASSEDtypecheck · bundle · asset
OUTPUTdist/index.html · app.jsBuild OK

npm

项目需要安装 Vue 等依赖,并用统一命令完成开发或构建。

PACKAGE MANAGERpackage.json → project
CONFIGpackage.json
dependenciesvue
scripts.buildvite build
INSTALLnpm install
RUNnpm run build
OUTPUTPROJECT
node_modules/
dist/

测试

11 个内容

验收标准、测试用例、单元测试、集成测试、端到端测试和回归检查。

验收标准Acceptance Criteria

做完一个功能后,团队需要知道怎样操作才算真的完成,而不是只凭感觉说“可以了”。

GIVEN用户已登录
WHEN点击保存
THEN显示“已保存”PASS

端到端测试End-to-End Test

用户登录后挑选课程、完成付款并看到订单结果时,团队需要确认这些页面和状态没有在中途断开。

LOGIN入口
SELECT选课程
PAY结算
RESULTORDER COMPLETE

不稳定测试Flaky Test

同一个结算测试没有改代码、输入或环境,却一会儿通过一会儿失败,团队需要保留每次结果并隔离不稳定来源。

SAME INPUTO-1024
RUNSPASS FAIL PASS
VERDICTFLAKY

集成测试Integration Test

创建订单时,页面请求、订单服务和库存服务需要一起工作,开发者要确认它们连接后仍能正确返回结果。

REQUESTPOST /orders
SERVICE LINKorder → stock
DEPENDENCYstock = 8
RESPONSE201 CREATED

回归测试Regression Test

版本加入新功能后,团队重新检查登录、保存等已有关键能力,并把当前结果和上一次稳定版本的结果逐项比较。

BASELINErelease-012
CURRENTrelease-013
DIFFsame
VERDICTPASS

冒烟测试Smoke Test

新版本刚部署后,团队先打开入口、检查关键接口和核心页面,确认系统没有明显故障再开始更完整的测试。

ENTRY200 OK
APIhealthy
CORE PAGEready
GATEPASS

测试用例Test Case

同一个功能需要反复检查时,团队要用固定的输入和步骤确认实际结果没有偏离预期。

INPUT FIXTURE标题:周报草稿
STEPS01 输入 → 02 保存 → 03 断言
EXPECTED / ACTUALPASS

测试覆盖率Test Coverage

团队想知道当前测试到底覆盖了多少功能,于是把功能范围和已有测试逐项对照,标出已覆盖与未覆盖的区域。

COVEREDAUTH · 3
COVEREDCHECKOUT
GAPPROFILE
75%COVERED

测试数据与夹具Test Data and Fixture

订单测试需要稳定的用户、订单和库存记录,测试结束后还要清理环境,避免下一次测试读到脏数据。

FIXTUREU-024 · O-1024
LOADtest db
RUN201 CREATED
CLEANUPempty

测试替身Test Double

结算页面依赖外部支付服务,但测试不能每次都发起真实扣款,于是用 stub、mock 或 fake 提供可重复的调用结果。

REAL API/charge
DOUBLESTUB / MOCK
CALLcharge()
RESULT200 OK

单元测试Unit Test

一个价格格式化函数经常被修改时,开发者需要不打开整页也能确认它对不同输入返回正确结果。

ISOLATED INPUTprice = 199
CALLformatPrice()→ ¥199.00
ASSERTIONPASS

技术栈

1 个内容

用一句话说明项目由哪些主要技术组成,以及各自的边界。

技术栈Tech Stack

别人问你这个项目用什么技术时,要能说清每一层负责什么,而不是只报一串工具名字。

LANGUAGEJavaScript / TypeScript
FRAMEWORKVue + Components
TOOLINGnpm → Build → Deploy
PROJECT可运行的待办页面

编程语言

3 个内容

JavaScript、TypeScript、Python 等语言解决什么问题。

JavaScript

用户点击保存后,页面需要先处理这次操作,再把结果显示出来。

FORM账户资料姓名 小林邮箱 lin@example.com
HANDLER · console@click="saveProfile"saveProfile()读取表单数据 ✓

Python

一批费用记录需要清洗、汇总并生成结果时,团队希望用一段容易读懂的脚本完成重复工作。

CODEfor record in expenses: total += amount缩进表达步骤
RESULT费用汇总完成3 条记录¥286

TypeScript

订单金额本来应该是数字,却被代码传成文字;项目希望在构建前先看到这个问题。

order.tsTS
01const price: number =
0299
BUILDBuild OK

前端框架

3 个内容

React、Vue、Next.js 等框架怎样组织页面和应用代码。

Next.js

用户打开 /dashboard,项目希望根据路由找到页面,并用合适的方式把页面交付给浏览器。

REQUESTGET /dashboard
FILE ROUTEapp/dashboard/page.tsx
PAGE BOUNDARY<Dashboard />SERVER → BROWSER

React

任务卡接收标题和完成状态,页面据此显示卡片。

TaskBoard.tsxTREE
App<TaskBoard />
TaskCarddone=true
RENDER · TaskCard
买牛奶
boundary updated
STATEsetDone(true)

Vue

用户点击计数按钮后,页面上的数字应该自动更新,不用手动重写整段 HTML。

Counter.vueSTATE
const count = ref(0)count.value = 1
VIEW · bound
1count
{{ count }}
BINDING@click="count++"

CSS 与组件

2 个内容

Tailwind CSS、组件库和可复用界面材料。

shadcn/ui

项目需要一个可访问、可改造的对话框或按钮时,团队希望把组件结构纳入自己的代码,而不是只调用黑盒包。

REGISTRYDialog可加入项目
SOURCEcomponents/ui/dialog.tsx项目拥有
UI删除草稿?确认删除

TailwindCSS

按钮、间距和颜色需要快速调整时,开发者希望改 class 就能马上看到页面变化。

CLASS RECIPEpx-4 rounded-lg bg-indigo-600text-white shadow-sm
UI保存更改