【阶段2收官】day96-resume-interview

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

Day 96 · 简历与面试弹药库 — 把 98 天变成一页纸和十段追问答案

毕业博文发了,今天做求职侧的最后一公里:简历项目条目升级为 Vue 版、面试弹药库系统化整理(每句简历话术配 10 分钟追问答案)、模拟问答实战演练。原则延续 Day 70 的"每句话撑住 10 分钟追问"——今天 additionally 处理一个新问题:原生版和 Vue 版在简历上怎么共存(两条还是一条?)。


目录


一、简历条目:Vue 版定稿

对照 Day 70 的 150 字版本,Vue 版参考答案:

智慧工厂实时监控大屏(个人项目,开源 + 在线演示)
Vue3 + TypeScript + Pinia + ECharts + Canvas 构建的工业监控大屏:三屏路由轮播架构(Vue Router history 模式 + KeepAlive 缓存),Pinia 全局状态树驱动四类告警视图零同步呈现。自研 WebSocket 实时链路(心跳保活、退避重连、会话序号补传),Canvas 四层画布拓扑与 Vue 响应式通过显式桥契约共存(markRaw 隔离 + 脏检查重绘)。ECharts 按需引入与路由懒加载,首屏 gzip 200KB 内,全动效 55fps+ 长时零泄漏。项目由纯 TS 原生版重构而来,重构对比分析见博文。

每句话的弹药位(自查表)

简历句子 预期追问 弹药出处
三屏路由轮播 + KeepAlive 为什么不 v-show?缓存失效怎么处理? Day 78/82/84 三种架构对比数据
Pinia 四类视图零同步 怎么做到的?状态设计? Day 81/90 storeToRefs、告警全景
心跳/退避/序号补传 断线判定逻辑?补传怎么对齐? Day 58-63 全链路
桥契约 + markRaw Canvas 状态为什么不能进 Vue? Day 85 裁决表 + 87 性能实测
脏检查重绘 拦下了多少?怎么量的? Day 87 打点数据
首屏 200KB / 55fps 怎么测的?优化手段优先级? Day 93 对比表
原生版重构 为什么写两遍?学到什么? Day 95 博文

二、原生版与 Vue 版的共存策略

2.1 决策:一条项目,两个阶段,一个演进故事

❌ 方案 A:两条项目并列
   "大屏(原生 TS 版)" + "大屏(Vue 版)"
   问题:HR 初筛会疑惑"怎么有两个一样的?",且单条深度被摊薄

❌ 方案 B:只写 Vue 版,隐藏原生版
   问题:浪费了最有差异化的叙事(理解框架原理的证据)

✅ 方案 C(采用):一条条目,演进即亮点
   主描述 Vue 版(当前形态);末句锚点"由原生版重构而来 + 博文链接"
   面试讲开:重构过程 = 你对框架的 deepest 理解

2.2 仓库组织

my-study/
  dashboard/        原生版(README 里注明"Vue 版见 dashboard-vue")
  dashboard-vue/    Vue 版(README"渊源"节指回原生版 + 博文)

两个仓库互链 + 各自可跑——面试官随手 clone 哪个都能活


三、面试弹药库:十问十答

把散落 98 天的高频考点收进一份文档(docs/interview-ammo.md),十问十答的骨架:

Q1  大屏的适配方案?(1920 设计稿 → 任意分辨率)
    → transform scale 壳 + ref 驱动(Day 55/71);为什么不 rem/vw(等比 vs 重排)

Q2  实时数据的完整链路?断线怎么办?
    → WS → 心跳 → 退避重连 → 序号补传 → store 补窗(Day 58-63/81)

Q3  多屏数据一致性怎么保证?
    → 单一状态源(Pinia),四视图零同步(Day 81/90)

Q4  Canvas 和 Vue 怎么共存?(★ 拓扑必考)
    → 三问法则 + 裁决表 + 桥契约 + markRaw(Day 85-88 全链)

Q5  ECharts 性能优化做过什么?
    → 按需引入 / animation:false / 分频 / merge setOption(Day 53-56/93)

Q6  内存泄漏排查过哪些?
    → 订阅成对 / rAF 取消 / resize observer / 三快照法(Day 69/82/89)

Q7  KeepAlive 原理和使用场景?
    → 缓存实例 + 激活协议;对照 v-show/无缓存三种架构数据(Day 82/84)

Q8  Pinia 和 Vuex 的区别?为什么选 Pinia?
    → 组合式 / TS / 无 mutation;真话:手写 Store 后才懂为什么需要它(Day 80-81)

Q9  项目里最难的一个 bug?
    → 个人弹药位(候选:Day 69 泄漏排查 / Day 81 Map 深侦听 / Day 87 脏检查)
    结构:现象 → 排查路径(二分定位)→ 根因 → 修法 → 沉淀

Q10 为什么先写原生版再重构 Vue 版?
    → 学习策略的诚实回答 + 对照实验的收获(Day 95 博文口述版)

弹药库纪律:每问答案控制在 2 分钟口述量;每答必带一个只有真做过的人才知道的细节(打点数字、坑的名字、复盘结论)。


四、模拟面试演练

4.1 三种演练方式(按可得分级)

青铜(自己来):对镜/录音,十问过一遍,回听找"嗯…啊…"和卡壳点
白银(AI 来):让 AI 扮演面试官连环追问(把 Q4 拓扑题追问到第三层)
黄金(真人来):找技术朋友视频模拟:15 分钟项目深挖 + 15 分钟基础八股

4.2 黄金局的评分表

□ 3 分钟项目介绍完整(背景/架构/亮点/结果四段式)
□ 追问到第三层没露怯(例:Q4 → markRaw 原理 → Proxy 成本 → 你的实测数据)
□ 至少一次主动给出量化数据(没等追问)
□ 承认了一个不知道的问题(诚实 + 给出排查思路,好于硬编)
□ 全程没有贬低任何技术/框架

五、常见坑点

坑 1:简历堆砌三周学的全部名词

Pinia/Router/KeepAlive/Teleport/markRaw/shallowRef 全塞进一句话——密度过高像抄的。一个条目最多 5 个技术点,其余留给追问空间。

坑 2:弹药答案背成文档腔

“通过组合式函数实现了逻辑复用”——没人这么说话。口述版要有人味:“我当时把翻牌器改成了 useRollingNumber,其实就是……”

坑 3:Q9(最难 bug)准备成炫技故事

面试官要的是排查过程不是结局。纯讲"我发现了 X 修好了"得零分;讲"现象诡异 → 我怎么二分 → 两次走错路 → 最后定位"得满分——走错路的部分是金子

坑 4:在线演示链接失效

简历上的 URL 面试官当场打开是 404——每次投简历前 ping 一遍演示链接(部署平台的免费额度会休眠,提前访问唤醒)。


六、自测挑战

T1 · 简历与弹药库(60 分钟)

第一节条目定稿(自查表逐行核弹药位);第三节十问十答成文入 docs/interview-ammo.md

T2 · 模拟面试(60 分钟)

至少完成白银级(AI 追问三层);有条件上黄金级,按 4.2 评分表互评。

T3 · 链接体检(10 分钟)

简历上所有 URL(演示站/博文/GitHub)逐一访问验证;免费托管平台的休眠策略记录在案。


七、总结

环节 要点
简历 一条条目 + 演进锚点——两个版本一个故事
弹药库 十问十答,每答带"真做过的细节"
演练 黄金局评分表——追问到第三层不露怯
Q9 结构 现象→二分→走错路→根因——走错路是金子
体检 链接活链 + 唤醒策略

求职装备就绪。明天做第 3 个月的毕业总结与作品链盘点。

评论