许式伟的架构课--极客时间课程推荐/优惠
版权声明
本站非极客时间官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
你将获得:
- 许式伟首次完整架构经验分享
- 从0开始,构建信息世界全貌
- 常见业务场景的架构范式解读
- 9大必备架构思想精讲
课程介绍
每一位程序员都有一颗成为架构师的心。
但是,很多人对于“架构”的理解,还停留在产品经理出需求,架构师依据产品设计给出实现,也就是所谓的架构设计方案这一阶段。
这一点恐怕是个误解。架构关乎整个工程,以及实现它的人,又因团队的能力而异。
同时,架构也关乎用户需求,作为架构师,我们不仅要知道当前用户的需求是什么,还要对需求未来可能出现的变化做出合理预判。
预判什么会发生,而什么一定不会发生。其中,后者更为重要,只有做到这一点,才能真正防止架构的过度设计,把简单的事情复杂化。
所以,想要成长为优秀的软件架构师,关键在于四个字:掌控全局。
掌控全局,就是要对系统的全貌了然于胸,在自己心中重新构建出整个世界。而不是一上来就沉浸在某个技术的实现细节中,除非它影响了你对这个世界构建过程的理解。
当你了解了世界的脉络和骨骼,你的感觉将完全不同,因为,你已经成为了世界的构建者。
而架构的本质,不正是构建和创造么?
这种透过层层代码的业务层级,窥见整个信息世界的来龙去脉的能力,才是架构师的终极能力。
我们现在所在包罗万象的信息世界,正是在最底层的冯·诺依曼的基础体系上搭建而成,我们熟知的架构,则是最上层的业务架构。
对于架构师来说,不只需要想清楚业务应该怎么做分解,实际上,整个应用从底层的操作系统、编程语言到顶层的业务架构,每一层都需要进行各种决策。
模块介绍
本课程从基础架构开始讲起,然后逐步过渡到业务架构,到最终完成一个完整应用程序的设计过程。这其中包括基础平台、桌面端平台、服务端开发、服务治理、架构思维、软件工程六大话题。
1.基础平台
如果把应用程序比作一座大厦,那大厦的架构师就需要把大厦的结构搭建好,让程序员可以把砖填充进去。而一个大厦的结构建得是否稳固,与其地基密不可分。基础平台模块就是介绍与应用程序相关的“地基”,这其中包括冯·诺依曼体系结构、操作系统、计算机体系结构等。
2.桌面端与服务端平台
对于架构师来说,不是只需要想清楚业务应该怎么做分解。实际上,整个应用从底层的操作系统、编程语言到顶层的业务架构,每一层都需要进行各种决策。这几个模块会开启全局视角,帮你理解桌面端应用和服务端应用体系结构以及核心逻辑。
3.架构思维
思维方式对于一个人来说至关重要,同样,具备架构思维也是让你脱颖而出的关键。这一模块将会介绍架构师必须掌握的架构思维方法论,每一个架构师都应该把这些架构思维内化为自己的基本功,比如架构和业务的关系、架构的边界、重构、接口设计的准则等等。
4.软件工程
架构师的关键目标是交付结果,所以架构师的着眼点一定不只是技术、业务这些内容,还应该包括团队协同、过程管理等等。这一模块将会重点介绍软件工程和架构的关系。
课程目录
开篇词
- 开篇词 | 怎样成长为优秀的软件架构师?
基础平台篇
- 17 | 架构:需求分析 (上)
- 18 | 架构:需求分析 (下) · 实战案例
- 19 | 基础平台篇:回顾与总结
- 01 | 架构设计的宏观视角
- 02 | 大厦基石:无生有,有生万物
- 03 | 汇编:编程语言的诞生
- 04 | 编程语言的进化
- 05 | 思考题解读:如何实现可自我迭代的计算机?
- 06 | 操作系统进场
- 07 | 软件运行机制及内存管理
- 08 | 操作系统内核与编程接口
- 09 | 外存管理与文件系统
- 10 | 输入和输出设备:交互的演进
- 11 | 多任务:进程、线程与协程
- 12 | 进程内协同:同步、互斥与通讯
- 13 | 进程间的同步互斥、资源共享与通讯
- 14 | IP 网络:连接世界的桥梁
- 15 | 可编程的互联网世界
- 16 | 安全管理:数字世界的守护
桌面开发篇
- 20 | 桌面开发的宏观视角
- 21 | 图形界面程序的框架
- 22 | 桌面程序的架构建议
- 23 | Web开发:浏览器、小程序与PWA
- 24 | 跨平台与 Web 开发的建议
- 25 | 桌面开发的未来
- 26 | 实战(一):怎么设计一个“画图”程序?
- 27 | 实战(二):怎么设计一个“画图”程序?
- 28 | 实战(三):怎么设计一个“画图”程序?
- 29 | 实战(四):怎么设计一个“画图”程序?
- 30 | 实战(五):怎么设计一个“画图”程序?
- 31 | 辅助界面元素的架构设计
- 32 | 架构:系统的概要设计
- 33 | 桌面开发篇:回顾与总结
服务端开发篇
- 34 | 服务端开发的宏观视角
- 35 | 流量调度与负载均衡
- 36 | 业务状态与存储中间件
- 37 | 键值存储与数据库
- 38 | 文件系统与对象存储
- 39 | 存储与缓存
- 40 | 服务端的业务架构建议
- 41 | 实战(一):“画图”程序后端实战
- 42 | 实战(二):“画图”程序后端实战
- 43 | 实战(三):“画图”程序后端实战
- 44 | 实战(四):“画图”程序后端实战
- 45 | 架构:怎么做详细设计?
- 46 | 服务端开发篇:回顾与总结
- 加餐 | 如何做HTTP服务的测试?
服务治理篇
- 47 | 服务治理的宏观视角
- 48 | 事务与工程:什么是工程师思维?
- 49 | 发布、升级与版本管理
- 50 | 日志、监控与报警
- 加餐 | 怎么保障发布的效率与质量?
- 51 | 故障域与故障预案
- 52 | 故障排查与根因分析
- 53 | 过载保护与容量规划
- 54 | 业务的可支持性与持续运营
- 55 | 云计算、容器革命与服务端的未来
- 56 | 服务治理篇:回顾与总结
架构思维篇
- 57 | 心性:架构师的修炼之道
- 58 | 如何判断架构设计的优劣?
- 59 | 少谈点框架,多谈点业务
- 60 | 架构分解:边界,不断重新审视边界
- 加餐 | 实战:“画图程序” 的整体架构
- 61 | 全局性功能的架构设计
- 62 | 重新认识开闭原则 (OCP)
- 63 | 接口设计的准则
- 64 | 不断完善的架构范式
- 65 | 架构范式:文本处理
- 66 | 架构老化与重构
- 67 | 架构思维篇:回顾与总结
软件工程篇
- 68 | 软件工程的宏观视角
- 69 | 团队的共识管理
- 70 | 怎么写设计文档?
- 71 | 如何阅读别人的代码?
- 72 | 发布单元与版本管理
- 73 | 软件质量管理:单元测试、持续构建与发布
- 74 | 开源、云服务与外包管理
- 75 | 软件版本迭代的规划
- 76 | 软件工程的未来
- 77 | 软件工程篇:回顾与总结
延展阅读
- 热点观察 | 我看Facebook发币(上):区块链、比特币与Libra币
- 热点观察 | 我看Facebook发币(下):深入浅出理解 Libra 币
- 答疑解惑 | 想当架构师,我需要成为“全才”吗?
- 课外阅读 | 从《孙子兵法》看底层的自然法则
- 用户故事 | 站在更高的视角看架构
结束语
- 结束语 | 放下技术人的身段,用极限思维提升架构能力
- 结课问卷获奖用户名单
- 课程迭代 | 84讲音频重新交付