关于 Software Systems Atlas
Software Systems Atlas 是一套中英文软件系统学习资料。从一次请求出发,你可以沿着网络、应用代码和存储查看相关机制,也可以按卷学习各层的基础。
项目在解决什么问题
学习软件系统时,资料往往按语言、框架或单个组件分散。读者知道某个 API 怎么调用,却不一定能回答:请求怎样进入系统,代码怎样运行,数据怎样保存,服务为什么会失败,以及应该从哪里开始排查。
Software Systems Atlas 把这些主题放到同一张地图中,帮助读者建立分层理解:
- 开发环境、代码组织、测试和交付;
- CPU、内存、进程、线程、网络和存储;
- 数据库、缓存、消息、事务和分布式一致性;
- 身份、权限、密码学和软件供应链安全;
- 数据处理、模型训练、部署和治理。
面对陌生项目时,先画出系统边界,再追踪数据和控制流,用日志、测试、抓包或测量结果定位问题。每卷都为这类实际判断补一部分基础。
适合谁
- 初学者可以从开发工具和编程基础开始,并按检查点完成小项目;
- 应用开发者可以补网络、数据库、计算机系统和分布式基础;
- 有经验的工程师可以把本站当作主题索引,快速查定义、机制、边界和工程取舍;
- 教师或团队可以使用机器可读目录组织选修路径,但应先复核交付范围。
当前维护状态
仓库登记了 14 个课程卷和 509 个编号课次,中英文边界一一对应;编辑记录和自动检查覆盖两种语言,正文与示例仍在持续复核。整体发布状态仍为 guarded:自动校验不等于独立领域专家审校,也不表示 Java、Shell、SQL 等所有示例已在每种目标环境中执行。具体风险见产品就绪报告。
内容维护使用 AI 辅助整理、翻译和文字修订。编辑记录用于追踪文件版本与检查结果,不能据此认定所有技术结论都已由专家确认。涉及具体版本、协议或 API 时,请结合课次列出的原始资料核对。发现问题,可以在GitHub 仓库提出 issue,附上页面地址、出错段落和可复现步骤。
配合哪些资料学习
下面几项资料适合补充不同的学习环节。本站按系统主题组织短课;完整课程的作业、实验和专题练习仍需要另外安排。
| 你需要什么 | 可以配合的资料 |
|---|---|
| 选择计算机基础主题及教材,安排自学顺序 | Teach Yourself Computer Science 说明各主题的学习理由,并推荐书籍与课程 |
| 找大学公开课、先修要求和配套作业 | CS 自学指南 汇集课程及学习建议;源码仓库可查看更新和勘误 |
| 用图解和代码理解数据结构与算法 | Hello 算法 提供图解、示例和多语言实现;代码见源码仓库 |
| 练习系统设计问题,比较不同方案的取舍 | System Design Primer 提供主题索引、设计题和参考解答 |
作者
Steven Yang(杨弘晨)
Brandeis University CS BS '26。研究兴趣包括云系统、数据治理和数据库系统。
站点技术
- VitePress:文档框架;
- Vue:交互组件;
- MathJax:在构建时渲染数学公式;
- Markdown:内容格式;
- Cloudflare Pages:接收 GitHub Actions 校验并构建的站点文件。
许可证
MIT。可以使用、修改和分发这些内容,但需保留许可证和出处。