Java Notes

Home首页 / Phrasing话术语录

Phrasing · same thing, said by a senior话术语录 · 同一件事,老手怎么说

同一件事,换一种说法。同一件事,换一种说法。

Left is how a junior says it. Right is how a senior says the same thing — and the reasons under each card are what makes it land. Read them out loud.左边是菜鸟的说法,右边是老手的说法。每张卡下面的三条,是这句话为什么站得住。要出声念。

12 entries12 条read aloud都要念interview-ready背完就能说

01Phrasebook: same thing, two people对照表:同一件事,两个人怎么说

Do not memorize the whole sentence. Memorize the three bold words in each senior line — then say it in your own order.不要整句背。记住老手那段的三个关键词,然后用你自己的顺序讲出来。

01支付回调重复 —— 你给的那段,我精修过
菜鸟说「微信有时候会重复通知,我在代码里做了个判断,重复的就不处理了。」
老手说因为网络经常会抖动,微信支付可能因为超时重试发来多条回调。为了保证数据一致性,我们在数据库里通过行锁、乐观锁(带状态判断的 SQL),以及给交易号加唯一索引,从而实现了接口的幂等性,保证商品只发一次。
网络抖动超时重试数据一致性行锁乐观锁唯一索引幂等性
  • 先讲原因(网络抖动 → 超时重试),不是先讲自己的代码;面试官听到的是“他理解系统的边界”。
  • 把手段按从强到弱排:唯一索引(数据库兜底)> 乐观锁 CAS > 行锁,说明你知道哪一层最可靠。
  • 最后落在结果(只发一次货),一句话闭环,不拖泥带水。
02缓存和数据库不一致怎么办
菜鸟说「我改数据库之后就把缓存删掉。」
老手说我们走的是 Cache Aside:写库之后删缓存,不是更新缓存。删除失败会进延迟队列重试两次,兜底再靠过期时间;强一致场景不走缓存,直接读主库。
Cache Aside删缓存不更新缓存延迟双删补偿重试过期兜底强一致场景
  • 说清模式名(Cache Aside),面试官立刻知道你不是凭感觉写的。
  • 说清为什么删而不是更新:并发更新会写出脏数据。
  • 给出兜底(重试 + 过期),最后加一句“强一致就不走缓存”——加一句边界,可信度立刻上来。
03穿透、击穿、雪崩,一次说清
菜鸟说「就是缓存不管用了,请求都打到数据库。」
老手说这三种要分开看:穿透是查不存在的数据,每一次都落到库,用布隆过滤器或空值缓存挡;击穿是某个热点 key 过期瞬间被打爆,用逻辑过期 + 互斥重建;雪崩是大量 key 同时失效或 Redis 整体挂了,用随机过期时间 + 集群/本地缓存二级兜底。
布隆过滤器空值缓存逻辑过期互斥重建随机 TTL二级缓存
  • 先分类再给方案,这是老手的肌肉记忆;混着说会显得只是背过。
  • 每类只给一个最常用方案,别堆名词。
  • 结尾点出“三种的根因不同”,显示你理解的是机制不是清单。
04慢 SQL 怎么查
菜鸟说「我加了索引之后就不慢了。」
老手说先看慢查询日志定位 SQL,再用 explain 看 type、rows 和 Extra:全表扫描、filesort、回表太多分别对应不同改法——补联合索引、覆盖索引、或者把 where 条件改成能走索引的形式。改完用压测/线上慢查趋势验证,而不是只看执行时间降了。
慢查询日志explain全表扫描filesort联合索引覆盖索引回表验证
  • 顺序是定位 → 诊断 → 改 → 验证,四步都有,说明你有一套方法而不是零散经验。
  • 说出 explain 里真正要看的字段(type / rows / Extra),比“我用了 explain”强十倍。
  • 强调验证,这是区分“改完就完事”和“对结果负责”的地方。
05分布式锁怎么讲才算讲透
菜鸟说「我用 Redisson 加锁,加锁就没问题了。」
老手说锁的粒度按业务维度定,比如按 sku 加,不是按订单号;持锁时长只覆盖临界区,绝不在锁里做远程调用。Redisson 的 watchdog 负责续期,进程挂了租约自动过期;主从切换可能丢锁,所以最后仍要靠数据库兜底(唯一索引 / CAS)。
锁粒度临界区watchdog 续期租约过期主从切换丢锁数据库兜底
  • 先讲粒度,因为这是最常见的追问点(锁太粗会串行化)。
  • 主动说出锁的失效场景(主从切换),比被问出来强得多。
  • 结尾一定要落到“锁不是最终保证”,这是高级感的来源。
06为什么用 MQ
菜鸟说「用 MQ 可以异步,快。」
老手说三个作用分开说:削峰(下单峰值挡住,消费端按能力拉)、解耦(订单不关心下游有几个)、最终一致(本地消息表 + 重试 + 对账)。代价是重复消费和顺序问题,所以消费端必须幂等,关键业务按业务键分区保证顺序。
削峰解耦最终一致本地消息表对账重复消费幂等分区顺序
  • 讲作用讲三条就够,每条一个词,不展开成长篇。
  • 主动说代价(重复、乱序),并给出对应的解法——这是从“会用”到“负责”的分水岭。
  • 提到对账,说明你想的是“最终一定对得上”,不是“发出去就算完”。
