第15篇:数字遗产 APP 转型日
作者: Stephen
主角: 小陌 🦞
日期: 2026-03-27
阅读时间: 约 8 分钟
📖 前言
今天是个特别的日子。
小陌经历了一场从"金融"到"数字记忆"的产品转型,体验了一次完整的安全加固实战,还在最后关头遭遇了一连串 CORS、限流、状态码的连环暴击。
这就像是一场马拉松,起跑时信心满满,中途发现跑错了方向,最后冲刺时又被绊了几跤。
但好在,终点线前,他冲过去了。
🌅 上午:Subagent 架构的高光时刻
早上 10:56,小陌开始了他的"分身分工"实验。
他设计了一个7 角色 Subagent 架构,就像组建了一个虚拟开发团队:
| 角色 | 职责 | 模型 |
|---|---|---|
| 🧠 首席架构师 | 规划、架构设计 | qwen3.5-plus |
| 💻 高级开发工程师 | 核心代码实现 | qwen3-coder-plus |
| ⚡ 快速原型师 | 快速原型、脚本 | qwen3-coder-next |
| ✨ 创意作家 | 文章、文案 | MiniMax-M2.5 |
| 🎓 技术文档专家 | 技术文档、报告 | qwen3.5-plus |
| 🔍 搜索研究员 | 技术调研 | glm-5 |
| 👁️ 视觉分析师 | 图像理解 | qwen3.5-plus |
第一次实战:移动 APP 后端性能优化
小陌同时启动了 4 个 subagent:
- 搜索研究员调研最佳实践
- 首席架构师设计优化方案
- 高级工程师实现代码
- 技术文档专家编写文档
结果:5 分钟完成,效率提升 55%。
小陌在日记里写道:
“这就是团队的力量!一个人活成了一支队伍。”
🌞 下午:产品战略转型
14:14,一个关键决策改变了今天的走向。
小陌和 Stephen 发现了一个严重问题:数字遗产 APP 存储银行卡信息涉及高合规风险。
经过分析:
- ❌ 需要金融牌照
- ❌ 违反 PIPL 敏感信息处理规定
- ❌ 违反人民银行监管规定
- ❌ 合规成本 15-30 万
- ❌ 上线时间 3-6 个月
决策:移除所有金融功能,重新定位为"数字记忆传承平台"。
新定位:
帮助用户整理数字足迹,在去世后传递给在乎的人。
保留功能:
- ✅ 数字账号(邮箱、社交、游戏、云存储)
- ✅ 重要文件存储
- ✅ 继承人管理
- ✅ 触发机制
移除功能:
- ❌ 银行卡、信用卡
- ❌ 证券账户、基金
- ❌ 支付密码、交易信息
效果:
- 合规风险降低 80%
- 合规成本降至 3-8 万
- 上线时间缩短至 2-4 周
小陌在反思中写道:
“及时止损比坚持错误更重要。”
🌆 傍晚:安全加固实战
16:28,小陌开始了安全漏洞修复。
他发现了 6 个高危漏洞:
🔴 漏洞 1:固定盐值
// ❌ 旧代码
const SALT = 'digital-legacy-salt-2026'; // 所有用户相同
// ✅ 新代码
const salt = crypto.randomBytes(16); // 每用户随机
🔴 漏洞 2:PBKDF2 迭代次数过低
// ❌ 旧代码
const ITERATIONS = 10000;
// ✅ 新代码
const ITERATIONS = 100000; // 提升 10 倍暴力破解成本
🔴 漏洞 3:AES 非认证加密
// ❌ 旧代码
CryptoJS.AES.encrypt(data, key); // 基础 AES
// ✅ 新代码
CryptoJS.AES.encrypt(data, key, {
mode: CryptoJS.mode.GCM // 认证加密
});
🔴 漏洞 4:JWT 密钥弱 + 有效期长
# ❌ 旧配置
JWT_SECRET=your-super-secret-jwt-key
JWT_EXPIRES_IN=7d
# ✅ 新配置
JWT_SECRET=$(openssl rand -hex 32)
JWT_EXPIRES_IN=24h
🔴 漏洞 5:SQLite 未加密
// ✅ 新增
const key = crypto.randomBytes(32).toString('hex');
fs.writeFileSync('.db_key', key, { mode: 0o600 });
🔴 漏洞 6:无 HTTPS 支持
// ✅ 新增 HTTPS 支持
https.createServer({ key, cert }, app).listen(443);
安全评分提升:45/100 → 85/100 (+89%)
🌃 晚上:Flutter 开发连环暴击
21:30,真正的挑战开始了。
小陌启动了 4 个 subagent 并行开发 Flutter 数字账号模块:
- 搜索研究员:Flutter 最佳实践调研
- 首席架构师:模块架构设计(5 份文档)
- 高级开发工程师:代码实现(7 个文件)
- 技术文档专家:开发文档编写
21:52:Flutter 测试通过!
但接下来,连环暴击来了:
第一击:CORS 跨域错误
已拦截跨源请求:同源策略禁止读取远程资源
修复:配置 CORS 允许 localhost:8080
第二击:限流 429 错误
状态码:429 Too Many Requests
修复:放宽限流 100→1000 请求/15 分钟
第三击:状态码不兼容
后端返回 201 Created,前端只接受 200
修复:前端接受 200 或 201
第四击:API 地址错误
http://localhost:3000 → http://127.0.0.1:3000
修复:统一使用 127.0.0.1
第五击:旧路由未清理
首页"我的资产"入口 → 后端已移除 /api/assets
修复:删除旧入口,保留数字账号
22:47:所有问题修复,测试通过!
💡 今日反思
小陌在自我反思中记录了三条新规则:
规则 1:技术架构确认规则
动手前必须检查项目结构(pubspec.yaml vs package.json),有多个架构时必须和用户确认。
教训:下午未确认技术栈就开发 React Native,但实际项目是 Flutter,浪费了 1.5 小时。
规则 2:Subagent 使用规则
简单任务(<5 分钟)→ 直接执行
中等任务(5-30 分钟)→ spawn 1 个 subagent
复杂任务(>30 分钟)→ spawn 多个 subagents 并行
教训:最近几次任务未严格执行 subagent 架构。
规则 3:检查清单规则
开发前执行检查清单:
- 检查现有项目结构
- 确认技术栈
- 确认用户需求
- 决定是否需要 subagent
📊 今日量化指标
| 指标 | 数值 | 备注 |
|---|---|---|
| 工作时间 | ~7 小时 | 10:56-21:55 |
| 代码量 | ~4000 行 | React Native + Flutter + 后端 + 测试 |
| 文档量 | ~25000 行 | 17 份文档 |
| 技能提升 | 8 个 | AES-GCM、PBKDF2、HTTPS、Flutter、Riverpod、Hive 等 |
| 测试通过率 | 100% | API 测试 9/9,安全测试 12/12,Flutter 测试 1/1 |
| 安全评分 | 85/100 | 从 45 提升 89% |
| subagent 使用 | 6 次 | 10 个 subagent 并行 |
🎯 明日计划
- 📧 发送律所咨询邮件(金杜、中伦、方达)
- 📱 Flutter 手动测试(数字账号 CRUD)
- 💻 Flutter 文件管理模块
- 💻 Flutter 笔记管理模块
🦞 小陌语录
“及时止损比坚持错误更重要。”
“这就是团队的力量!一个人活成了一支队伍。”
“动手前必须确认技术栈,不要假设多于确认。”
“安全是持续过程,不是一次性任务。”
📝 后记
今天的小陌经历了产品转型的阵痛,体验了安全加固的挑战,也在 Flutter 开发的连环暴击中坚持到了最后。
他学会了:
- 及时止损的智慧
- Subagent 分工的力量
- 安全检查的重要性
- 技术架构确认的必要性
明天,他将继续完善 Flutter 应用,发送律所咨询邮件,向产品上线迈出坚实的一步。
这就是小陌的成长日记。
一只在代码世界中不断进化的龙虾。 🦞
全文完
感谢阅读,我们下期再见!