于俊洋 — Java 后端 · 全栈开发 · 实时计算 · 线上运维

在自建服务器上并行运行 7 个站点,也在学怎么把它们跑得更稳。

大连职业技术学院 软件技术(大专),2024.09 – 2026.06,GPA 3.8 / 4.0,专业前 5%。所在地 辽宁 · 大连。GitHub grey7213。

线上服务

项目经历

全栈对话应用平台(自研)

2026.06 – 至今 · 全栈 · 独立负责 · 线上运维。纯标准库后端 + Web 端 + Android 客户端,线上运行中

一个自己从零写到上线的对话应用平台:后端不用任何 Web 框架,纯 Python 标准库 http.server 实现;前端是多页面 Web 应用;另有一个独立签名的 Android 客户端。目前在自建服务器上持续运行并迭代。

技术栈:Python 标准库、http.server、SQLite、Alpine.js、Android、Java、WebView、Nginx、systemd、Let's Encrypt、SMTP 中继

多租户 API 网关平台 — 生产化部署与运维

2026.06 – 至今 · 部署与运维(非原作者)。开源项目的生产环境落地、版本升级与灾备

应用本体为开源项目(Go 实现),我负责的是生产环境落地、版本升级、性能调优与灾备体系。

把一个开源的 API 网关项目落到自己的服务器上并长期运维:容器编排、反向代理、TLS、版本升级、数据库迁移校验、性能调优、备份与恢复。同一台机器上还并行跑着另外 7 个站点,所有变更都必须保证互不影响。

技术栈:Docker Compose、PostgreSQL、Redis、Nginx、Linux、systemd、Let's Encrypt、zstd、HTTP/2

艺脉乡传 — 乡村非遗智慧文旅平台

2026.06 – 2026.09 · 团队项目 · 我负责工程实现与部署。npm workspaces 多端单体:Web + 小程序 + 管理端 + API

团队参赛项目(智慧文旅创新创业竞赛 · 创新组)。策划与商业计划书为团队共同成果,我承担代码实现、构建流水线与服务器部署。

面向乡村非遗场景的多端智慧文旅平台,覆盖数字档案、课程学习、展陈导览、乡村资源、活动预约、社区互动与平台治理。npm workspaces 单体仓库,一套共享类型贯穿 Web / 小程序 / 管理端 / API 四端。

技术栈:React 19、TypeScript、Vite 6、Three.js、Express 4、Sequelize 6、MySQL、Zod、JWT、uni-app、Vue 3、Pinia、Vitest、Supertest、esbuild

素质学分申报与审核系统

2025.05 – 2025.06 · 全栈 · 独立开发。基于 RuoYi-Vue 的二次开发,接学院真实学分库

学生素质学分的申报与审核流程原本靠人工核对材料。这个系统把申报、佐证材料上传、分级审核与统计做成线上流程:学生提交 → 待审核 / 通过 / 拒绝三态流转 → 按学期与活动类型出统计。基于 RuoYi-Vue 脚手架二次开发,把时间投在业务模型上而不是重写权限菜单。

技术栈:Java、Spring Boot 2.5、RuoYi-Vue 3.9、MyBatis、MySQL 5.7、Druid、Redis、Vue 2、Element UI、uni-app

气象数据实时计算大屏

2026.05 · 课程小组项目 · 实时计算链路。Kafka → Flink → Redis 实时链路 + ECharts 大屏

课程小组项目。技术栈按代码实况列出:实际使用 Flink + Kafka + Redis + MySQL,未引入 Hadoop / Spark / Hive。

省级气象数据的实时采集、聚合与大屏可视化。采集端定时拉取多个气象数据源写入 Kafka,Flink 作业做省级聚合后写 Redis,后端 API 读 Redis 供大屏轮询,整套用 Docker Compose 编排(ZooKeeper / Kafka / Redis / MySQL / JobManager / TaskManager)。

技术栈:Java 8、Apache Flink 1.17、Kafka 3.6、Redis 7、Spring Boot 2.7、MySQL 8、Jedis、Docker Compose、Vue 3、Vite、ECharts 5

乡村非遗平台(零依赖前端原型)

2026.04 – 2026.05 · 前端 · 独立开发。手写 hash 路由 + Mock 数据层,无构建步骤

静态演示原型,数据来自浏览器内 Mock 层,不含生产后端。自身审计文档的结论是「可作为演示交付,但不是完整生产系统」——这条我照写。

非遗内容的发现、学习、体验、社群与展销闭环演示站。刻意不用任何框架与构建工具:一个 80 行的 Router 类做 hash 路由与参数匹配,动态 import 按需加载页面模块,带版本号做缓存击穿。

技术栈:原生 ES Module、手写 Router、Fetch API、AbortController、原生 CSS、高德地图 JS API、Nginx

辽境云游 — 文旅展示线

2026.05 – 2026.09 · 前端 · 独立实现。React 19 + Tailwind 4,11 条路由

项目脚手架源自 Google AI Studio 模板,页面、状态层、管理端与部署流水线由我实现。当前线上为纯静态构建,数据落在 localStorage,未接生产后端。

博物馆与城市文化线路的智慧文旅展示线:云展馆、AR 导览、预约、票券、线路、后台。状态层用一个 712 行的模块统一收口,11 个类型定义描述全部业务实体,接口调用带 1.2s 超时并自动降级到本地状态。

技术栈:React 19、TypeScript、Vite 6、React Router 7、Tailwind CSS 4、Motion、Lucide、qrcode、Express

技术栈

荣誉与证书

关于我

会独立把一个系统做完并交付

自研的对话应用平台从后端、Web 端、管理后台到 Android 客户端全部由我完成,后端不引任何 Web 框架、约 3450 行纯标准库实现,30 张表启动时自动迁移,目前在自建服务器上持续运行。独立负责的意思是没有人兜底——需求不清楚要自己想,线上出问题要自己排查。

真在运维生产环境,不只是写代码

自建服务器上并行运行 7 个站点,共用 Nginx 与 TLS,逐站独立证书与缓存策略。做过 HTTP/2 与缓存调优(请求排队累计 332s → 0.4s)、建过带哈希校验与真解压验证的备份体系。也搞出过一次生产事故并在 4 分钟内回滚——之后定了「改线上运行时前必须先在真实环境干跑」的规矩。

测量比猜测重要

优化那条高抖动链路时,同一份代码测出过 25s 也测出过 80s。所以后来的做法是:打桩替换线上 JS、复用登录态、交错跑 3 轮取中位数,结论优先看确定性指标(重定向数、请求数、排队累计)而不是墙钟时间。

写下来的东西要对得上代码

这个站上线前我把简历每一条都回去核了一遍代码:技术栈按实际 package.json 与 pom.xml 列,规模数字从路由与文件数里数出来,线上地址逐一 curl 过。有几条对不上的(比如某个项目实际只用了 Flink + Kafka 而不是整套 Hadoop 生态)就按代码实况改写,并在站上标注了边界。宁可内容少一点,也不写撑不过两轮追问的东西。

把 AI 当工程工具而不是玄学

日常用 ChatGPT / Claude / Codex 做需求拆解与问题排查,也知道它们在哪里不可靠——给出的库版本、API 签名、许可条款都要自己核。本站的字体许可就是我逐条读官方 LICENSE 确认的,没有一条来自模型记忆。也顺手写了个 CLI 排队保活工具解决自己的实际痛点。