技术栈与软件工程
核心问题
为什么同样是做 Web 项目,有人用 HTML/CSS/JS,有人用 Vue/React,有人还会加 Node.js、数据库和部署?为什么项目做到后面,还要讲测试、bug、迭代和发布?
什么是技术栈
技术栈就是一个项目用到的“工具组合”。
比如:
- 前端用什么写
- 服务端用什么写
- 数据存在哪里
- 最后怎么发布出去
Web 项目里最常见的几层
| 层次 | 常见选择 | 它主要负责什么 |
|---|---|---|
| 页面层 | HTML / CSS / JavaScript / TypeScript | 做页面和交互 |
| 前端框架 | Vue / React | 管理组件和状态 |
| 服务端 | Node.js / Python / Java | 处理业务逻辑 |
| 数据层 | MySQL / PostgreSQL / Supabase | 保存数据 |
| 发布层 | Vercel / Zeabur / 云服务器 | 让别人可以访问 |
没有“最好的技术栈”
真正该问的是:
- 这个项目现在做到哪一级
- 这个班级的时间够不够
- 学员设备和基础是否支持
- 第一版最需要解决什么问题
给项目营的三档推荐
| 档位 | 推荐结构 | 适合什么情况 |
|---|---|---|
| 入门档 | HTML / CSS / JS 或简单框架 | 展示页、轻量项目 |
| 标准档 | Vue / React + 假数据 / 轻接口 | 大多数项目营小组 |
| 进阶档 | 前端 + API + 数据库 + 发布 | 时间更充足的优秀组 |
软件工程不等于“很大公司才需要”
对学生来说,最重要的软件工程思维是这 4 件事:
- 改一版,就记录一版
- 出问题,要能列清楚 bug
- 展示前,要按清单测试
- 做完一轮,要根据反馈迭代
项目营里最值得固定下来的 4 张表
- 项目选题卡
- 项目进度卡
- bug 清单
- 路演提纲
发布为什么重要
发布不只是“传到网上”,而是让别人真的能看到、能试用、能反馈。
如果一个项目只能在自己电脑上勉强打开,它还没有完全进入“可交付”状态。
课堂练习
- 说出你们项目当前的技术栈
- 判断你们属于入门档、标准档还是进阶档
- 写下当前最需要做的 1 次测试、1 个 bug 修复、1 次迭代
给讲师的提醒
- 这页不适合一次讲太满,更适合分散到第 3、7、9 课使用
- 讲技术栈时,不要引导学生追求“最高级”,而要追求“最适合当前项目”
- 讲软件工程时,要用他们正在做的项目举例,否则会变成空话