许式伟的架构课
许式伟
七牛云CEO
立即订阅
20133 人已学习
课程目录
已更新 73 讲 / 共 77 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 怎样成长为优秀的软件架构师?
免费
基础平台篇 (21讲)
01 | 架构设计的宏观视角
02 | 大厦基石:无生有,有生万物
03 | 汇编:编程语言的诞生
04 | 编程语言的进化
05 | 思考题解读:如何实现可自我迭代的计算机?
06 | 操作系统进场
07 | 软件运行机制及内存管理
08 | 操作系统内核与编程接口
09 | 外存管理与文件系统
10 | 输入和输出设备:交互的演进
11 | 多任务:进程、线程与协程
12 | 进程内协同:同步、互斥与通讯
13 | 进程间的同步互斥、资源共享与通讯
14 | IP 网络:连接世界的桥梁
15 | 可编程的互联网世界
16 | 安全管理:数字世界的守护
17 | 架构:需求分析 (上)
18 | 架构:需求分析 (下) · 实战案例
19 | 基础平台篇:回顾与总结
加餐 | 我看Facebook发币(上):区块链、比特币与Libra币
加餐 | 我看Facebook发币(下):深入浅出理解 Libra 币
桌面开发篇 (16讲)
20 | 桌面开发的宏观视角
21 | 图形界面程序的框架
22 | 桌面程序的架构建议
23 | Web开发:浏览器、小程序与PWA
24 | 跨平台与 Web 开发的建议
25 | 桌面开发的未来
26 | 实战(一):怎么设计一个“画图”程序?
27 | 实战(二):怎么设计一个“画图”程序?
28 | 实战(三):怎么设计一个“画图”程序?
29 | 实战(四):怎么设计一个“画图”程序?
30 | 实战(五):怎么设计一个“画图”程序?
31 | 辅助界面元素的架构设计
课外阅读 | 从《孙子兵法》看底层的自然法则
加餐 | 想当架构师,我需要成为“全才”吗?
32 | 架构:系统的概要设计
33 | 桌面开发篇:回顾与总结
服务端开发篇 (14讲)
34 | 服务端开发的宏观视角
35 | 流量调度与负载均衡
36 | 业务状态与存储中间件
37 | 键值存储与数据库
38 | 文件系统与对象存储
39 | 存储与缓存
40 | 服务端的业务架构建议
41 | 实战(一):“画图”程序后端实战
42 | 实战(二):“画图”程序后端实战
43 | 实战(三):“画图”程序后端实战
44 | 实战(四):“画图”程序后端实战
45 | 架构:怎么做详细设计?
46 | 服务端开发篇:回顾与总结
加餐 | 如何做HTTP服务的测试?
服务治理篇 (11讲)
47 | 服务治理的宏观视角
48 | 事务与工程:什么是工程师思维?
49 | 发布、升级与版本管理
50 | 日志、监控与报警
加餐 | 怎么保障发布的效率与质量?
51 | 故障域与故障预案
52 | 故障排查与根因分析
53 | 过载保护与容量规划
54 | 业务的可支持性与持续运营
55 | 云计算、容器革命与服务端的未来
56 | 服务治理篇:回顾与总结
架构思维篇 (10讲)
57 | 心性:架构师的修炼之道
用户故事 | 站在更高的视角看架构
58 | 如何判断架构设计的优劣?
59 | 少谈点框架,多谈点业务
60 | 架构分解:边界,不断重新审视边界
加餐 | 实战:“画图程序” 的整体架构
61 | 全局性功能的架构设计
62 | 重新认识开闭原则 (OCP)
63 | 接口设计的准则
64 | 不断完善的架构范式
许式伟的架构课
登录|注册

01 | 架构设计的宏观视角

许式伟 2019-04-16
你好,我是七牛云许式伟。今天我们来谈谈架构设计的宏观视角。
在信息科技高度发展的今天,我们每个人随时随地都可以接触到由程序驱动的智能电子设备,包括手机(如 iPhone、oppo 拍照手机)、平板电脑(如 iPad)、手表(如 iWatch、小天才智能手表)、音箱(如天猫精灵)、汽车(如特斯拉)等等。
这些东西背后是怎么工作的?单就其中的软件系统而言,这些小小的设备上往往运行着成千上万个软件模块,这些模块是如何如此精密地一起协作的?
对此,我过去接触过很多的软件开发工程师,或者架构师,很多人对这些原理也是一知半解,虽然“知其然”,但却“不知其所以然”。甚至有些朋友可能觉得,学这些有什么用处呢,在我看来,这部分内容恰恰是我们成为架构师很重要的一门基础课。

为什么需要建立宏观视角?

