一个人,六十轮迭代——我做了套不想交300块保证金的电商源码

1 阅读5分钟

一个人,六十轮迭代——我做了套不想交300块保证金的电商源码

那个弹窗

去年底的一个晚上,我在互站网上传完源码、填完简介、设好价格,点了"提交审核"。

三秒后弹出一个框:

请缴纳 300 元保证金

我盯着屏幕看了大概十秒。

不是拿不出三百块。是我想不明白:我一个开发者,想卖自己写的代码,为什么要先交钱?这不就跟找工作要先交培训费一样荒谬吗。

然后我做了一件更荒谬的事——我关掉了互站网,打开了 VS Code。

"那我自己做一个展示页不就行了?"

如果当时有人告诉我这条路要走六十轮迭代、写将近两万行代码、半夜三点还在改一个并发 Bug,我可能就老实交了三百块。

但没有人告诉我。所以我做了。


六十轮迭代是什么样的体验

不是"优化了 12 轮安全、12 轮性能"这么轻描淡写。

第 7 轮:我以为 JWT 很简单

一开始的认证系统就是 jwt.sign() + jwt.verify(),一个 accessToken 走天下。

直到有天我自己测试,发现如果我把 token 复制出来、在另一台电脑上用,它居然还能通过。

那一刻后背发凉。

后来加了 refreshToken + accessToken 双轨制、token 版本号、登出即失效。光认证这块来来回回改了 7 轮。现在的代码里 auth.middleware.ts 有 200 多行,第一版只有 30 行。

第 23 轮:凌晨三点的竞态条件

购物车是个看起来简单的功能。加商品、减数量、算总价,小学生都会。

但并发状态下不是。

用户快速点两次"加入购物车",两次请求几乎同时到达。第一次查到购物车有 0 个商品 A,插入一条。第二次也查到购物车有 0 个商品 A——因为第一次还没写完——又插入一条。

结果:购物车里同一个商品出现了两次,数量各为 1。

那天我从晚上十一点调到凌晨三点。加了乐观锁、数据库事务隔离级别检查、前端防抖、后端幂等键。修好之后我在电脑前坐了很久,不是开心,是那种"终于不用再看到这个 Bug 了"的虚脱。

第二天醒来第一件事,是打开电脑跑了一遍购物车测试。全绿。然后我才去刷牙。

第 41 轮:TypeScript strict 教你做人

全栈 strict mode 全开听起来很帅。实际上:

  • Express 的 req.user 需要扩展类型声明
  • 每个 catch 的 error 都是 unknown,要手动 narrowing
  • Zod schema 和 TypeScript type 要维护两套

有一次改了 Zod schema 忘了同步 TypeScript type,编译过了,跑起来在某个边缘 case 炸了。那之后我写了个脚本:每次改 schema 自动生成 type。这个脚本原本不在计划里,是踩坑踩出来的。

第 57 轮:250 个测试用例

写测试是一件没人想聊的事。但卖源码不写测试,就像卖食品不标保质期。

从后端 CRUD 的单元测试、到 API 的集成测试、到前端组件测试、再到全链路的 E2E——250 多个用例。最得意的一个测试是"并发下单不超卖":用 20 个并发请求同时买库存为 5 的商品,最后断言只有 5 个订单成功。

这个测试跑通的那次,我第一次觉得这套代码真的能卖了。


技术栈

技术为什么选它
前端React 19 + Vite 8 + Tailwind CSS 42026 年做 SPA 没有更好的选择
后端Express 4.21 + TypeScript strict足够成熟、生态够大、买家能看懂
数据库SQLite + WAL 模式零配置部署,WAL 下并发不比 PG 差太多
认证JWT 双 token + 版本号自己踩过坑之后的设计
部署Docker + Nginx一条命令拉起,不用配环境
测试Vitest + Supertest + Playwright从单元到 E2E 全覆盖
展示页Verlet 物理引擎 + 3D 滚动动画因为我不想要一个普通的 GitHub Pages

代码量:19,958 行,其中后端 7,145、前端 6,832、管理后台 4,981、测试约 1,000。


你到底买了什么

我不加密、不授权、不搞授权码那一套。纯 TypeScript,100% 可读可改。

  • 源码:前端 + 后端 + 管理后台,三个项目完整目录
  • 部署:Docker Compose 一条命令起来,带了 Nginx 反向代理配置
  • 文档:从环境变量说明到 API 列表到二次开发指南
  • 测试:250+ 个用例,跑不通你可以直接找我退款

价格

版本价格内容
Standard¥299完整源码 + 部署文档 + 1 次远程安装指导
Pro¥599Standard + 2h 开发指导 + 3 个月技术支持
Enterprise¥1200 起Pro + 支付对接 + UI 定制 + 长期维护

为什么是我

我是 hyson,一个全栈开发者。不是公司,不是团队,没有市场部帮我写文案。

这套代码是我一行一行写的,每个 Bug 是我一个一个修的,六十轮迭代是我一轮一轮熬过来的。

如果你觉得市面上的电商源码要么太老(PHP十年前的技术栈)、要么太贵(动不动几千起步)、要么太黑(加密加授权加后门),那我的代码可能是你想要的那个。

GitHub:hyson810/qiwu-showcase
展示页:hyson810.github.io/qiwu-showcase
WeChat:szz8101753 | QQ:3968041907


我不想付 300 块保证金。所以我写了六十轮代码。这很蠢,但我认为这是对的。