【阶段1收官】day70-boss-dashboard-demo

作者:mario 发布时间: 2026-09-03 阅读量:5 评论数:0

Day 70 · BOSS 战 — 交付日:验收、演示视频、简历条目与第 2 个月毕业

昨天整机联调完毕,今天一行新代码都不写(写了一律回滚——交付日的代码改动是风险,不是产出)。今天做四件事:按验收清单做最终验收、录一支 ≤2 分钟的演示视频、写 README 与简历条目、做第 2 个月的毕业总结。程序员和"会写代码的人"的分水岭就在交付能力:同样的代码,能讲清楚、能演示、能让别人 5 分钟跑起来,价值差一个量级。


目录


一、最终验收:对照清单逐项打勾

Day 64 定下的验收标准(week10 总览第五节),今天逐项执行并留档(截图 / 录屏 / 数据表进 docs/acceptance/):

1.1 功能验收

□ 首次打开:屏 A 入场动效完整播放,4 个 KPI 翻牌从 0 滚到真实值
□ 轮播循环:A(15s) → B(20s) → C(15s) → A,切屏淡入淡出无白屏
□ 手动切换:底部圆点指示器可点击,切换后该屏停留计时重置
□ 断线重连:杀掉服务器 → 状态灯变黄 → 重启服务器 → 数据同帧恢复
□ 补传验证:断线 30s 期间切到屏 B → 恢复后曲线无断档(Store 窗口补全)
□ 告警联动:屏 B 激活时触发告警 → 切到屏 A 时告警已在列表中
□ Tab 切走 10 分钟回来:轮播停在原地等恢复(visibilitychange 暂停)

1.2 性能验收(Day 69 的表格填数)

场景

目标

我的实测

单屏稳态 ×3(各 10 分钟)

≥55fps

___

轮播整圈 ×10

≥55fps

___

全动效开启

≥55fps

___

30 分钟 JS Heap

稳定

___

切屏 100 次后 subs.length

稳定个位数

___

页面 hidden 10 分钟 CPU

≈0

___

1.3 视觉与工程验收

□ 1920×1080 与 1366×768 双分辨率截图无破版(transform scale 壳生效)
□ README 一键启动:两条命令跑通(server + client)
□ 找一个没看过代码的朋友(或换台机器)clone 试跑,全程不看你的求助消息

🎯 "朋友测试"是工程验收的黄金标准:你不在场时能不能跑起来,决定了这个项目是"作品"还是"只有我电脑上能跑的代码"。任何需要口头解释的启动步骤,都要写进 README。


二、演示视频:先写脚本再录制

2.1 为什么必须写脚本

现场即兴录制的失败模式高度一致:忘了演示重连、鼠标乱晃、中途发现 bug 慌张修补、录了 6 分钟舍不得剪。脚本 = 演示的分镜,2 分钟 ≈ 6-8 个镜头,每镜头 15-25 秒。

2.2 参考脚本(直接可用)

【00:00-00:08】开场
  镜头:屏 A 全景(入场动效 + KPI 翻牌滚动)
  旁白:"基于原生 TS + ECharts + Canvas 的智慧工厂监控大屏,
        数据由本地 WebSocket 服务器实时推送。"

【00:08-00:20】屏 A 细节
  镜头:鼠标扫过 4 个 KPI 卡片 → 告警滚动条
  旁白:"首屏总览:关键指标实时翻牌,底部告警由服务端事件驱动。"

【00:20-00:40】屏 B 实时监控
  镜头:切到屏 B(手动点圆点)→ 曲线实时推进 → 仪表盘指针摆动
  旁白:"实时监控页:五模块分频更新,高频曲线每帧推送,
        仪表与 KPI 一秒一刷,互不抢占主线程。"

【00:40-01:00】屏 C 产线拓扑
  镜头:切到屏 C → hover 一个节点看详情 → 鼠标拖拽平移缩放
  旁白:"产线拓扑:Canvas 三层画布渲染,节点状态色与温度
        由实时数据驱动,支持平移缩放与命中检测。"

【01:00-01:30】容错能力(视频的高光段落)
  镜头:切回屏 B → 杀掉服务器进程 → 状态灯变黄、曲线冻结
        → 重启服务器 → 数据恢复、曲线补全无断档
  旁白:"断线自动重连,重连后按会话序号补传,
        曲线窗口自动补全——工业场景的网络容错。"

【01:30-01:50】性能证据
  镜头:打开 DevTools Performance 录 10s → 展示帧率与内存曲线
  旁白:"全动效开启下稳定 55 帧以上,长时运行内存无泄漏。"

【01:50-02:00】收尾
  镜头:回到屏 A 全景淡出
  旁白:"项目开源,README 一键启动。"

