不用前端框架
页面是课程与题目驱动的,交互复杂度不高。省掉构建链后,改一个知识点只需改数据文件,不用等打包,也不会因为依赖升级而整站重写。
// ENGINEERING
我们相信技术选择会变成产品的性格。这里写的每一条都能在仓库里核对——包括我们刻意不用什么。
// STACK MATRIX
线上跑着什么,这里就写什么。没有「计划采用」的条目。
http 模块。静态资源白名单、目录穿越防护、请求体上限、统一错误文案。/api/course(带 ETag)下发并本地缓存;GitHub Actions 构建。// TRADE-OFFS
每一个「不用」都是一个决定,代价我们清楚。
页面是课程与题目驱动的,交互复杂度不高。省掉构建链后,改一个知识点只需改数据文件,不用等打包,也不会因为依赖升级而整站重写。
没有 npm 依赖就没有供应链风险,也没有「三年后装不上」的问题。代价是限流、验证码、PNG 编码这些要自己写——写了,也测了。
账号与进度放在自己的服务器上,不接第三方 BaaS。备份、迁移、合规都由自己负责;换来的是数据边界清楚、成本可预测。
// CREED
每节课人工编写、校对,题目配解析。课程数据有 18,000+ 项自动化断言守着——改坏一个知识点,测试就红。
深浅主题的对比度、动画性能、答案分布都有回归测试。这些看不见的地方,决定了产品摸起来的手感。
账号、学习进度、邀请码跑在自己的服务器上:Node 原生服务、systemd 守护、宝塔 Nginx 反代,不依赖第三方云。
这个页面上每个数字都能在代码仓库里找到出处。用户数、融资、排名——等真正发生了再写。
// OPEN SOURCE
课程数据、服务端、测试、Android 客户端在同一个仓库里。欢迎读、欢迎提 Issue——我们不刷 star,也不写下载量。
9 套测试的源码、课程数据结构、部署脚本都在这里。