- docs/: 6 development documents (PRD, tech selection, architecture, risks, roadmap, design workflow) - research/: FIRE background materials, personal plan, Excel calculator - 03-架构设计.md: add Section 8 documenting WSL2 → Windows browser dev environment (Vite host config, access URLs, mobile debugging tip) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
59 lines
4.1 KiB
Markdown
59 lines
4.1 KiB
Markdown
# 04 · 风险与避坑
|
||
|
||
> uni-app 开发本类 app(自托管财务 + 多端 + 自律打卡)会踩的坑,按对本项目的杀伤力排序。
|
||
|
||
## ✅ 已化解:原一级坑「小程序 ✕ 自托管后端」
|
||
|
||
> 用户已具备**腾讯云 VPS + 域名 + certbot(Let's Encrypt)HTTPS**,后端从家用 NAS 迁到公网 VPS,此坑基本解除。
|
||
|
||
微信小程序对后端的硬性要求:**强制 HTTPS + 域名已备案 + request 合法域名白名单**,**不接受 IP / 内网地址 / 自签证书**。
|
||
- **现状**:VPS 公网 IP + 正经域名 + certbot 正规证书 → **HTTPS、合法证书、公网域名均满足**;App / H5 后端要求**全部达标**。
|
||
- **小程序仅剩一步**:**域名 ICP 备案**(腾讯云可办)+ 在小程序后台配 request 合法域名白名单。备案完成后小程序即可纳入。
|
||
- **遗留注意**:后端已暴露公网,需做安全加固(端口最小化、强鉴权、限流、强制 HTTPS、SSH 密钥 + fail2ban、SQLite 定时备份)——详见架构文档第六节。
|
||
|
||
### 2. 跨端"本地存储 + 离线同步"无统一方案
|
||
各端存储能力不同(H5 IndexedDB / App SQLite / 小程序 storage 约 10MB),且 uni 无现成离线同步轮子(uniCloud 绑 DCloud 云,用不上)。
|
||
- **规避**:① 做"存储抽象层"分端实现;② 同步用最简单的**时间戳 + 后写覆盖**;③ 历史数据以后端为准,本地仅缓存。
|
||
|
||
## 🟡 二级坑:拖慢进度、磨耐心
|
||
|
||
### 3. 图表 canvas 坑
|
||
uCharts/qiun-data-charts 基于 canvas:小程序里 canvas 层级最高会盖住弹窗、数据多会卡、nvue 下行为又不同。
|
||
- **规避**:统一用 qiun-data-charts;图表页不用 nvue;数据抽稀。
|
||
|
||
### 4. iOS 云打包 / 证书第一次必踩
|
||
`.p12` + `.mobileprovision` + bundleId 配置繁琐,首次几乎一定失败;云打包免费版有排队/次数限制。
|
||
- **规避**:跟香蕉云编/Appuploader 图文教程走,预留半天踩证书。
|
||
|
||
### 5. iOS 审核:金融类是高拒审区
|
||
工具内容单薄触发 4.2「最低功能」;涉及"理财/投资/收益"可能触发 3.1.1 或被要求金融资质(个人开发者难)。
|
||
- **规避**:**自用就别上架**(用 ad-hoc / PWA);若上架,措辞避开"投资建议/收益",定位"个人记账与目标管理工具"。
|
||
|
||
### 6. 样式多端不一致
|
||
rpx 换算、iOS 安全区、状态栏、**键盘顶起输入框**、滚动穿透等表现各端不同;测算器输入框多,键盘遮挡尤甚。
|
||
- **规避**:用 uni 安全区变量、page-meta;表单做键盘适配测试。
|
||
|
||
## 🟢 三级坑:知道即可
|
||
|
||
- **nvue 陷阱**:只支持 flex、CSS 受限、与 vue 混用割裂 → **全程用普通 vue 页面,不碰 nvue**。
|
||
- **插件市场质量参差**:收费/失修/文档差,跨端 bug 难定位 → 少依赖第三方原生插件。
|
||
- **HBuilderX 耦合**:云打包/原生插件偏 GUI;CLI 项目导入偶有适配问题 → 用 HBuilderX 友好的结构搭项目。
|
||
- **wgt 热更新**:iOS 政策禁止用热更新改核心功能/绕审核,上架要克制(自用可放心)。
|
||
- **股票行情/分红数据源**:无稳定免费官方 API,第三方不稳、小程序卡白名单 → 持仓页**先手动录入**。
|
||
|
||
## 🎯 本项目最该担心的 Top 3(已更新)
|
||
|
||
1. ~~小程序 vs 自托管 NAS 的 HTTPS 矛盾~~ → **已由 VPS + 域名 + certbot 化解**;小程序只剩域名备案。
|
||
2. **跨端存储 + 离线同步要自己造** → 存储抽象层 + 简单时间戳同步。(当前头号难点)
|
||
3. **iOS 金融类上架/证书** → 自用不上架,走 PWA/ad-hoc,规避资质风险。
|
||
4. **公网后端安全**(新增)→ VPS 暴露财务数据于公网,须加固(见架构文档第六节)。
|
||
|
||
## 避坑总原则
|
||
|
||
- 范围先收:**第一版只做 H5(PWA) + 安卓包**(安卓出包免费免账号)。
|
||
- iOS 等界面稳定后再云打包。
|
||
- 小程序**待域名备案完成后**即可纳入(不再是硬阻塞)。
|
||
- 后端上公网即做安全加固。
|
||
- 全程普通 vue + qiun-data-charts + 存储抽象层;不碰 nvue、少用第三方原生插件。
|
||
- 持仓/分红先手动录入,不接实时行情。
|