2.3 录制纪律

  • 录三遍取最好的一遍,不要现场剪辑——剪辑是另一个技能坑

  • 旁白后配音或用剪映加字幕皆可,环境安静比设备高级重要

  • 录屏分辨率锁 1920×1080,浏览器缩放 100%

  • 录之前把 demo 数据调到"好看区间"(温度 75-85 波动、告警 2-3 条)——演示数据的观感也是工程能力


三、README:让别人 5 分钟跑起来

3.1 README 结构模板

# 智慧工厂监控大屏 Smart Factory Dashboard

一句话:原生 TypeScript + ECharts + Canvas 的工业实时监控大屏,
WebSocket 实时推送、断线重连补传、三屏自动轮播。

![演示 GIF](docs/demo.gif)          ← 视频转 GIF,README 的门面
![拓扑页截图](docs/topo.png)

## 技术栈
- 渲染:ECharts 5(自定义主题)/ Canvas 2D 三层画布(拓扑)
- 数据:WebSocket + 心跳保活 + 会话序号补传 + rAF 批量调度
- 工程:Vite + TypeScript strict

## 快速启动
```bash
# 1. 启动数据服务器(独立终端)
node server/index.js

# 2. 启动前端
npm install
npm run dev
# 打开 http://localhost:5173

功能清单

  • [x] 三屏轮播(KPI 总览 / 实时监控 / 产线拓扑)+ 手动切换

  • [x] 断线重连 + 序号补传 + 连接状态灯

  • [x] 订阅分频(高频曲线 / 低频 KPI 互不干扰)

  • [x] 工业深色主题 token 系统 + 入场动效编排

  • [x] 拓扑节点实时状态色 + hover 详情 + 平移缩放

架构

(贴 Day 64 的模块依赖图 ASCII 版)

性能

(贴 1.2 的实测表格)


### 3.2 README 的三条红线

1. **没有截图/GIF 的 README 等于没有**——面试官 3 秒内决定要不要继续看
2. 启动步骤必须真的从零跑一遍验证(`rm -rf node_modules` 后重来)
3. 不写"后续计划"超过 3 条——TODO 列表越长越显得没完成

---

## 四、简历条目:150 字写法与参考答案

### 4.1 写法公式

动词开头 + 技术名词(可被面试官追问的)+ 量化结果 + 工程亮点


- ❌ "做了一个智慧工厂大屏" —— 没有任何信息量
- ❌ "使用了各种先进技术" —— 无法追问,等于没写
- ✅ 结果 + 数字 + 一个能讲 10 分钟的深度点

### 4.2 参考答案(150 字)

> **智慧工厂实时监控大屏**(个人项目,开源)
> 原生 TypeScript + ECharts + Canvas 构建的工业监控大屏:三屏轮播架构(KPI 总览 / 实时监控 / 产线拓扑),WebSocket 实时推送,自研心跳保活与会话序号补传机制,断线重连后数据窗口自动补全。设计全局 Store 统一数据分发,按模块分频订阅(曲线每帧、KPI 秒级)降低渲染压力;拓扑页基于 Canvas 三层画布实现命中检测与视口变换。全动效下稳定 55fps+,长时运行内存零泄漏。

### 4.3 每句话都是面试钩子

| 简历句子 | 面试官会问 | 你的弹药(出处) |
|----------|-----------|----------------|
| "会话序号补传" | 怎么判断丢数据?补哪些? | Day 61 SessionManager |
| "按模块分频订阅" | 为什么要分频?怎么实现? | Day 56/65 三层分频 |
| "三层画布" | 为什么三层?脏矩形吗? | Day 46/49 |
| "55fps、零泄漏" | 怎么测的? | Day 69 性能验收 |

> 🎯 **简历上每一句都要能撑住 10 分钟追问**——写你做过的,不写你听过的。

---

## 五、第 2 个月毕业总结

### 5.1 五周回顾:从零件到整机

Week 6 工业可视化基础 → Canvas 图形/文本/交互基本功
Week 7 Canvas 高级 → 编辑器内核(命中/拖拽/多层/撤销)
Week 8 图表与 ECharts → 五大图表模块 + 主题 + 性能优化
Week 9 实时数据链路 → WS 心跳/重连/补传/调度/MQTT 概念
Week 10 月度综合项目 → 三合一整机 + 交付资产


### 5.2 能力对照:一个月前 vs 现在

| 能力 | 第 1 个月末 | 第 2 个月末 |
|------|------------|------------|
| 图形渲染 | 会画基本图形 | 三层画布架构 + 命中检测 + 视口变换 |
| 数据可视化 | 手写 Bar/Line | ECharts 定制主题 + 五模块 + 性能调优 |
| 实时数据 | 无 | 心跳/退避重连/序号补传/rAF 批量调度全链路 |
| 架构 | 单文件小 demo | 模块边界/全局 Store/订阅分频/屏幕路由 |
| 交付 | 无 | Demo + 视频 + README + 简历条目 |

### 5.3 本月最有价值的三个认知(写进毕业博文)

1. **状态只存一份**(Day 65/69):数据上移到 Store 后,"隐藏期间数据也在长"、"切屏零等待"、"三屏同帧"全部免费获得——好架构是让问题消失而不是解决它。
2. **性能是纪律不是技巧**(Day 56/67/69):分频、批量、动画预算、退订成对——没有一个技巧是高深的,全部是"知道要做并坚持做"。
3. **"不做什么"决定成败**(Week 10 铁律):3D、登录、持久化全部进了第 3 个月待办,才有今天 90% 完成度的作品——范围控制是工程师的成人礼。

### 5.4 待办清单(第 3 个月输入)

  • 告警规则配置界面(本周发现:告警阈值目前写死在 markLine)

  • 数据持久化(当前刷新即丢)

  • Vue3 重构(阶段 2 主线:把本周的 DOM 版换成 Vue 组件化)

  • 拓扑图配置可视化(当前是 JSON 文件,可回流编辑器能力)


---

## 六、作品链资产盘点

第 2 个月结束时,你的 `my-study` 应该有这些可展示资产:

| 资产 | 位置 | 用途 |
|------|------|------|
| 🎯 大屏 Demo 源码 | `dashboard/`(本周项目) | 简历第一项目 |
| 演示视频(≤2min) | `dashboard/docs/demo.mp4` | 简历附件 / 面试开场 |
| README + 架构图 + 性能表 | `dashboard/README.md` | 面试官第一入口 |
| 毕业博文 | 个人博客 | 内容资产 + 认知输出 |
| 70 篇学习文档 | `TypeScript/day41-70` | 知识图谱(面试前翻阅) |
| 流程图编辑器 | Week 7 项目 | 第二作品(Canvas 深度证据) |
| 实时面板 | Week 9 项目 | 已被大屏吸收(保留演进记录) |

> 🎯 **作品链思维**:单个项目是点,作品链是"每个作品都比上一个多吃一层能力"的线——大屏吃了编辑器(渲染)+ 图表(可视化)+ 数据链路(实时),这种演进故事本身就是面试素材。

---

## 七、常见坑点

### 坑 1:交付日手痒改代码

验收中发现"小问题"忍不住重构,改出新 bug 且没时间回归。修复:**交付冻结**——发现的问题只记 issue 不动手,除非是阻断性 bug(白屏/报错)。

### 坑 2:视频录了 8 分钟舍不得剪

信息密度低于每 10 秒一个看点,观众就会划走。修复:严格按 2.2 脚本分镜,超时删镜头不删旁白。

### 坑 3:README 启动步骤漏了前置条件

"我电脑能跑"但没写 Node 版本、端口占用处理。修复:换目录或换机器完整跑一遍 `README` 步骤。

### 坑 4:简历写了自己讲不动的技术点

比如写了"消息队列"但只用了 MQTT 概念。修复:4.3 的表格自检——每句话预设追问并确认弹药充足,讲不动的一律删。

### 坑 5:毕业总结写成流水账

"这周学了 A 下周学了 B"。修复:按 5.2 的对照表结构写——**变化量比清单更有说服力**。

---

## 八、自测挑战

### T1 · 最终验收全清单(60 分钟)

第一节全部清单逐项打勾并留档(截图 + 实测表),任何阻断项修完重跑。

### T2 · 演示视频成片(40 分钟)

按 2.2 脚本录制,三遍取优,输出 ≤2 分钟 MP4 + 15 秒 GIF(README 用)。

### T3 · 朋友测试(20 分钟)

发给一个没看过项目的人,只给 README,记录 TA 卡在哪一步——卡点即 README 缺陷。

### T4 · 毕业博文(进阶,60 分钟)

按 5.1-5.3 结构写第 2 个月毕业总结发布:五周演进 + 能力对照 + 三个认知 + 待办。**这篇博文是你学习方法的公开证据**。

---

## 九、总结

| 环节 | 要点 |
|------|------|
| 最终验收 | 清单留档 + 双分辨率 + 朋友测试 |
| 演示视频 | 脚本先行、分镜录制、容错演示是高光 |
| README | 截图门面 + 一键启动 + 实测性能表 |
| 简历条目 | 每句话撑住 10 分钟追问 |
| 毕业总结 | 写变化量不写流水账,待办转下月输入 |
| 作品链 | 每个作品比上一个多吃一层能力 |

---

**🎉 第 2 个月毕业。** 你现在拥有:一个能演示、能追问、能跑分的完整工业大屏 Demo,和 70 天攒下的知识图谱。下个月进入阶段 2 主线:**Vue3 组件化重构大屏**——同一个作品换引擎再跑一遍,是检验"学的是架构还是 API"的最好方式。开始第 11 周。

评论