diff --git a/Dockerfile b/Dockerfile index 855c3a3..d8ae60a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,7 @@ COPY img/ /usr/share/nginx/html/img/ COPY resume/ /usr/share/nginx/html/resume/ COPY resume.txt /usr/share/nginx/html/resume.txt COPY other/ /usr/share/nginx/html/other/ +COPY soe/ /usr/share/nginx/html/soe/ # 暴露端口 EXPOSE 80 diff --git a/nginx.conf b/nginx.conf index db0773a..84a9607 100644 --- a/nginx.conf +++ b/nginx.conf @@ -20,6 +20,12 @@ server { try_files $uri $uri/ /resume/index.html; } + # 央国企简历 + location /soe/ { + alias /usr/share/nginx/html/soe/; + try_files $uri $uri/ /soe/index.html; + } + # 其他简历导航页 location /other/ { alias /usr/share/nginx/html/other/; diff --git a/soe/index.html b/soe/index.html new file mode 100644 index 0000000..9184f63 --- /dev/null +++ b/soe/index.html @@ -0,0 +1,217 @@ + + + + + + 何朝晖 - 简历 + + + +
+ +
+
何朝晖
+
+
+
+ + 15671623703 +
+
+ + hezhaohui0807@163.com +
+
+ + ① 全栈开发 ② 后端开发 ③ 基础架构开发 +
+
+ + Go + Java + Vue + React +
+
+
+ 线上简历:http://47.121.181.112:8080/resume + 代码仓库:http://47.121.181.112:3000/wonder + CSDN:链接 + 文档站:链接 +
+
+
+ + +
+
教育经历
+
+
+ 武汉科技大学省部共建 + 计算机科学与技术 【国家级一流专业 | ESI 0.495%】 + 本科 +
+
2023-09 ~ 2027-06
+
+ +
+ + +
+
荣誉奖项
+
+
+
+
+ + "金山杯"华中地区高校第十八届程序设计邀请赛 + 三等奖 +
+ 证书 +
+
+
+ + 国际大学生程序设计竞赛(ICPC)湖北省赛 + 优秀奖 +
+ 证书 +
+
+
+
+
+ + 七牛云 XEngineer 开源实训项目 + 三等奖 +
+
+
+
+ + WaytoAGI 飞书全球黑客松(武汉站) + 创意奖 +
+
+
+
+
+ + +
+
实习经历
+
+
七牛云 | 上海七牛信息技术有限公司
+ 产品研发部-基础架构部 全栈开发 + 实习证明 +
2026-07 ~ 2026-08
+
+ + +
+
国家网络安全人才与创新基地 | 武汉金银湖实验室
+ 平台技术部 后端开发 + 实习证明 +
2025-11 ~ 2026-03
+
+ + +
+ + +
+
项目经历
+
+
+ Gen2D 游戏素材生成工具 + 全栈开发 【七牛云 XEngineer 开源项目 - 🥉三等奖】 +
+
2026-05 ~ 2026-06
+
+ +
+ AI 2D 游戏素材生成平台,用户输入文本提示词,自动生成风格一致的 Sprite、背景、UI 元素与动画帧流。 +
支持用户提供世界观文本、参考图片、标签映射以及反馈信息,输出具备一致性的可用素材。 +
+
+
主要工作:
+
    +
  1. 构建基于有向无环图的工作流,引入 critic 自省机制实现反馈增强,基于 ReAct 架构实现轮级思考,并支持 Agent 间通信。
  2. +
  3. 在分布式限流方案的选择上,对比计数器、漏桶、窗口等多种限流机制,选用 go-redis 实现分布式的令牌桶算法限流。
  4. +
  5. 为增强系统可观测性,基于 Gin 中间件以及自定义的任务协程池暴露指标,使用 Prometheus 收集,接入 Grafana 面板。
  6. +
  7. 在不同部署方案(单机与多机)部署上,支持基于 RabbitMQ 的共享任务队列,支持基于内存的自定义单机任务队列。
  8. +
  9. 对于用户偏好的多样性,支持基于渐进式披露的 skill 配置,用户反馈的动态注入,世界观文本 RAG 召回,实现上下文增强。
  10. +
