Skip to content

STAR 法则:如何描述项目经历

STAR 法则不只是面试答题框架,更是写简历项目描述的最佳武器。

什么是 STAR 法则

STAR 是四个英文单词的首字母缩写:

字母含义说明
SSituation背景:项目在什么场景下启动
TTask任务:你的职责是什么,负责什么模块
AAction行动:你具体做了什么,采用什么技术方案
RResult结果:最终带来了什么效果(最好量化)

核心逻辑:先让人理解「为什么做」,再说明「做了什么」,最后展示「做成了什么」。

简历 vs 面试:用法的微妙区别

场景用法重点
简历重点在 A(行动)R(结果),S 和 T 压缩到一句话
面试四步完整展开,尤其是 T 和 A,要引导到自己的核心贡献

简历写法:精简版 STAR

简历空间有限,要用最少的字传达最多的信息。

对比:不用 STAR vs 用 STAR

不用 STAR(流水账):

在项目中负责用户模块的开发,使用 Redis 做缓存,使用 MQ 做消息通知。

用 STAR(精简版):

针对高并发场景下用户查询热点问题,设计并实现了多级缓存方案(本地缓存 + Redis 分布式缓存), 配合缓存预热与异步刷新机制,使接口 QPS 从 1200 提升至 8500,P99 延迟从 180ms 降至 28ms。

对比非常明显:第二个版本不仅说清楚了做什么,还量化了价值。

模板

【动词】+ 【具体工作内容】+ 【用了什么技术/方案】+ 【带来了什么量化结果】

常见动词:

  • 设计设计了 XX 方案,解决了 XX 问题
  • 实现实现了 XX 功能,支持 XX 规模
  • 优化优化了 XX 指标,从 XX 降低/提升到 XX
  • 重构重构了 XX 模块,代码行数减少 XX%,可维护性提升
  • 引入引入了 XX 技术栈,解决了 XX 痛点
  • 主导主导了 XX 项目,跨团队协调 XX 人

面试口头表达:完整版 STAR

面试中回答项目问题时,STAR 四个维度都要展开。

范例:如何回答「介绍一个你做过的有挑战的项目」

S(背景):

我们公司当时日均订单量大概 30 万,峰值 QPS 能到 5000 左右。但订单确认接口的平均响应时间是 200ms,99 线更是到了 800ms,用户投诉比较多。

T(任务):

我作为后端负责人,承接了这个接口性能优化的任务,目标是把它优化到 50ms 以内。

A(行动):

我首先做了性能分析,用 Arthas 定位到瓶颈在数据库查询,单次请求平均触发了 8 次数据库 IO,其中有个关联查询耗了 100ms。

确定了瓶颈之后,我做了三件事:

第一,对高频查询加了 Redis 缓存,设置 5 分钟 TTL,预热了 Top 100 热数据;

第二,把那个慢查询拆成了两步简单的查询,用并行请求合并结果;

第三,对非核心的库存校验消息做了异步化,用 RocketMQ 解耦。

改完之后又做了一轮全链路压测,在 8000 QPS 的情况下验证了稳定性。

R(结果):

最终接口 P50 降到了 18ms,P99 降到了 45ms,达到了目标。另外这个缓存方案后来被推广到了用户模块和商品模块,整体接口 RT 降低了 60%。

常见问题与注意事项

Q:项目经历太多了,怎么选?

选择标准按这个优先级:

  1. 技术有深度:涉及原理、源码、设计模式
  2. 规模有量级:数据量大、高并发、分布式
  3. 结果有量化:性能提升、成本降低、效率提升
  4. 个人有贡献:是你主导或核心参与,而不是打酱油

Q:结果不好怎么办?

很多项目的结果可能不理想,比如系统最终没做起来。这种情况:

  • 可以换角度讲:「虽然项目因为 XX 原因暂停了,但我在 XX 方面的设计经验对后续项目很有帮助」
  • 或者讲过程中的学习:「通过这个项目我深入理解了 XX,为后续 XX 项目打下了基础」

Q:团队合作的项目怎么写?

明确区分「我做了什么」和「团队做了什么」:

  • 负责用户下单模块,基于 Spring Cloud 实现,QPS 支撑 5000+
  • 团队其他同学负责商品模块和支付模块

不要把团队成果全归功于自己,也不要完全不提自己的贡献。

总结

STAR 法则的核心心法:

好的项目描述 = S(让人相信这件事值得做)+ A(让人看到你的能力)+ R(让人记住你的价值)

写简历时,重点练三个动作:

  1. 每个项目总结出 1-2 个量化数据
  2. 每个数据背后有 1 句话的技术方案说明
  3. 准备 2-3 个深度追问的答案(面试时会问)

基于 VitePress 构建