如同造房子有建筑工人(负责搬砖)和建筑师(负责架构设计)一样,软件系统的开发过程同样需要有程序员(负责搬“砖”)和架构师(负责架构设计)。作为架构师,我们需要的第一个能力是宏观的全局掌控能力。
如果把应用程序比作一座大厦,那么我们作为大厦的架构师,需要把大厦的结构搭建好,让程序员可以把砖填充进去,我们都知道,一个大厦的结构建得是否稳固,与地基密不可分。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《许式伟的架构课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(105)

  • 落石 置顶
    管道化可否理解为随着浏览器成为事实意义上应用的使用平台,操作系统的功能变得单一,单一到只为浏览器提供服务,从逻辑概念上可以理解为服务器与浏览器之间数据传输的管道?

    作者回复: 是这个意思

    2019-04-16
    2
    129
  • 小青蛙/ka 置顶
    当计算在本地完成,我们用的就是操作系统本身;而计算在云端完成时,我们用的就是云服务了,这时候操作系统就成为了我们使用这些云服务的管道。

    既然人们用的是服务,那么用什么管道连接到这个服务就无所谓了。管道和管道的区别将仅在两方面存在:体验和是否能接入这些服务(比如Palm WebOS是否有微博客户端)。要是未来的应用程序都在浏览器中接入,那么第二个区别基本就不存在了。
    from https://36kr.com/p/18656

    作者回复: 是这样

    2019-04-16
    1
    29
  • 西西弗与卡夫卡
    架构从某种角度来说就是建模与分层。计算机,就是从底层的晶体管物理,到晶体管构建的二进制开关,再到开关建立起的整套逻辑门,然后是我们熟悉(准确说是知名度更高)的CPU,再是各种计算和纷繁复杂的信息时间。

    架构的关键是找到关系密切和关系疏远的各类实体,然后找到合适的方案,把他们团结起来。

    感谢
    2019-04-16
    31
  • ナミ💞
    请问,”一旦某种浏览器流行起来,开发人员都在浏览器上做应用,那么必然会导致底层操作系统管道化,这是操作系统厂商所不愿意看到的。”这段的操作系统管道化要怎么进行理解?
    2019-04-16
    1
    18
  • 1900
    “一旦某种浏览器流行起来,开发人员都在浏览器上做应用,那么必然会导致底层操作系统管道化”,我可以理解成微信(移动端的浏览器)和小程序(微信上的应用)么?如果可以这样类比,那微信岂不是会被安卓和iOS这些手机操作系统封杀😂

    作者回复: 你不觉得现在已经有些微妙了么,苹果和腾讯之间

    2019-04-16
    17
  • 上善若水(德水)
    写的太好了,高手出手,果然不同,化繁为简,这也说明了许老师对知识的架构建模能力很强。
    2019-04-16
    17
  • javaadu
    作为服务端工程师,服务端的架构理解基本OK,但是浏览器和客户端架构那里真的受益匪浅,学习了,从技术角度理解微信和iPhone 的商业斗争
    2019-04-16
    1
    12
  • WL
    请问一下老师, 底层操作系统管道化 这句话具体怎样理解?
    2019-04-16
    10
  • lanya
    现有的软件及系统都是以基于冯·诺依曼体系架构的,以后的量子计算机、生物计算机将是完全另外一种形态的体系,会颠覆现有的体系。

    作者回复: 这有可能,我下一篇会提到这件事情

    2019-04-16
    9
  • 公号-代码荣耀
    架构是站在全局高度的总体设计;做的是业务 (或中间件)分解、分层和通信及与之对应的技术选型;目的是架起业务到技术的桥梁。
    2019-04-16
    9
  • 刘小磊^_^
    突然觉得离架构师还有好远。。。

    作者回复: 架构能力的构建不是0到1的突变,进一分有进一分的欢喜。加油

    2019-04-18
    1
    7
  • paradox
    许老师,能简短地说下你理解的“架构思维”?

    作者回复: 我的理解比较朴素:架构就说分解系统,明确每个子系统(或模块)的规格。架构思维就是分解系统的思考方式(方法论)。

    2019-04-17
    7
  • hua168
    人精力有限,如果什么都懂,那不是不精了?通才?还能做架构师吗?还是“一专多能”,先“专”,精通一样;再“多能”,了解其它技术?

    作者回复: 挺好的问题。架构师绝对不是要把自己打造为全才。架构师掌控全局的核心思想是打通经络,让自己的内力在全身自然流通,浑然一体。在不影响理解的情况下,你需要放弃很多实现细节的专研,但有一天你需要细节的时候,你能够知道存在这些细节并且快速钻研进去。

    2019-04-21
    6
  • MH丶
    用了几年SpringBoot,我还以为我能挑战一切了.听了您的解读,我觉得离架构师差距真的好远。世界观被颠覆了👍👍
    2019-04-17
    6
  • ETHAN
    同问,底层操作系统管道化是什么意思?
    2019-04-16
    6
  • 刘鑫
    宏观的架构师的视角不仅仅在于软件系统的架构设计层面,而应将用户感知、产品需求、云计算架构,大数据分析乃至人工智能纳入到系统的整体架构中去考虑,这才是真正的宏观视角。
    2019-04-16
    5
  • Aaron Cheung
    打卡第一天 GO
    2019-04-16
    5
  • 永光
    终于知道小程序为什么那么重要了,也明白张小龙发布“小程序”的理念“触手可及”“即插即用”“用完就走”。微信引发的小程序之战,它本质上是一场浏览器的战争。
    2019-04-16
    5
  • 蚍蜉
    所有的架构其实都是“中央处理器 + 存储 + 一系列的输入输出设备”,也就是冯诺依曼体系,现在流行的云计算也是如此,只不过细节不一样,有些部分细化,有些部分统一,期待老师下次分享!
    2019-04-16
    5
  • 苟范儿
    业务写的多了,很容易把自己眼光局限在搬砖的思维中。
    今天又重新温习了下冯诺伊曼体系结构,技术迭代再快。优秀的基础理论、底层架构变化却很少。
    冯诺伊曼体系架构:运算器、控制器、存储器、输入、输出设备,二进制数,顺序执行。

    作者回复: 👍

    2019-04-17
    4
收起评论
99+
返回
顶部