+ +
+
+ ThumbUP 高并发点赞系统 + 后端开发 【哔哩哔哩技术团队《B站千亿级点赞系统服务架构设计》文章复现】 +
+
2025-10 ~ 2025-11
+
+ +
+ 中台化的高并发点赞系统,支撑多业务场景的点赞交互与数据查询。 +
应对亿级数据规模与万级QPS高并发流量,提供高可用、可扩展的基础服务。
+
+
主要工作:
+
    +
  1. 为避免缓存穿透,构建布隆过滤器与空值短缓存双重机制;为避免缓存击穿,将热点数据加互斥锁,确保单线程回源重建。
  2. +
  3. 基于 Caffeine + Redis 构建二级缓存,热点 Key 提升至本地缓存,避免冷数据污染,降低 Redis 访问压力。
  4. +
  5. Lua 脚本保证点赞原子性,10 秒时间片分桶暂存增量,定时任务批量落库,补偿任务每日兜底,保障最终一致性。
  6. +
  7. 对比CMS算法,采用HeavyKeeper实现Top-K探测,利用指数衰减淘汰冷Key,解决高频更新准确率问题,适配流量变化。
  8. +
  9. 单机场景利用字符串常量池特性,以业务前缀+用户ID为锁对象;多机场景基于 Redis 实现分布式锁,保障多实例数据一致。
  10. +
