技术栈科普
开始前的心理建设
前3章讲的是"想法层面":发现问题、验证需求、定义MVP。完全不涉及技术,小白也能看懂。
从这一章开始,会出现技术概念。
给完全零基础的你
如果你看到"前端"、"后端"、"数据库"、"Python"、"Vue"这些词完全懵:
这很正常。 我第一次看到这些词也是懵的。
会发生什么?
- 前3章你一路看得挺顺
- 第4章突然冒出一堆术语
- 感觉信息量突然变大
- 开始怀疑"我能学会吗"
正常的。 因为你在跨越"理念"到"技术"的分水岭。
这一章的目的
不是让你"学会"编程,而是让你"知道"是什么。
知道什么?
前端/后端/数据库是什么
用淘宝网购来类比,你马上就懂为什么选这些技术
我为什么用 Python + Vue,不是因为它们最好,而是因为够用和 AI 对话时能听懂
AI 说"用 FastAPI 做后端",你至少知道后端是什么
不需要什么?
- ❌ 不需要会写代码
- ❌ 不需要记住所有术语
- ❌ 不需要一次看懂
看不懂的词,先记个印象,做项目时自然就懂了。
真实经历:我第一次看技术文档
我第一次看到"前端框架 React vs Vue"的对比文章,完全看不懂。
什么是框架?什么是虚拟 DOM?什么是组件?全是黑话。
但我做了什么?
- 记住了"Vue 比较简单"
- 后来做项目时选了 Vue
- 让 AI 帮我写代码
- 边做边懂
3个月后,我再回头看那篇文章,全懂了。
不是因为我学了,而是因为我用了。
前端 vs 后端 vs 数据库
我的理解(用网购来类比)
前端 = 你看到的购物网页
- 商品图片、价格
- "加入购物车"按钮
- 搜索框、购物车页面
后端 = 网站背后的系统
- 检查库存
- 计算价格(优惠券、运费)
- 处理支付
- 生成订单
数据库 = 网站的仓库
- 商品信息(名称、价格、库存)
- 用户信息(账号、地址、订单历史)
- 所有数据都存在这里
完整流程(以淘宝为例)
- 你打开淘宝 → 前端加载页面
- 搜索商品 → 前端发请求给后端
- 后端查数据库 → 找到商品信息
- 显示搜索结果 → 后端返回数据,前端展示
- 点击"购买" → 前端发请求
- 后端处理 → 检查库存(查数据库)、扣库存(写数据库)、生成订单
- 显示"支付成功" → 前端收到后端的响应
你只看到前端,但背后后端和数据库在工作。
具体例子: 微信 RSS 项目
前端(你看到的页面):
- 登录页面
- 订阅管理界面
- RSS feed 列表
后端(背后的处理逻辑):
- 获取微信文章(爬虫)
- 生成 RSS feed
- 用户认证(检查账号密码)
数据库(存储的信息):
- 用户账号、密码
- 订阅的公众号列表
- 抓取的文章内容
用户使用流程
- 打开网页 → 前端加载
- 点击"添加订阅" → 前端发请求给后端
- 后端去抓微信文章 → 爬虫工作
- 保存到数据库 → 文章存起来
- 生成 RSS feed → 后端处理
- 显示在页面 → 前端展示
你只操作前端,但后端和数据库在默默工作。
我用的技术栈
后端: Python (FastAPI)
为什么选 Python?
AI 生态太强大了
- 几乎所有 AI 库都是 Python 优先
- Anthropic SDK, LangChain, OpenAI SDK...
- 做 AI 相关项目,Python 是首选
我有一点 Python 基础
- 不是完全陌生
- 能看懂基本语法
库很多,生态好
- 爬虫库(requests, beautifulsoup)
- AI 库(openai, anthropic)
- 几乎什么功能都有现成的库
好学
- 语法简单
- AI 生成的代码容易理解
够用
- 我的项目对性能要求不高
- Python 完全够用
什么时候不用 Python?
- 高并发场景(百万级用户同时在线)
- 对性能要求极高
- 这时候考虑 Go
但对于大多数个人项目,尤其是 AI 相关项目,Python 是最佳选择。
前端: Vue 3
为什么选 Vue?
对新手相对友好
- 比 React 好上手
- 文档清晰
- AI 生成的 Vue 代码容易看懂
看项目需求
- 简单的项目: 直接写 HTML + JavaScript
- 复杂的(有用户系统): 用 Vue
生态完善
- 组件库多(Element Plus, Ant Design Vue)
- 文档齐全
为什么不用 React?
- 坦白说,我对前端不是很懂
- 之前 React 出过一些安全漏洞,就换 Vue 了
- 虽然 Vue 可能也有漏洞,但目前用着没问题
- 够用就行,不追求完美
我的实际使用:
- wechat-rss SaaS 版: Vue 3 + Element Plus
- ainewsrss: 复用了 wechat-rss 的前端
数据库: PostgreSQL + Redis
PostgreSQL(主数据库):
- 存储用户数据
- 订阅信息
- 文章内容
为什么选 PostgreSQL?
- 功能强大
- 开源免费
- 支持复杂查询
Redis(缓存):
- 存储临时数据
- 加速访问
- 减少数据库压力
Node.js 呢?
为什么我用得少?
Node 主要用在前端工具链
- 打包工具(Vite, Webpack)
- 不是后端开发
后端库不如 Python 多
- Python 爬虫库更成熟
- AI 库支持更好
我不熟悉
- Python 有基础
- Node 要重新学
什么时候用 Node?
- 前后端都用 JavaScript(统一语言)
- 需要实时通信(WebSocket)
- 团队都熟悉 JavaScript
技术栈对比
Python vs Node.js vs Go
| 特点 | Python | Node.js | Go |
|---|---|---|---|
| 学习难度 | ⭐⭐ 简单 | ⭐⭐⭐ 中等 | ⭐⭐⭐⭐ 较难 |
| 性能 | ⭐⭐ 够用 | ⭐⭐⭐ 不错 | ⭐⭐⭐⭐⭐ 很强 |
| 库的数量 | ⭐⭐⭐⭐⭐ 很多 | ⭐⭐⭐⭐ 多 | ⭐⭐⭐ 中等 |
| AI 生态 | ⭐⭐⭐⭐⭐ 最强 | ⭐⭐⭐ 中等 | ⭐⭐ 较弱 |
| AI 生成代码质量 | ⭐⭐⭐⭐⭐ 很好 | ⭐⭐⭐⭐ 好 | ⭐⭐⭐ 中等 |
| 适合场景 | AI 项目,个人项目 | 实时应用 | 高并发,高性能 |
前端框架对比
| 框架 | 学习难度 | 生态 | 适合场景 |
|---|---|---|---|
| Vue 3 | ⭐⭐ 简单 | ⭐⭐⭐⭐ 好 | 个人项目,中小项目 |
| React | ⭐⭐⭐ 中等 | ⭐⭐⭐⭐⭐ 很好 | 大型项目,团队开发 |
| 原生 HTML/JS | ⭐ 最简单 | ⭐⭐ 基础 | 超简单的页面 |
数据库对比
| 数据库 | 类型 | 适合场景 |
|---|---|---|
| PostgreSQL | 关系型 | 复杂数据,需要查询 |
| MySQL | 关系型 | 通用场景 |
| SQLite | 关系型 | 小项目,单机 |
| Redis | 缓存 | 临时数据,加速 |
我的技术选择原则
原则 1: 选你熟悉的
不要追新:
- ❌ "听说 Rust 很火,我要用 Rust"
- ✅ "我会 Python,就用 Python"
为什么?
- 熟悉的技术,AI 生成的代码你能看懂
- 出错了你能判断
- 不熟悉的,全靠 AI,容易失控
原则 2: 选生态好的
什么是生态好?
- 库多,功能现成
- 文档全,搜得到答案
- AI 训练数据多,生成质量高
举例:
- Python 爬虫库很多 → 适合做数据采集
- Python AI 库很多 → 适合做 AI 项目
- Node.js 前端工具多 → 适合前端工程化
原则 3: 够用就行
不要过度优化:
❌ "Python 性能不够,要用 Go"
- 你的项目有百万用户吗?没有就不需要
✅ "Python 够用了,就用 Python"
- 性能不够再优化,不要提前优化
真实情况:
- 大多数个人项目,用户不到 1 万
- Python 完全够用
- Go 是好,但学习成本高
实战建议
新手推荐组合
最简单(适合第一个项目):
后端: Python + FastAPI
前端: HTML + JavaScript(不用框架)
数据库: SQLite(不需要安装)2
3
为什么?
- 最简单,最少依赖
- AI 很容易生成代码
- 能快速跑通
进阶组合(第二、三个项目):
后端: Python + FastAPI
前端: Vue 3 + Element Plus
数据库: PostgreSQL + Redis2
3
为什么?
- 功能更强
- 用户体验更好
- 适合做 SaaS
如何选择?
问自己 3 个问题:
我有什么基础?
- 有 Python 基础 → 用 Python
- 有 JavaScript 基础 → 用 Node.js
- 什么都不会 → 推荐 Python(最好学)
项目需要什么功能?
- 爬虫/数据处理 → Python
- 实时通信 → Node.js
- 高并发 → Go(不推荐新手)
性能要求高吗?
- 用户 < 1 万 → Python 够用
- 用户 > 10 万 → 考虑 Go
- 但大多数个人项目到不了 10 万
不要纠结技术选型
重要的不是技术
真实情况:
- 用 Python 能做的,Node.js 也能做
- 用 Vue 能做的,React 也能做
- 技术不是瓶颈,方法论才是
我的经验:
- 微信 RSS 用 Python
- 如果用 Node.js,也能做出来
- 关键是想清楚要做什么
技术可以换
项目做大了再优化:
- 先用 Python 做出来
- 有用户了,发现性能不够
- 再换成 Go(重写核心模块)
举例:
- Instagram 最早用 Python
- 后来部分模块换成 Go
- 但一开始就是 Python
不要一开始就追求完美技术栈。
核心原则
选技术栈 = 选工具,够用就行
熟悉 > 先进
- 你熟悉的 > 别人说好的
生态 > 性能
- 库多 > 跑得快
- 能快速开发 > 极致性能
够用 > 完美
- 能解决问题 > 技术先进
- Python 够用就别换
可以换
- 技术栈不是终身的
- 做大了再优化
记住: AI 会写代码,你只需要做选择。选你熟悉的,选生态好的,选够用的。