跳到正文

案例研究PORTFOLIO.SYS2026

作品集:交互式驾驶舱

一个被设计成活的演示的网站:工程最佳实践就在访问者身边的生产环境中运行。

  • 3种语言EN • FR • ZH
  • CSP严格nonce • strict-dynamic
  • 8个页面

[01]挑战与背景

这个网站是我最完整的项目。从代码到部署在 Docker VPS 上,全部由我设计、开发并亲自运维。与其在简历里描述最佳实践,不如让它们在生产环境中运行,并让它们可被观察。

静态作品集只能声称具备某些能力,却无法证明。挑战在于:做一个网站,让它的安全性、交付质量和实时架构可以直接在界面中看到,并且由我在真实条件下持续维护。

[02]三类最佳实践

安全

  • 带 nonce 与 strict-dynamic 的严格 CSP
  • 服务端签名的挑战机制
  • 隔离的 socket-proxy 网络
  • CI 中的依赖审计

浏览器只执行带有服务器生成 nonce 的脚本(strict-dynamic),完全没有内联脚本。联系表单要求完成一个由服务端签名的挑战。对 Docker 守护进程的访问通过隔离网络中的 socket 代理完成,依赖在 CI 中接受审计。

质量与交付

  • Vitest 测试与 Playwright 端到端测试
  • CI 中的类型检查
  • 通过 HMAC webhook 自动部署到 Docker VPS
  • 多语言 SSR 预渲染(FR/EN/ZH)

Vitest 单元测试和 Playwright 端到端测试(Firefox)在 CI 中运行,同时进行类型检查和依赖审计。部署通过 HMAC 签名的 webhook 自动发往 Docker VPS。页面在服务端以三种语言(FR、EN、ZH)预渲染。

实时架构

  • 基于 Web Worker / OffscreenCanvas 的模拟
  • 面向 Overseer AI(NVIDIA NIM)的事件总线
  • 多 API 音频聚合器

两个模拟(小游戏)在 Web Worker 中借助 OffscreenCanvas 运行,不占用主线程。事件总线将它们的活动传给 Overseer AI(NVIDIA NIM),由它在终端中实时点评。音频播放器聚合了多个 API(详见下文)。

[03]驾驶舱中的证据

我不在这里重复这些内容,而是指向驾驶舱里真实的模块。在首页上,作品集卡片的每个标记都会让对应的模块亮起。

首页截图为英文版,取自网站的本地副本,使用演示数据。

  • SYS.上行节点(右栏):当前实际部署构建的编号与时间,由 CI/CD 流水线上报。
    SYS.UPLINK_NODE(上行节点)模块截图:部署状态在线、构建版本、构建时间和已同步的偏差,使用演示数据。
    SYS.UPLINK_NODE
  • Overseer 终端:AI 接收两个游戏的事件(模拟失败、手动接管)并实时点评。
    Overseer 终端截图:日志中一条带时间戳的 AI 消息。
    TERMINAL : OVERSEER_AI
  • 威胁情报节点:实时 CVE 数据流(GitHub Advisories、NVD)。
    CVE_WATCH 模块截图:CVE 数据流概览、最新警报和之前的四条警报,使用演示数据。
    CVE_WATCH
  • NAV.MAP(左栏):首页的高度计,被动指示当前所在的部分。
    NAV.MAP 截图,即左栏的页面位置标记:带刻度的标尺,标出首页的六个部分。
    NAV
  • 音频播放器:见下一节。
在首页查看这些模块

[04]音频工程

播放器是一个由服务器同步的电台:每位访问者收到的当前曲目和播放位置都由服务器时钟计算,播放链接带签名且有时效。两个音频元素轮流工作,让曲目无缝衔接。

封面和链接通过并行查询 iTunes 和 Deezer 的 API 获得,另附一个 YouTube 搜索链接。结果按标题和艺术家的匹配程度打分,只保留超过置信阈值的最佳结果。

[05]成果与局限

成果

  • 驾驶舱中显示的构建编号和时间来自 CI/CD 流水线的遥测数据,而不是手写文字。
  • 完整的拓扑(用户流、CI/CD、安全)在“系统架构”页面中详细说明。
  • 网站以三种语言提供 SSR 预渲染内容,并运行在没有内联脚本的严格 CSP 之下。

局限

  • 源码为私有:仓库与部署服务器的 CI/CD 链路耦合。欢迎在面试中向你介绍它以及背后的所有决策。
  • 驾驶舱为大屏幕设计。在小屏幕上,侧栏会折叠或隐藏,此时标记会跳转到系统架构页面。
// 下一个项目Organ:协作式项目管理格式:截获的外部信号

聊一聊

对这项工作有疑问,或想了解更多?欢迎联系我。

联系我