# SUMMARY * [简介](./README.md) * [开篇词 | 怎样成长为优秀的软件架构师?](./docs/89668.md) * [01 | 架构设计的宏观视角](./docs/90170.md) * [02 | 大厦基石:无生有,有生万物](./docs/91007.md) * [03 | 汇编:编程语言的诞生](./docs/91425.md) * [04 | 编程语言的进化](./docs/92419.md) * [05 | 思考题解读:如何实现可自我迭代的计算机?](./docs/93130.md) * [06 | 操作系统进场](./docs/93315.md) * [07 | 软件运行机制及内存管理](./docs/93802.md) * [08 | 操作系统内核与编程接口](./docs/94486.md) * [09 | 外存管理与文件系统](./docs/94991.md) * [10 | 输入和输出设备:交互的演进](./docs/95660.md) * [11 | 多任务:进程、线程与协程](./docs/96324.md) * [12 | 进程内协同:同步、互斥与通讯](./docs/96994.md) * [13 | 进程间的同步互斥、资源共享与通讯](./docs/97617.md) * [14 | IP 网络:连接世界的桥梁](./docs/98406.md) * [15 | 可编程的互联网世界](./docs/99184.md) * [16 | 安全管理:数字世界的守护](./docs/99636.md) * [17 | 架构:需求分析 (上)](./docs/100140.md) * [18 | 架构:需求分析 (下) · 实战案例](./docs/100930.md) * [19 | 基础平台篇:回顾与总结](./docs/101498.md) * [20 | 桌面开发的宏观视角](./docs/102260.md) * [21 | 图形界面程序的框架](./docs/104436.md) * [22 | 桌面程序的架构建议](./docs/105356.md) * [23 | Web开发:浏览器、小程序与PWA](./docs/106156.md) * [24 | 跨平台与 Web 开发的建议](./docs/107128.md) * [25 | 桌面开发的未来](./docs/107954.md) * [26 | 实战(一):怎么设计一个“画图”程序?](./docs/108887.md) * [27 | 实战(二):怎么设计一个“画图”程序?](./docs/109592.md) * [28 | 实战(三):怎么设计一个“画图”程序?](./docs/110460.md) * [29 | 实战(四):怎么设计一个“画图”程序?](./docs/111289.md) * [30 | 实战(五):怎么设计一个“画图”程序?](./docs/112106.md) * [31 | 辅助界面元素的架构设计](./docs/113569.md) * [32 | 架构:系统的概要设计](./docs/117783.md) * [33 | 桌面开发篇:回顾与总结](./docs/118674.md) * [34 | 服务端开发的宏观视角](./docs/120049.md) * [35 | 流量调度与负载均衡](./docs/125952.md) * [36 | 业务状态与存储中间件](./docs/127490.md) * [37 | 键值存储与数据库](./docs/129097.md) * [38 | 文件系统与对象存储](./docs/131310.md) * [39 | 存储与缓存](./docs/132656.md) * [40 | 服务端的业务架构建议](./docs/134384.md) * [41 | 实战(一):“画图”程序后端实战](./docs/135789.md) * [42 | 实战(二):“画图”程序后端实战](./docs/136884.md) * [43 | 实战(三):“画图”程序后端实战](./docs/138400.md) * [44 | 实战(四):“画图”程序后端实战](./docs/140069.md) * [45 | 架构:怎么做详细设计?](./docs/142032.md) * [46 | 服务端开发篇:回顾与总结](./docs/144263.md) * [加餐 | 如何做HTTP服务的测试?](./docs/144801.md) * [47 | 服务治理的宏观视角](./docs/144803.md) * [48 | 事务与工程:什么是工程师思维?](./docs/148208.md) * [49 | 发布、升级与版本管理](./docs/150346.md) * [50 | 日志、监控与报警](./docs/152342.md) * [加餐 | 怎么保障发布的效率与质量?](./docs/154246.md) * [51 | 故障域与故障预案](./docs/155500.md) * [52 | 故障排查与根因分析](./docs/157416.md) * [53 | 过载保护与容量规划](./docs/159848.md) * [54 | 业务的可支持性与持续运营](./docs/161467.md) * [55 | 云计算、容器革命与服务端的未来](./docs/163112.md) * [56 | 服务治理篇:回顾与总结](./docs/164623.md) * [57 | 心性:架构师的修炼之道](./docs/166014.md) * [58 | 如何判断架构设计的优劣?](./docs/167844.md) * [59 | 少谈点框架,多谈点业务](./docs/169113.md) * [60 | 架构分解:边界,不断重新审视边界](./docs/170912.md) * [加餐 | 实战:“画图程序” 的整体架构](./docs/172004.md) * [61 | 全局性功能的架构设计](./docs/173619.md) * [62 | 重新认识开闭原则 (OCP)](./docs/175236.md) * [63 | 接口设计的准则](./docs/176852.md) * [64 | 不断完善的架构范式](./docs/177746.md) * [65 | 架构范式:文本处理](./docs/178874.md) * [66 | 架构老化与重构](./docs/180396.md) * [67 | 架构思维篇:回顾与总结](./docs/181599.md) * [68 | 软件工程的宏观视角](./docs/182924.md) * [69 | 团队的共识管理](./docs/183900.md) * [70 | 怎么写设计文档?](./docs/185234.md) * [71 | 如何阅读别人的代码?](./docs/186399.md) * [72 | 发布单元与版本管理](./docs/187641.md) * [73 | 软件质量管理:单元测试、持续构建与发布](./docs/188797.md) * [74 | 开源、云服务与外包管理](./docs/190127.md) * [75 | 软件版本迭代的规划](./docs/191679.md) * [76 | 软件工程的未来](./docs/192408.md) * [77 | 软件工程篇:回顾与总结](./docs/193035.md) * [结束语 | 放下技术人的身段,用极限思维提升架构能力](./docs/193173.md) * [结课问卷获奖用户名单](./docs/198432.md) * [课程迭代 | 84讲音频重新交付](./docs/330338.md) * [热点观察 | 我看Facebook发币(上):区块链、比特币与Libra币](./docs/102283.md) * [热点观察 | 我看Facebook发币(下):深入浅出理解 Libra 币](./docs/102973.md) * [课外阅读 | 从《孙子兵法》看底层的自然法则](./docs/116087.md) * [答疑解惑 | 想当架构师,我需要成为“全才”吗?](./docs/112064.md) * [用户故事 | 站在更高的视角看架构](./docs/152196.md)