架构设计

Table of Contents

开篇词 | 怎样成长为优秀的软件架构师?

开篇词 | 怎样成长为优秀的软件架构师?

01 | 架构设计的宏观视角

01 | 架构设计的宏观视角

02 | 大厦基石:无生有,有生万物

02 | 大厦基石:无生有,有生万物

03 | 汇编:编程语言的诞生

03 | 汇编:编程语言的诞生

04 | 编程语言的进化

04 | 编程语言的进化

05 | 思考题解读:如何实现可自我迭代的计算机?

05 | 思考题解读:如何实现可自我迭代的计算机?

06 | 操作系统进场

06 | 操作系统进场

07 | 软件运行机制及内存管理

07 | 软件运行机制及内存管理

08 | 操作系统内核与编程接口

08 | 操作系统内核与编程接口

09 | 外存管理与文件系统

09 | 外存管理与文件系统

10 | 输入和输出设备:交互的演进

10 | 输入和输出设备:交互的演进

11 | 多任务:进程、线程与协程

11 | 多任务:进程、线程与协程

12 | 进程内协同:同步、互斥与通讯

12 | 进程内协同:同步、互斥与通讯

13 | 进程间的同步互斥、资源共享与通讯

13 | 进程间的同步互斥、资源共享与通讯

14 | IP 网络:连接世界的桥梁

14 | IP 网络:连接世界的桥梁

15 | 可编程的互联网世界

15 | 可编程的互联网世界

16 | 安全管理:数字世界的守护

16 | 安全管理:数字世界的守护

17 | 架构:需求分析 (上)

17 | 架构:需求分析 (上)

18 | 架构:需求分析 (下) · 实战案例

18 | 架构:需求分析 (下) · 实战案例

19 | 基础平台篇:回顾与总结

19 | 基础平台篇:回顾与总结

20 | 桌面开发的宏观视角

20 | 桌面开发的宏观视角

21 | 图形界面程序的框架

21 | 图形界面程序的框架

22 | 桌面程序的架构建议

22 | 桌面程序的架构建议

23 | Web开发:浏览器、小程序与PWA

23 | Web开发:浏览器、小程序与PWA

24 | 跨平台与 Web 开发的建议

24 | 跨平台与 Web 开发的建议

25 | 桌面开发的未来

25 | 桌面开发的未来

26 | 实战(一):怎么设计一个“画图”程序?

26 | 实战(一):怎么设计一个“画图”程序?

27 | 实战(二):怎么设计一个“画图”程序?

27 | 实战(二):怎么设计一个“画图”程序?

28 | 实战(三):怎么设计一个“画图”程序?

28 | 实战(三):怎么设计一个“画图”程序?

29 | 实战(四):怎么设计一个“画图”程序?

29 | 实战(四):怎么设计一个“画图”程序?

30 | 实战(五):怎么设计一个“画图”程序?

30 | 实战(五):怎么设计一个“画图”程序?

31 | 辅助界面元素的架构设计

31 | 辅助界面元素的架构设计

32 | 架构:系统的概要设计

32 | 架构:系统的概要设计

33 | 桌面开发篇:回顾与总结

33 | 桌面开发篇:回顾与总结

34 | 服务端开发的宏观视角

34 | 服务端开发的宏观视角

35 | 流量调度与负载均衡

35 | 流量调度与负载均衡

36 | 业务状态与存储中间件

36 | 业务状态与存储中间件

37 | 键值存储与数据库

37 | 键值存储与数据库

38 | 文件系统与对象存储

38 | 文件系统与对象存储

39 | 存储与缓存

39 | 存储与缓存

40 | 服务端的业务架构建议

40 | 服务端的业务架构建议

41 | 实战(一):“画图”程序后端实战

41 | 实战(一):“画图”程序后端实战

42 | 实战(二):“画图”程序后端实战

42 | 实战(二):“画图”程序后端实战

43 | 实战(三):“画图”程序后端实战

43 | 实战(三):“画图”程序后端实战

44 | 实战(四):“画图”程序后端实战

44 | 实战(四):“画图”程序后端实战

45 | 架构:怎么做详细设计?

45 | 架构:怎么做详细设计?

46 | 服务端开发篇:回顾与总结

46 | 服务端开发篇:回顾与总结

加餐 | 如何做HTTP服务的测试?

加餐 | 如何做HTTP服务的测试?

47 | 服务治理的宏观视角

47 | 服务治理的宏观视角

48 | 事务与工程:什么是工程师思维?

48 | 事务与工程:什么是工程师思维?

49 | 发布、升级与版本管理

49 | 发布、升级与版本管理

50 | 日志、监控与报警

50 | 日志、监控与报警

加餐 | 怎么保障发布的效率与质量?

加餐 | 怎么保障发布的效率与质量?

51 | 故障域与故障预案

51 | 故障域与故障预案

52 | 故障排查与根因分析

52 | 故障排查与根因分析

53 | 过载保护与容量规划

53 | 过载保护与容量规划

54 | 业务的可支持性与持续运营

54 | 业务的可支持性与持续运营

55 | 云计算、容器革命与服务端的未来

55 | 云计算、容器革命与服务端的未来

56 | 服务治理篇:回顾与总结

56 | 服务治理篇:回顾与总结

57 | 心性:架构师的修炼之道

57 | 心性:架构师的修炼之道

58 | 如何判断架构设计的优劣?

58 | 如何判断架构设计的优劣?

59 | 少谈点框架,多谈点业务

59 | 少谈点框架,多谈点业务

60 | 架构分解:边界,不断重新审视边界

60 | 架构分解:边界,不断重新审视边界

加餐 | 实战:“画图程序” 的整体架构

加餐 | 实战:“画图程序” 的整体架构

61 | 全局性功能的架构设计

61 | 全局性功能的架构设计

62 | 重新认识开闭原则 (OCP)

62 | 重新认识开闭原则 (OCP)

63 | 接口设计的准则

63 | 接口设计的准则

64 | 不断完善的架构范式

64 | 不断完善的架构范式

65 | 架构范式:文本处理

65 | 架构范式:文本处理

66 | 架构老化与重构

66 | 架构老化与重构

67 | 架构思维篇:回顾与总结

67 | 架构思维篇:回顾与总结

68 | 软件工程的宏观视角

68 | 软件工程的宏观视角

69 | 团队的共识管理

69 | 团队的共识管理

70 | 怎么写设计文档?

70 | 怎么写设计文档?

71 | 如何阅读别人的代码?

71 | 如何阅读别人的代码?

72 | 发布单元与版本管理

72 | 发布单元与版本管理

73 | 软件质量管理:单元测试、持续构建与发布

73 | 软件质量管理:单元测试、持续构建与发布

74 | 开源、云服务与外包管理

74 | 开源、云服务与外包管理

75 | 软件版本迭代的规划

75 | 软件版本迭代的规划

76 | 软件工程的未来

76 | 软件工程的未来

77 | 软件工程篇:回顾与总结

77 | 软件工程篇:回顾与总结

热点观察| 我看Facebook发币(上):区块链、比特币与Libra币

热点观察| 我看Facebook发币(上):区块链、比特币与Libra币

热点观察 | 我看Facebook发币(下):深入浅出理解 Libra 币

热点观察 | 我看Facebook发币(下):深入浅出理解 Libra 币

课外阅读 | 从《孙子兵法》看底层的自然法则

课外阅读 | 从《孙子兵法》看底层的自然法则

答疑解惑 | 想当架构师,我需要成为“全才”吗?

答疑解惑 | 想当架构师,我需要成为“全才”吗?

用户故事 | 站在更高的视角看架构

用户故事 | 站在更高的视角看架构

结束语 | 放下技术人的身段,用极限思维提升架构能力

结束语 | 放下技术人的身段,用极限思维提升架构能力

结课问卷获奖用户名单

结课问卷获奖用户名单