一个人,六十轮迭代——我做了套不想交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 4 | 2026 年做 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 | ¥599 | Standard + 2h 开发指导 + 3 个月技术支持 |
| Enterprise | ¥1200 起 | Pro + 支付对接 + UI 定制 + 长期维护 |
为什么是我
我是 hyson,一个全栈开发者。不是公司,不是团队,没有市场部帮我写文案。
这套代码是我一行一行写的,每个 Bug 是我一个一个修的,六十轮迭代是我一轮一轮熬过来的。
如果你觉得市面上的电商源码要么太老(PHP十年前的技术栈)、要么太贵(动不动几千起步)、要么太黑(加密加授权加后门),那我的代码可能是你想要的那个。
GitHub:hyson810/qiwu-showcase
展示页:hyson810.github.io/qiwu-showcase
WeChat:szz8101753 | QQ:3968041907
我不想付 300 块保证金。所以我写了六十轮代码。这很蠢,但我认为这是对的。