许式伟的架构课 / 从源头出发,带你重新理解架构设计
许式伟
七牛云CEO
 
  • 课程目录
  • 课程介绍
  • 在线阅读:开篇词 | 怎样成长为优秀的软件架构师?

    让我们来想象一下,如果把信息世界看成一座大厦,把程序员看成这个世界的建筑师,那么,现在的你在负责什么样的工作呢?

  • 01 | 架构设计的宏观视角

    不管今天的你是不是团队里的一位架构师,对于任何一位程序员来说,具备架构思维将会成为让你脱颖而出的关键。

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

    冯·诺依曼体系结构的不凡之处在于,它想“解决一切可以用‘计算’来解决的问题”。

  • 在线阅读:03 | 汇编:编程语言的诞生

    为了不再用“0101”表达自己的思想,人们创造了汇编语言,这一步让编程成为一个纯软件行为,程序员这一个分工也由此诞生。

  • 04 | 编程语言的进化

    今天我们抛开具体的语言发展史,从编程范式演进的角度来谈编程语言的进化。

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

    第一台以键盘+显示器为标准输入输出的现代计算机出现后,一个最小功能集,但计算能力可自我迭代的计算机应该是什么样的?

  • 06 | 操作系统进场

    从商业价值说,操作系统是刚性需求,核心的流量入口,兵家必争之地。所以,围绕它的核心能力,操作系统必然会不断演化出新形态。

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

    操作系统的核心职能是软件治理,软件治理的一个很重要的部分,就是让多个软件可以共同合理使用计算机的资源,不出现争抢的局面。

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

    通过系统调用这个机制,我们很好地实现了操作系统和应用软件的隔离性和安全性,同时仍然保证了极好的执行性能。

  • 09 | 外存管理与文件系统

    整体来说,外存管理从架构角度来说比较简单,复杂性主要集中在外存数据格式,也就是文件系统的设计上。

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

    交互在朝着自然和智能的方向发展。每一个软件不能自己去做输入意图的理解。在未来,必然由操作系统来实现智能交互的基础架构。

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

    今天我们重点介绍了多任务,以及多任务带来的复杂需求,由此介绍了进程、线程和协程等三套执行体的设计。

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

    锁在一些人心中是有误解的,但实际上锁在服务端编程中的比重并不低,我们可能经常需要和它打交道,建议多花精力理解它们。

【特别放送】

许式伟:聊聊架构,以及架构以外的二三事许式伟:编程的意义就是让世界变得有趣一些

每一位程序员都有一颗成为架构师的心。

但是,很多人对于“架构”的理解,还停留在产品经理出需求,架构师依据产品设计给出实现,也就是所谓的架构设计方案这一阶段。

这一点恐怕是个误解。架构关乎整个工程,以及实现它的人,又因团队的能力而异。

同时,架构也关乎用户需求,作为架构师,我们不仅要知道当前用户的需求是什么,还要对需求未来可能出现的变化做出合理预判。

预判什么会发生,而什么一定不会发生。其中,后者更为重要,只有做到这一点,才能真正防止架构的过度设计,把简单的事情复杂化。

所以,想要成长为优秀的软件架构师,关键在于四个字:掌控全局

掌控全局,就是要对系统的全貌了然于胸,在自己心中重新构建出整个世界。而不是一上来就沉浸在某个技术的实现细节中,除非它影响了你对这个世界构建过程的理解。

当你了解了世界的脉络和骨骼,你的感觉将完全不同,因为,你已经成为了世界的构建者。

而架构的本质,不正是构建和创造么?

这种透过层层代码的业务层级,窥见整个信息世界的来龙去脉的能力,才是架构师的终极能力。

我们现在所在包罗万象的信息世界,正是在最底层的冯·诺依曼的基础体系上搭建而成,我们熟知的架构,则是最上层的业务架构。

对于架构师来说,不只需要想清楚业务应该怎么做分解,实际上,整个应用从底层的操作系统、编程语言到顶层的业务架构,每一层都需要进行各种决策。

作者许式伟,七牛云CEO,超过19年的互联网从业经验,曾在金山、盛大从事技术研究方面的工作,是WPS 2005的首席架构师。他在2011年创办了七牛云,成功打造了全新的公有云存储服务。

首席架构师口传心授,带你重新理解架构设计,一起成为信息世界的创造者。


专栏共58讲,分为6大模块。

整个专栏内容会从基础架构开始讲起,然后逐步过渡到业务架构,到最终完成一个完整应用程序的设计过程。这其中包括基础平台、桌面端平台、服务端平台、架构思维、通用架构范式、软件工程6大模块。

基础平台

如果把应用程序比作一座大厦,那大厦的架构师就需要把大厦的结构搭建好,让程序员可以把砖填充进去。而一个大厦的结构建得是否稳固,与其地基密不可分。基础平台模块就是介绍与应用程序相关的“地基”,这其中包括冯·诺依曼体系结构、操作系统、计算机体系结构等。

桌面端与服务端平台

对于架构师来说,不是只需要想清楚业务应该怎么做分解。实际上,整个应用从底层的操作系统、编程语言到顶层的业务架构,每一层都需要进行各种决策。这两个模块会开启全局视角,帮你理解桌面端应用和服务端应用体系结构以及核心逻辑。

架构思维

思维方式对于一个人来说至关重要,同样,具备架构思维也是让你脱颖而出的关键。这一模块将会介绍架构师必须掌握的架构思维方法论,每一个架构师都应该把这些架构思维内化为自己的基本功,比如架构和业务的关系、架构的边界、重构、接口设计的准则等等。

通用架构范式

日常在编程中经常会遇到一些通用的问题,比如错误跟踪、缓存、文本处理,这些问题和领域关联性并不大,但又至关重要。这一模块将会系统讲解这些问题的最佳解决方案,以及背后的关键思路。

软件工程

架构师的关键目标是交付结果,所以架构师的着眼点一定不只是技术、业务这些内容,还应该包括团队协同、过程管理等等。这一模块将会重点介绍软件工程和架构的关系。

限时福利

你觉得怎么样?期待您评价: