Java 简历 v2(Spring Boot 后端方向)
% !TEX program = xelatex
% ============================================================
% Java 后端简历 v2 | 吴晨 | 2026-09
% 用法:替换原 java简历.tex 中的正文部分,保留你自己的 resume.cls / fonts / avatar
% 待办:全篇 % TODO 注释处需要你填入真实测量值,未测出来前不要编
% ============================================================
\documentclass{resume}
\usepackage{graphicx}
\usepackage{multirow}
\usepackage{zh_CN-Adobefonts_external} % Simplified Chinese Support using external fonts (./fonts/zh_CN-Adobe/)
\usepackage{linespacing_fix} % disable extra space before next section
\usepackage{cite}
\usepackage{tabu}
\begin{document}
\pagenumbering{gobble} % suppress displaying page number
\noindent
\begin{minipage}{0.8\textwidth}
\begin{minipage}{1.15\textwidth}
\centering
{\Large\scshape 吴 晨} \\[0.8ex]
{\normalsize
\email 邮箱:iamwuch@outlook.com \hspace{1.5em} \phone 电话:153-3593-8771 \\
求职意向:后端研发 \hspace{0.5em}|\hspace{0.5em} 期望城市:武汉(可立即到岗)/ 深圳 / 苏州 / 杭州}
\end{minipage}
\end{minipage}%
\begin{minipage}[c]{0.2\textwidth}
\raggedleft
\includegraphics[width=0.88in]{avatar}
\end{minipage}
% ⚠️【本次修复】原来的 \vspace{-3em} 是负间距,已删除。
% 原因:v1 的页眉只有 4 行,而头像高约 0.88in(≈63pt),
% 其实是「头像的下半部分」在垫高整个 minipage,所以 -3em 看起来刚好。
% v2 加进 GitHub / 博客 / 期望城市后页眉变成 6 行,文字块比头像还高,
% 最后一行(求职意向)就贴到了 minipage 的底部 ——
% 此时固定的 -3em 会把下面的 \section{教育经历} 往上拉进页眉,造成重合。
% 修法:① 把 GitHub 与博客合并为一行,页眉从 6 行压回 4 行;
% ② 改用正值间距,重合在结构上不再可能发生。
% 想更紧凑就调小 0.6em,或继续减页眉行数 —— 不要再改回负值。
\vspace{0.6em}
% ============================================================
\section{\faGraduationCap\ 教育经历}
\normalsize
\datedsubsection{{武汉传媒学院} \hfill 本科 · 软件工程}{2022.09 -- 2026.06}
\begin{itemize}
\item GPA 3.6/4.0,专业排名 前 5\%
\item 主修课程:数据结构与算法、计算机组成原理、操作系统、数据库原理
\end{itemize}
% ============================================================
\section{\faCogs\ 技能和工具}
\begin{itemize}[parsep=0.8ex]
\normalsize
\item 熟悉Java集合、I/O 流、Stream 流、反射机制
\item 熟练使用 Spring、Spring MVC、MyBatis、Spring Boot,了解 Spring Cloud 微服务体系
\item 熟练使用 MySQL,掌握事务、索引、锁、日志,熟悉 Redis 常用数据类型与应用场景,
以及持久化、过期淘汰策略与分布式锁,了解缓存穿透、击穿、雪崩的解决方案
\item 熟悉 RabbitMQ、RocketMQ,用于业务异步处理与模块解耦
\item 了解HTML5、CSS3、JavaScript,熟练使用Vue3,能用 Element Plus、Ant Design、Tailwind CSS 独立完成前端页面开发
\item 熟练使用 Git、Maven,了解 Docker、Linux 常用命令
\item 熟练使用 Claude Code、OpenCode 等编码 Agent,创建 skill 与 MCP 工具扩展 Agent 能力,用 spec 驱动规范需求到实现的流程
\end{itemize}
% ============================================================
\section{\faBriefcase\ 工作经历}
% ⚠️ 日期必须用真相。原 v1 写的 2026.6--2026.8 多算了 2 个月。
% 若实际 6 月内就结束,改成 2026.06;若离职手续办到 7 月,保留 2026.07。
% 无论哪种,都不要写 8 月。面试前准备好一句离职原因(见《求职行动清单》话术)。
\datedsubsection{\textbf{字节牛信息技术有限公司} \hfill Java 开发工程师}{2026.06 -- 2026.07}
\textbf{技术栈:} Java、Spring Cloud、MySQL
\begin{itemize}[parsep=0.5ex]
\item 参与公寓租赁 SaaS 标准版迭代,负责公告推送、合同管理,以及租务全流程包括退租、续租、换房的开发任务
\item 与前端协同完成接口对接与联调,按接口文档完成参数校验、异常码与返回结构对齐
% TODO(行为数字,比性能数字好拿):本段期间提了多少个 commit / 交付了多少个接口 / 参与了多少个需求迭代
% 例:累计交付 X 个接口、参与 Y 个需求迭代 —— 去 Git 提交记录里数
\end{itemize}
\datedsubsection{\textbf{嗨好科技有限公司} \hfill PHP 开发实习生}{2025.11 -- 2026.02}
\textbf{技术栈:} ThinkPHP、MySQL、Redis
\begin{itemize}[parsep=0.5ex]
\item 负责商品、运营、数据看板模块的维护与新需求开发
\item 用 FFmpeg 截取视频首帧作为封面图渲染,设计并实施技术优化方案修复 iOS 端视频黑屏无法渲染的问题
\item 实现 KPI 统计、转化漏斗分析、排行榜数据可视化
\item 参与供应链项目框架升级,从 ThinkPHP 5 到 ThinkPHP 8 迁移,完成各模块适配
% TODO(行为数字):迁移涉及多少个控制器 / 模块?修掉多少个 deprecated 调用?
% 例:迁移 X 个 Controller、清理 Y 处 TP5 废弃 API —— 去迁移的 diff 里数
\end{itemize}
% ============================================================
\section{\faCubes\ 项目经历}
\datedsubsection{\textbf{newPan 分布式存储系统(个人项目)}}{2024.11 -- 2025.03}
\textbf{技术栈:} Spring Boot、MySQL、Redis、Caffeine、RocketMQ、Vue3
\begin{itemize}[parsep=0.5ex]
\item 以 Caffeine 本地缓存 + Redis 分布式缓存构建两级缓存,实践多实例部署后
为解决本地缓存不一致,将元信息缓存下沉到 Redis
% TODO(好测):ab -n 1000 -c 50 压文件元信息接口,对比"开缓存 / 关缓存"两次
% 例:文件元信息接口 P95 延迟 XXXms → XXms,Redis 缓存命中率 XX%
\item 抽象统一存储接口,落地本地、FastDFS、阿里 OSS 三种引擎,
OSS 文件自动转存用线程池异步化,缩短上传接口响应时间
% TODO:for 循环 curl -w "%{time_total}" 上传 10 次取均值,异步化前后对比
\item 用 Bloom Filter 预校验分享链接,无效链接不再落到数据库
% TODO:压 1000 次无效链接,对比 Bloom Filter 开关前后 MySQL Com\_select 增量
\item 用 Spring Cloud Stream + RocketMQ 重构分享、删除的事件通知,
主链路不再同步等待下游
\item 用 ThreadLocal 在认证过滤器建立运行时上下文,避免凭证重复解析
\end{itemize}
\datedsubsection{\textbf{流浪动物收容平台(毕业设计)}}{2026.01 -- 2026.04}
\textbf{技术栈:} Spring Boot、MySQL、Redis、Vue3、WebSocket
\begin{itemize}[parsep=0.5ex]
\item 搭建FAQ 知识库检索从匹配结果注入 Prompt 上下文到 LLM 生成回答
的问答链路,替代固定话术式客服
% TODO(核心数字,最值钱,一晚能测完):
% 造 60 条测试 query(20 条 FAQ × 3 种不同问法),统计 Top-1 / Top-3 命中率
% 例:FAQ 检索 Top-3 命中率 XX%
\item 增加输出自校验与兜底话术,回答未命中知识库时走降级分支,避免模型自由发挥
% TODO:统计"答非所问"比例变化,例:从 X/50 降至 Y/50
\item 基于 WebSocket 实现客服在线聊天对话,人工回复消息客户端同步显示回复状态
\item 基于动态表单和状态机实现审核节点与审核人的可配置流转,
新增审批场景无需改代码,旧有审批流程采用审批模板快照
\item 实现信息发布、申请提交、领养跟踪全流程
% TODO:本模块接口数 / 覆盖的业务状态数,例:X 个接口、Y 个状态流转
% TODO:这一步性价比最高。部署到你的博客站,HR 点开就能用 = 学历之外的理由
\end{itemize}
\vspace{0.2cm}
% ⚠️ 原 v1 的「项目演进与优化」五条(单体→分布式 / 本地缓存→分布式缓存 / 本地锁→分布式锁 /
% 本地事务→分布式事务 / 性能优化)已整段删除。
% 原因:零数字、零场景、零取舍,读起来就是把一份学习路线的知识点清单贴过来,
% 反而会让面试官怀疑这个项目是不是你自己做的。
% 上述每一条,都已经用"具体场景 + 待填数字"的方式拆进了对应 bullet 里。
% ============================================================
\section{\faTrophy\ 奖项证书}
\begin{itemize}
\item 校二等奖学金(2025)\hspace{2em} 校三等奖学金(2023)
\item CET-4 证书
% TODO(高性价比):接下来 2 个月补 1 项能写进简历的竞赛 / 开源贡献
\end{itemize}
% ============================================================
% 已删除:原 v1 的「自我评价」整段。
% 原因:"能快速融入团队""热爱编程""喜欢专研各类软件插件应用"三条
% 可以一字不改地贴在任何人简历上,零信息量且占版面。
% 想证明学习能力和技术热情,用 GitHub commit 记录 + 一篇技术博客,比十句自我评价有效。
\end{document}更新日志
2026/10/4 21:23
查看所有更新日志
c155e-重组知识库目录于
