Prologue / 序
把代码当成可以反复打磨的器物 —— 在底层系统的呼吸里,慢慢寻找一种自己的诚实。
Zhang Bokun · MMXXVI
这一页是我的"序"。下面是我做过的事、用过的工具、走过的弯路 —— 全都写在中文里,英文标题只是为了让排版有呼吸。
没有 PPT 风的成就罗列,也不打"AI 全栈"的标签。如果你正在面试我、招我、或者只是想看看一个本科生怎么写代码 —— 往下翻就行,慢一点没关系。
About / 关于
A SOFTWARE ENGINEERING
STUDENT, BUILDING
HIGH-CONCURRENCY
C++ BACKENDS AND
AI-ASSISTED FULL-STACK
TOOLS — STITCHING THE
TWO TOGETHER.
一句话:写 C++ 服务端、用 AI 做趁手的工具,并把这两件事缝在一起。
在做的事 / In progress
我在西安财经大学读软件工程本科,正在做的事是高并发 C++ 服务端、AI 辅助的全栈工具, 以及把这两件事缝合在一起。
比起"颠覆"和"重塑",我更愿意把代码当成可以反复打磨的器物 —— 先把问题写清楚,再写代码;信任工具,但不让工具替我思考。
下午常常一个人在西安南郊的工位坐着,写 reactor、读 STL 源码、调日志库;晚上把当天的修补写成博客。 做的项目不一定大,但每一行都得能讲清楚为什么这么写。
Where the work takes me
从西安财经大学出发,这六条路把我带到了不同的工地。
Six paths · one origin.
1000 公里以外的清华操作系统训练营 / 字节青训营,
也算同一张地图上的两座坐标。
每条线后面的"D"是这块地我大概翻了多少天 ——
数字会变,方向不会。
按住任意一格,把它拖到下一个时段 —— 三年里我从"打开终端要查命令"走到"自己写网络库"。
drag through three epochs · 2023 → 2024 → 2026
那时候我刚学完 C 语言,对着 "Hello, World" 想象一座可以跑起来的城市。
从语法到工程的那段路 —— 第一次读 STL 源码,第一次明白"构建系统"到底是什么。
现在我在写自己的网络库,让 epoll 在事务里跑得安全;让 AI 帮我读日志,但不让它替我下结论。
— hold & drag / 按住拖动 —
高性能票务预约系统 · core developer · 2025.12 — 2026.06
在单机上把"几万个连接"压成"一个事件循环" —— 主从 Reactor + one loop per thread + 业务线程池;下单与取消放进事务里,靠 SELECT … FOR UPDATE 行锁根治超卖。已在 Linux 完成完整部署与压测。
真正学到的不是网络模型,是"读一遍 InnoDB 锁文档"和"用 wrk 压一晚上"的耐心 —— 这个项目教会我把每一条事务边界都写下来。
博客可视化管理工具 · full-stack · 2026.01 — 2026.05
给 Hexo 装一张可视化的脸 —— Markdown 编辑与实时预览、Front Matter 表单化、Git 集成、Hexo 命令一键执行。内置多模型 AI 助手(DeepSeek / GLM / OpenAI)做摘要、对话编辑与逐行 Diff 审查。Material 3 无边框桌面端,GitHub Actions 打包发布。
这是我第一次为"自己每天都要用的工具"写代码。痛点很具体:忘记 front matter、忘记图床路径、忘记 commit 顺序 —— 工具的好坏,就看它替你少记多少。
轻量级异步日志库 · solo · 2026.02 — 2026.04
为高并发服务端和资源受限环境写的日志库 —— 双缓冲交换 + 后台写线程,业务线程不等磁盘 IO;纳秒时间戳、文件大小与时间双重轮转、过期自动清理。printf 与流式两种 API;CMake 静态/动态库;已嵌进 HyperTicket 等项目当基础组件。
最早只是 HyperTicket 里的一个内部模块,发现"延迟刷盘"和"格式化代价"在压测里居然是大头之后,索性拆出来独立维护;从此每个项目都少写一份"打不出日志怎么办"。
通用题库组卷考试系统 · full-stack · 2025.11 — 2026.01 · live
开源考试平台 —— 题库、智能组卷、在线考试、RBAC、数据分析、自动化工作流;JWT 鉴权,Docker Compose 部署,预留 Ollama 接口为后续主观题批阅与难度分级铺路。线上版本:uqbank.shanchuann.cn。
第一次把"立项 → 上线 → 有人在用"这条全链路独立跑通的产品。后续围绕真实用户反馈做了三轮迭代,也是这次让我明白"上线"只是中间检查点,不是终点。
Arsenal / 工具箱
从 C 开始,然后 C++11/17/20。STL 容器、智能指针、移动语义、模板、lambda 这些我用着不慌。Linux 系统编程是顺着 C++ 这条线自然走过来的 —— 内核一直在问我答不上的问题,我得回去补课。最近的练手清单:用 std::ranges 重写一遍 STL 算法、用 coroutine 抽象 epoll、用 perf 看自己写的反应器到底慢在哪。
Linux 下的进程/线程模型、IO 多路复用、事件驱动框架。TCP/IP 四层和 HTTP/HTTPS 都吃过亏才搞明白 —— 粘包、心跳、自定义协议这些是 HyperTicket 教我的。MySQL 的事务隔离与 InnoDB 锁也是这一路顺出来的。Redis 主要用来兜热点和做幂等键;这一块我还在补,缓存击穿/穿透/雪崩这些课本概念在生产里只是冰山一角。
Claude Code 是日常同事。LangChain 用来串调用与外部工具,Ollama 在本地跑小模型,Prompt 是当作"接口契约"在维护。我会让 AI 帮我读日志、复盘 bug、生成脚手架 —— 但所有架构决策和最终判断留给人。Hexo Viz 里的多模型助手就是按这个思路写的:不让 AI 替你提交,先让它写出 Diff,你逐行点头再走。
Git 用得多就总会练顺。CMake、Gradle 跨平台搭项目;GitHub Actions 把构建、测试、发布串起来;Docker / Docker Compose 是给同事跑起来最稳的方式;GDB 是真正出问题时的伙伴。我习惯把每个项目的"一行起步指令"写进 README ——docker compose up 就能跑的项目,比贴十张架构图都有说服力。
Construction / 时间表
软件工程本科入学。系统读 CSAPP、操作系统、计算机网络、数据库原理这一线。打基础的两年 —— 现在回看,慢点反而值得:先把"为什么这样设计"搞明白,工程上才能少踩坑。
11 月开始 UQBank,12 月开始 HyperTicket;穿插 ChronoLite 和 Hexo Viz。数模竞赛拿到陕西赛区一等奖。这段时间最大的变化是开始用工程的方法做项目 —— 写 README、写测试、把仓库公开,让陌生人能复现我的工作。
毕业。在那之前要把 HyperTicket 跑完压测、把 ChronoLite 拆成独立 release、把本地小模型嵌进运维链路里。求职方向偏向 C++ / 后端 / Infra;如果有合适的实习机会愿意提前进入工业环境磨一段。
Open-source 开源项目
0
ACTIVE REPOS ON GITHUB 14 个活跃仓库 + 6 个教学仓库 · 共 20 个,公开维护中
Awards 省赛奖项 · 队长
SHAANXI · TEAM LEAD 两项省赛奖项 · 均为队长
Camps 训练营
0
THREE TRAINING PROGRAMS 清华 rCore OS · 字节青训营 · 携程前端训练营
Live 线上产品
0
IN REAL USE uqbank.shanchuann.cn · 正在被使用
School / 学校
软件工程本科 · 2023.09 — 2027.06 · 本科在读。
财经类院校里的工科生:上午听别人讲计量经济学,下午自己读 CSAPP 的并发章节。 学校本身不是顶尖工程院校,但它给了我一个相对安静、能长期专注的环境 —— 剩下的"卷",靠自己卷。
基础课程是地基 —— 我在这里把操作系统、计算机网络、数据库原理一寸寸读厚。
课外把清华 rCore 训练营、字节青训营这两块外部材料补进来, 算是给"软工本科生该懂的东西"加了两根额外的钢筋。
Field notes / 博客近作
博客更像是把当天踩过的坑写成"以后能复用的笔记"。题材偏 C/C++、操作系统、网络、数据库、以及 AI 辅助开发的一些小观察 —— 基本都是中文,结构松散但足够诚实。
如果你看到了这里 —— 写邮件、提 issue、甚至打电话都行。回得不快,但一定回。
实习 / 校招 / 开源合作 / 技术讨论都欢迎;只要你愿意把问题写清楚,我就愿意花时间回。
Frequently asked
因为我先碰到了让我兴奋的问题。第一次看到 epoll 把"几万个连接"压成"一个事件循环"那一刻,我知道接下来几年得跟着这条路走下去。卷不卷是别人的事;我只想把眼前这个值得做的问题做完。
会,如果你把它当成"答案生成器"。我把 Claude Code 当一个比我快、比我没耐心、也比我没立场的同事 —— 它给我节奏,我给它判断。HyperTicket 的事务隔离、ChronoLite 的双缓冲设计,是我和它来回吵出来的,不是它单方面递给我的。
因为我在本科期间就用上了别人写的 jsoncpp、libevent、Hexo —— 我至少得还回去一点点。也因为开源是我目前唯一能拿出来给陌生人审查的"工作记录"。代码摆在那儿,谁都能验真,比履历上的形容词扎实得多。
短期:把 HyperTicket 跑完一轮认真的压测、把 ChronoLite 拆成独立 release。中期:把本地小模型嵌进运维链路里 —— 让 AI 帮我读日志、帮我做事后复盘,但所有决策权留给人。长期还没想明白,先把上面两件做扎实再说。
邮件 1537521192@qq.com 是我最常看的。技术问题直接在 GitHub issue 提,公开讨论对大家都好。电话 +86 130 0856 9663 留给真的紧急的事。我回复不快但一定回。
博客主体跑在 Hexo + Butterfly 上,这一页 about 是手写的单文件 HTML —— GSAP + Lenis 做动画,IntersectionObserver 处理懒加载与渐入,所有图片走 CDN 兜底。配色、字体、间距全部用 CSS 变量挂在 :root 上,方便回头一处改全局改。整页约 3000 多行,写的时候 Claude Code 是我的"对照同事" —— 但每一段标点都是我自己点头之后再合并的。
方向偏 C++ / 后端 / 系统软件 / Infra;对 AI 工程(Agent · 评测 · 本地化部署)也有持续投入。我做事偏慢、偏认真,不擅长把简历写得花里胡哨;但你能从 GitHub 上读到我每一个 commit 的"心智过程"。如果你的团队需要一个愿意自己读源码、自己写文档、自己复盘的本科生 —— 我大概率是个还不错的选项。