+
+ + +
+
专业技能
+ +
+
+ + diff --git a/soe/resume.css b/soe/resume.css new file mode 100644 index 0000000..02ad016 --- /dev/null +++ b/soe/resume.css @@ -0,0 +1,406 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: "Microsoft YaHei", Arial, sans-serif; + background: #ffffff; + color: #222222; + line-height: 1.4; + font-size: 12px; +} + +.page { + width: 794px; + min-height: 1123px; + margin: 0 auto; + padding: 12px 22px; + background: #ffffff; +} + +/* Header */ +.header { + margin-bottom: 8px; +} + +.name { + font-size: 28px; + font-weight: 800; + color: #222222; + margin-bottom: 3px; + letter-spacing: 1px; +} + +.contact-info { + font-size: 12px; + color: #222; + line-height: 1.45; +} + +.contact-line { + display: flex; + align-items: center; + gap: 18px; + margin-bottom: 1px; +} + +.contact-item { + display: flex; + align-items: center; +} + +.position-line { + display: flex; + align-items: center; + margin-top: 1px; +} + +.website-line { + display: flex; + align-items: center; + margin-top: 1px; +} + +/* Section */ +.section { + margin-bottom: 6px; +} + +.section-title { + font-size: 14px; + font-weight: 700; + color: #4478DF; + padding: 3px 10px; + border-left: 3px solid #4478DF; + background-color: #EEF3FF; + margin-bottom: 4px; + line-height: 1.3; +} + +/* Education */ +.edu-header { + display: flex; + justify-content: space-between; + align-items: baseline; + margin-bottom: 3px; +} + +.edu-school { + font-size: 14px; + font-weight: 700; + color: #222; +} + +.edu-badge { + display: inline-block; + font-size: 10px; + color: #4478DF; + border: 1px solid #4478DF; + border-radius: 4px; + padding: 1px 5px; + margin-left: 6px; + vertical-align: middle; + line-height: 1.4; +} + +.edu-major { + font-size: 13px; + color: #888; + margin-left: 10px; +} + +.edu-degree { + font-size: 13px; + color: #888; + margin-left: 10px; +} + +.edu-date { + font-size: 13px; + color: #888; + white-space: nowrap; +} + +.edu-items { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 2px 20px; + margin-left: 12px; + font-size: 13px; + color: #252525; + line-height: 1.45; + list-style: none; +} + +.edu-items li { + margin-left: 0; +} + +/* Honors */ +.honor-section { + display: flex; +} + +.honor-left { + width: 55%; + border-right: 1px dashed #ccc; + padding-right: 12px; +} + +.honor-right { + width: 45%; + padding-left: 12px; +} + +.honor-item { + display: flex; + align-items: baseline; + flex-wrap: wrap; + margin-bottom: 2px; + font-size: 13px; + line-height: 1.45; +} + +.honor-content { + color: #222; + flex: 1; + min-width: 0; +} + +.honor-right .honor-content { + display: flex; + align-items: center; +} + +.honor-right .honor-name { + flex: 1; +} + +.honor-name { + color: #222; +} + +.honor-badge { + display: inline-block; + min-width: 52px; + text-align: right; + margin-left: 4px; + font-size: 12px; + color: #888; + white-space: nowrap; +} + +.cert-link { + color: #4478DF; + text-decoration: none; + margin-left: 8px; + font-size: 13px; + white-space: nowrap; +} + +.honor-item .cert-link { + margin-left: 4px; +} + +.honor-date { + color: #888; + white-space: nowrap; + margin-left: 4px; + min-width: 56px; + text-align: right; +} + +/* Experience */ +.exp-header { + display: flex; + align-items: baseline; + margin-bottom: 1px; +} + +.exp-company { + font-size: 14px; + font-weight: 700; + color: #222; +} + +.exp-date { + font-size: 13px; + color: #888; + white-space: nowrap; + margin-left: 12px; +} + +.exp-position { + font-size: 12px; + color: #888; + flex: 1; + margin-left: 10px; +} + +.exp-items { + margin-left: 12px; + font-size: 13px; + color: #252525; + line-height: 1.45; +} + +.exp-items li { + list-style-type: disc; + margin-left: 6px; + margin-bottom: 0px; +} + +/* Project */ +.proj-header { + display: flex; + justify-content: space-between; + align-items: baseline; + margin-bottom: 1px; +} + +.proj-title-line { + display: flex; + align-items: baseline; + gap: 8px; +} + +.proj-name { + font-size: 14px; + font-weight: 700; + color: #222; +} + +.proj-role { + font-size: 12px; + color: #888; +} + +.proj-date { + font-size: 13px; + color: #888; + white-space: nowrap; +} + +.proj-link-line { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 12px; + margin-bottom: 2px; +} + +.proj-tags { + display: flex; + gap: 4px; + flex-wrap: wrap; +} + +.proj-tag { + display: inline-block; + font-size: 10px; + color: #4478DF; + border: 1px solid #4478DF; + border-radius: 3px; + padding: 0px 4px; + line-height: 1.4; +} + +.proj-link { + color: #4478DF; + text-decoration: none; +} + +.proj-intro { + font-size: 13px; + color: #252525; + line-height: 1.45; + margin-bottom: 3px; + border: 1px dashed #b0b0b0; + border-radius: 4px; + padding: 4px 8px; + text-align: center; +} + +.proj-desc { + color: #656464; + display: block; + text-indent: 24px; +} + +.proj-work-title { + font-size: 13px; + font-weight: 700; + color: #222; + margin-bottom: 2px; +} + +.proj-work-items { + margin-left: 12px; + font-size: 13px; + color: #252525; + line-height: 1.45; +} + +.proj-work-items li { + list-style-type: decimal; + margin-left: 12px; + margin-bottom: 0px; +} + +/* Skills */ +.skill-items { + margin-left: 12px; + font-size: 13px; + color: #252525; + line-height: 1.45; +} + +.skill-items li { + list-style-type: disc; + margin-left: 6px; + margin-bottom: 0px; +} + +/* SVG Icons */ +.svg-icon { + width: 14px; + height: 14px; + fill: #4478DF; + vertical-align: middle; + margin-right: 5px; + flex-shrink: 0; +} + +/* Company Logo */ +.company-logo { + height: 16px; + vertical-align: middle; + margin-left: 4px; +} + +.company-logo.small { + height: 10px; +} + +.company-logo.icpc { + height: 22px; +} + +.company-logo.hust { + height: 22px; +} + +.company-logo.qiniu { + height: 14px; +} + +/* Print styles - force background colors to display */ +@media print { + * { + -webkit-print-color-adjust: exact !important; + print-color-adjust: exact !important; + color-adjust: exact !important; + } +}