07限流降级怎么做
菜鸟说「我们加了限流,超过就拒绝。」
老手说限流按维度分层:网关层挡总量、服务层按接口/用户挡突刺、核心链路单独配额;算法上单机用令牌桶平滑突发,集群用 Redis + Lua 保证原子。降级要提前定好哪些能力可以关(评论、推荐、非核心查询),并留开关和演练记录。
限流维度令牌桶Redis + Lua 原子独立配额降级开关演练
  • 先分层维度,再说算法,最后说降级——顺序本身就体现设计思路。
  • 说“提前定好”和“演练”,面试官会认为你经历过真实的流量事件。
  • 避免说“超过就拒绝”,那句话听起来像没考虑用户体验。
08线上出问题,你怎么排查
菜鸟说「我看了日志,发现是空指针,改了就上线了。」
老手说先看监控和告警确认影响面(哪个接口、多少量、从几点开始),再从链路追踪定位到具体节点,用日志和复现缩小范围;先止血(开关、回滚、扩容),再定位根因,最后补监控和回归用例,把这次故障变成可预防的。
影响面链路追踪先止血根因补齐监控回归用例
  • “先止血再根因”是运维常识,说出这句话立刻显得成熟。
  • 顺序里带量化(多少量、几点开始),说明你习惯用数据判断。
  • 结尾一定跟复盘动作,把故障变成系统能力。
09需求评审怎么发言
菜鸟说「这个需求能做,给我三天。」
老手说我先确认三件事:目标是什么(成功指标)、边界在哪(哪些不做)、依赖有哪些(第三方、数据、其他团队)。如果这三件不清楚,评估出来的工期也不可信。另外我建议先做最小可用的一版,上线看数据再加。
成功指标范围边界外部依赖最小可用上线看数据
  • 把“能做/不能做”换成“先确认三件事”,这是资深工程师的默认动作。
  • 强调工期不可信的条件,保护自己也保护团队。
  • 主动提分阶段交付,说明你关注的是业务结果而不是写完代码。
10代码评审说什么
菜鸟说「这个写法不好,改成我这样。」
老手说分成三类说:必须改(正确性、安全、并发问题);建议改(可读性、命名、重复代码);可以不改(风格偏好)。每条给出理由和影响,能给出示例代码就给示例,让人看懂“为什么”,而不是只服从我的习惯。
正确性/安全/并发可读性理由与影响示例代码不按个人偏好
  • 分级是 review 的核心技巧,避免把个人偏好说成必须改。
  • 强调“给出理由和影响”,这是协作能力而不是技术能力。
  • 最后一句“而不是只服从我的习惯”,是很多面试官想听到的成熟度。
11汇报工作 / 周会发言
菜鸟说「这周改了十几个 bug,写了几个接口。」
老手说这周主要推订单同步这条线:完成两个接口并对接联调,接口 P95 从 800ms 降到 240ms;风险是第三方对账文件晚到,我准备了本地补数脚本兜底;下周做灰度,先切 10% 流量观察。
主推一条线量化结果风险与兜底灰度下周计划
  • 结构固定:做了什么 → 结果多少 → 风险 → 下一步,十秒讲完。
  • 数字要跟自己的判断一起出现(从多少到多少),而不是罗列工作量。
  • 主动讲风险,比被追问“有问题吗”强得多。
12被问到不会的东西
菜鸟说「这个我没做过」「这个不太清楚」。
老手说这块我没有直接做过,我说下我会怎么验证:先看官方文档里的一致性模型,再用一个最小例子复现;如果时间允许我会先做压测对比再定方案。我比较确定的是结论方向——数据一致性优先,性能可以后补。
没直接做过怎么验证最小复现压测对比结论方向
  • “没做过”+“我会怎么验证”是标准答法,比硬编安全得多。
  • 给出最小验证路径(文档 → 小例子 → 压测),说明你有方法论。
  • 最后给方向性判断,让人看到你不是空手。

02How to use this page怎么用这一页

  1. Read the left column first — that is probably what you would have said.先读左栏——那大概就是你会说的话。
  2. Read the right column out loud, twice. The words must come out of your mouth.右栏出声念两遍。词必须从你嘴里出来。
  3. Cover the right column and retell it using only the keyword chips.盖住右栏,只看下面的关键词,用自己的话重讲一遍。
  4. If a keyword means nothing to you, that is the next lesson to read.哪个关键词看不懂,那就是你下一节该去看的内容。

Twelve cards, three minutes each — one evening. After that, every answer sounds different.十二张卡,一张三分钟,一个晚上。之后你所有回答听起来都不一样。

Go use it on a question →拿一道题去用 →