软考架构师备考刷题:从开源题库到单文件离线刷题系统

前面我写过 软考高级系统架构设计师到底有没有用复盘一下软考高级架构设计师的备考和应考过程,说的是这考试值不值得考、我自己怎么过的。这次换个角度,说一个更具体、更"工具流"的事儿:备考时怎么刷题。

刷题这事儿,绕不开真题

软考架构师的考试结构是上午综合知识(75 道单选)、下午案例、下午论文。综合知识看着简单,其实就是单选题,可架不住它面铺得太广:操作系统、网络、数据库、软件工程、系统架构设计、项目管理、安全、法律、专业英语,甚至嵌入式、新技术都来一点。你哪一块软,哪一块就给你扣分。我在数据库和前端方面就丢了不少粉。

这种考试,光看教材没用,必须得刷真题。原因是真题的"调调"和教材不完全一样,它考的是你怎么用那套知识,而不是你背没背下来定义。而且真题有重复率——不是原题照搬,是同一个知识点换个壳又出来了。你把历年真题里某个模块的题都刷一遍,那个模块的考点你心里就有谱了。

问题是真题散得到处都是。网上能搜到一堆 PDF,按年份分文件夹的那种,动辄十几年的题,打开一个是一个,想做错了想看解析还得翻答案文件。手机上更别提了,PDF 在小屏上翻来翻去能把人逼疯。

找到一个好题库

后来我在 GitHub 上找到一个仓库:Zhang-986/ruankao-architect-practice

它的厉害之处在于,作者把 2009 下半年到 2025 下半年这十几年(除 2019 下半年那份是扫描 PDF 没法结构化之外)的综合知识真题,外加 7 套 2026 年 5 月模拟卷,一共 1773 道选择题,全部整理成了一个机读的 JSON 文件,每道题带题干、4 个选项、正确答案、解析、所属知识模块、知识点、难度标签。

这就不是 PDF 了,是结构化数据。结构化数据意味着你能拿它干任何事——做一个网页刷题器、塞进 Anki、导进自己写的 app、喂给 AI 做错题诊断,都行。原仓库自己就配了一个多文件静态站点,支持继续练习、章节练习、真题套卷、错题重刷、收藏、AI 诊断导出,功能挺全的。

可它有一个对我特别不友好的点:要起本地服务器。

原仓库的 index.htmlfetch 异步读取 data/bank.json,这是常规做法,但浏览器对 file:// 协议下的 fetch 有 CORS 限制,双击打开就是白屏。README 里也明确写了"不要直接双击 index.html",得跑一句 python3 -m http.server 4173 再访问。

平时在电脑前还好,开个终端跑一句也不费事。可我想在手机上刷、想丢给不会用命令行的同事刷、想塞 U 盘里随身带着任何机器双击就开,这种需求它都满足不了。

把题库塞进一个 HTML

所以我 fork 了这个仓库,在它的基础上加了一个"离线单文件版"。

思路特别简单粗暴:用 Python 把那个 bank.json 读进来,序列化成 JS 字符串,直接注入到 <script> 标签里,让 QUESTIONS 变成一个普通的 JS 变量,而不是用 fetch 去拿。这样整个题库就和 HTML 是一体的了,浏览器解析 HTML 的时候题库已经在内存里,不需要任何外部请求,也不受协议限制。

代价是文件变大了,单文件 1.2MB 左右,因为里头装了 1773 道题的全部文字。但 1.2MB 在 2026 年真不算啥,手机浏览器秒开,U 盘随手传,网盘分享也方便。一次加载,永久离线。

刷题系统本身的功能是我之前给另一个考试做过的同款改的:

  • 📖 顺序刷题:1822 题从第 1 题刷到最后
  • 📝 模拟考试:抽 75 题,和单场考试题量一致,答完出分
  • 🎲 随机抽题:50 题快速测,适合碎片时间
  • ❌ 错题本:答错自动记录,可以一键重练,答对会从错题本移除
  • 📊 学习统计:各知识模块完成进度条 + 错题数
  • 📚 按知识模块练:12 个模块独立练,专攻薄弱项
  • 📅 按年份 / 模拟卷练:整套整套地刷真题

答题交互就是那种答完即时反馈、绿对红错、解析卡片直接展开的路数。答过的题再回来会恢复状态,中途退出有确认提示,答完整套出个得分圆环,≥80 绿、≥60 橙、否则红。

怎么用

Fork版本的仓库地址:https://github.com/cycleuser/ruankao-architect-practice

单文件版在 offline-single-file/ 目录,里头一个 index.html,下载下来双击就能开刷,题库已经内联进去了。不需要 Node,不需要 Python,不需要 npm install,不需要联网。U 盘拷走、微信传给同事、丢进网盘都能直接用。

如果你想要更完整的功能——案例分析、论文题、收藏夹、AI 诊断导出那些——就用仓库根目录的原版,按它 README 里说的起个本地服务器跑起来。两个版本互补:日常系统备考用原版,考前突击或随身带用单文件版。

致谢

题库数据是 https://github.com/Zhang-986/ruankao-architect-practice 整理的,上游好像是来自 https://github.com/wujiaming88/awesome-ruankao,标注的是 CC BY-SA 4.0,都是供个人学习交流用的,只是把题库用单文件 HTML 包了一层壳,让它更顺手一点。

刷题终究只是备考的一环,能帮你把零散的知识点过一遍、把薄弱模块找出来,但真正的功夫还是得落到理解上。真题刷多了你会发现,考来考去就那几个核心点,背选项是没用的,得真明白为什么是这个答案。刷题让你熟悉套路,理解才能让你在题目换了壳之后还能选对。

本来其实考虑整个在线链接点击即可用的,但后来想想,如果是要考架构的朋友,自己不可能连从GitHub上下载html到本地都搞不定。

刷起来吧。

Category
Tagcloud
Translate Ollama LlamaFactory Data Science Photography GIS Nonlinear Filtering Photo Tool ML Bayesian LLM Education School Network Tools Lens Poem CLI Book OpenWebUI ChromeBook GameTheory Rotation Linux PVE Game University QGIS Parenting opencode Mac Ubuntu Pyenv VibeCoding Kivy OSX-KVM CUDA Attitude Windows Python Scholar Junck Turing Data Memory Imbalance Qwen3 Architecture FckZhiHu Earth Science Math Web Communicate Computability Science Hackintosh Life VirtualMachine Hadoop RTL-SDR Learn Code Generation GPT-OSS Brent History IDE Cognition Algorithm Optimization PHD Thinking TUI Camera GlumPy Golden Section Discuss Microscope OPC Coding Traffic Psychology Geology Fibonacci Visualization Hack Code IMU AI C Story Mathematical Modeling Job Search Hardware Filtering Signal Processing Radio Learning Programming
Apps