12 2022 档案
摘要:你好,我是LMOS。 2021年,我在极客时间上开设了我的第一门课程《操作系统实战45讲》,和你分享了我多年来研究操作系统的一些成就和经验。 我本以为在业务为王、各种新技术层出不穷的今天,很少有人会关注操作系统这种底层且异常复杂的技术。但出乎意料,这门课程一上线引起很多朋友的关注,曾经一度稳居极客时
阅读全文
摘要:你好,我是LMOS。 感谢你的一路相伴,我们的《操作系统实战45讲》专栏写到此处,你亦能学至此处,多半是出于兴趣,出于一种对操作系统的热爱,出于一种对事物本质发自内心的苛求…… 如果是这样,请你永远保持这份心性,它会给你带来更多意想不到的结果。走到这里,也让我们先停住前进的脚步,回忆一下这一路走来都
阅读全文
摘要:你好,我是艾恩凝。很高兴受邀来写用户故事,可以“吐槽”一下与我结缘的操作系统实战专栏。不对,是夸赞。 其实,这门课在去年底宣传的时候,我就知道了。那时朋友圈铺天盖地在发消息,可以说想不知道都难,当时我只以为是单纯的广告,所以并没有仔细了解。 就这样,我与这么好的一门课擦肩而过。现在回头看来,只是缘分
阅读全文
摘要:你好,我是yiyang。 先简单说说我自己吧,我是一名编程爱好者,这个爱好从小学就已经播下了种子。我从求学到就业,有过很多次机会接触计算机方面的学习和相关工作,可是一直没有真正动手编程。这次能接触到LMOS老师的《操作系统实战45课》,让我眼前一亮,当时就报名了这门课。 都说编程需要能掌握一些基础的
阅读全文
摘要:你好,我是leveryd。 先做个自我介绍,我在网络安全行业从事技术工作,目前在负责安全产品的研发工作,工作六年。 虽然在研发工作中,我们通常是遇到什么问题就去查,边查边学。虽然这样的学习方式能快速解决问题,但有时候这种方法也不灵,比方说学习语义分析时,就必须要把词法分析、语法分析先学了,一通搜索、
阅读全文
摘要:你好,我是宇新。 作为《操作系统实战45讲》的编辑。从专栏上线到现在已经有3个多月的时间了,感谢你一直坚持到现在。 留意过课程评论区的同学都知道,我们有几位常驻的同学一直在主动输出。那这些“课代表”是怎样学习专栏,又有什么学习诀窍? 为了满足咱们的好奇心,我特意策划了这次特别的采访,请到了在专栏里留
阅读全文
摘要:你好,我是spring Xu。我平时的工作就是做实时嵌入式系统,坐标上海。 写操作系统这件事一直是我的兴趣,我之前写过引导器,也有移植过uboot的基础,还读了不少操作系统的书。作为一名操作系统“发烧友”,我是怎样跟操作系统、跟LMOS这门课程结缘的呢?请你听我慢慢道来。 我是怎样与操作系统结缘的?
阅读全文
摘要:你好,我是pedro,目前是一名后端小研发。 很早的时候,就收到了小编的邀请,让我来写一写用户故事。但是因为我手上有很多事情,这事儿就被耽搁了下来,所以导致这篇小故事迟到了很久。 虽然是在操作系统这个专栏下,但是我不想受到领域的限制,我想和你们分享一下我的学习思路、学习方法和收获,真诚地和你说说话,
阅读全文
摘要:你好,我是Yason Lee。 先简单介绍一下我自己,我曾为腾讯、土巴兔、中兴等多家公司服务过,目前在国内某电商公司担任研发方面的工作。我跟LMOS相识多年,也是 Cosmos Psi 开源项目的贡献者之一。 受到极客时间和老彭(LMOS)邀请,这次加餐我想从我的视角给你说说,Cosmos项目的来龙
阅读全文
摘要:你好,我是LMOS。 在今天,Andriod+ARM已经成了移动领域的霸主,这与当年的Windows+Intel何其相似。之前我们已经在Intel的x86 CPU上实现了Cosmos,今天我会给你讲讲ARM的AArch64体系结构,带你扩展一下视野。 首先,我们来看看什么是AArch64体系,然后分
阅读全文
摘要:你好,我是 LMOS。 前面两节课,我们一起学习了虚拟机和容器的原理,这些知识属于向上延展。而这节课我们要向下深挖,看看操作系统下面的硬件层面,重点研究一下CPU的原理和它的加速套路。 有了这些知识的加持,我还会给你说说,为什么去年底发布的苹果M1芯片可以实现高性能、低功耗。你会发现,掌握了硬件的知
阅读全文
摘要:你好,我是LMOS。 上节课我带你通过KVM技术打开了计算机虚拟化技术的大门,KVM技术是基于内核的虚拟机,同样的KVM和传统的虚拟化技术一样,需要虚拟出一台完整的计算机,对于某些场景来说成本会比较高,其实还有比KVM更轻量化的虚拟化技术,也就是今天我们要讲的容器。 这节课我会先带你理解容器的概念,
阅读全文
摘要:你好,我是LMOS。 上节课,我们理解了Linux里要如何实现系统API。可是随着云计算、大数据和分布式技术的演进,我们需要在一台服务器上虚拟化出更多虚拟机,还要让这些虚拟机能够弹性伸缩,实现跨主机的迁移。 而虚拟化技术正是这些能力的基石。这一节课,就让我们一起探索一下,亚马逊、阿里、腾讯等知名公司
阅读全文
摘要:你好,我是LMOS。 上节课,我们通过实现一个获取时间的系统服务,学习了Cosmos里如何建立一个系统服务接口。Cosmos为应用程序提供服务的过程大致是这样的:应用程序先设置服务参数,然后通过int指令进入内核,由Cosmos内核运行相应的服务函数,最后为应用程序提供所需服务。 不知道你是否好奇过
阅读全文
摘要:你好,我是LMOS。 一路走来,咱们的Cosmos系统已经有内存管理,进程、文件、I/O了,这些重要的组件已经建立了,也就是说它们可以向应用程序提供服务了。 但就好像你去各政府部门办理业务证件一样,首先是前台工作人员接待你,对你的业务需求进行初级预判,然后后台人员进行审核并进行业务办理,最后由前台人
阅读全文
摘要:你好,我是LMOS。 上节课,我们一起了解了套接字的工作机制和数据结构,但套接字有哪些基本接口实现呢?相信学完这节课,你就能够解决这个问题了。 今天我会和你探讨套接字从创建、协议接口注册与初始化过程,还会为你深入分析套接字系统,是怎样调用各个功能函数的。通过这节课,相信你可以学会基于套接字来编写网络
阅读全文
摘要:你好,我是LMOS。 前面我们了解了网络的宏观架构,建立了网络模块知识的大局观,也进行了实际的组网实践。现在我们来瞧一瞧Linux的网络程序,不过想要入门Linux的网络编程,套接字也是一个绕不开的重要知识点,正是有了套接字,Linux系统才拥有了网络通信的能力。而且网络协议的最底层也是套接字,有了
阅读全文
摘要:你好,我是 LMOS。 上节课我们对一次请求到响应的过程积累了一些宏观认识,相信你已经对整个网络架构有了一个整体蓝图。这节课,让我们来仔细研究一下网络数据是如何在内核中流转的,让你开阔视野,真正理解底层工程的实现思路。 凡事先问目的,在网络数据在内核中的流转,最终要服务于网络收发功能。所以,我会先带
阅读全文
摘要:你好,我是 LMOS。 从这节课起,我们就要开始学习网络篇的内容了。网络是一个极其宏大的知识结构,我会通过五节课带你了解计算机网络的关键内容。 具体我们是这样安排的。作为网络篇的开始,今天这节课我会从一个面试中高频出现的问题切入,带你梳理从输入URL到网卡的网络数据流动过程中都发生了什么事。如果你真
阅读全文
摘要:你好,我是LMOS。 在前面的课程中,我们已经实现了Cosmos下的文件系统rfs,相信你已经感受到了一个文件系统是如何管理文件的。今天我们一起来瞧一瞧Linux是如何管理文件,也验证一下Linux那句口号:一切皆为文件。 为此,我们需要首先搞清楚什么是VFS,接着理清为了实现VFS所用到的数据结构
阅读全文
摘要:你好,我是LMOS。 我们在上一节课中,已经建立了仓库,并对仓库进行了划分,就是文件系统的格式化。有了仓库就需要往里面存取东西,对于我们的仓库来说,就是存取应用程序的文件。 所以今天我们要给仓库增加一些相关的操作,这些操作主要用于新建、打开、关闭、读写文件,它们也是文件系统的标准功能,自然即使我们这
阅读全文
摘要:你好,我是LMOS。 上一节课中,我们已经设计好了文件系统数据结构,相当于建好了仓库的基本结构。 今天,我将和你一起探索仓库的划分,即什么地方存放仓库的管理信息,什么地方存放进程的“劳动成果”(也就是文件),对应于文件系统就是文件系统的格式化操作。 具体我是这样安排的,我们先来实现文件系统设备驱动,
阅读全文
摘要:你好,我是LMOS。 你有没有想过,蜜蜂把劳动成果变成蜜糖存放在蜂巢中,人类把劳动成果量化成财富存放在银行,但一个进程的劳动成果放在哪里呢? 看到这里,你可能有疑问,进程有劳动成果吗?当然有,进程加工处理的数据就是进程的劳动成果,可是这个“劳动成果”,如何表示、如何组织,又放在哪里呢?这些问题都会在
阅读全文
摘要:你好,我是LMOS。 前面我们已经完成了Cosmos的驱动设备的建立,还写好了一个真实的设备驱动。 今天,我们就来看看Linux是如何管理设备的。我们将从Linux如何组织设备开始,然后研究设备驱动相关的数据结构,最后我们还是要一起写一个Linux设备驱动实例,这样才能真正理解它。 感受一下Linu
阅读全文
摘要:你好,我是LMOS。 在上一课中,我们实现了建立设备的接口,这相当于制定了部门的相关法规,只要遵守这些法规就能建立一个部门。当然,建立了一个部门,是为了干活的,吃空饷可不行。 其实一个部门的职责不难确定,它应该能对上级下发的任务作出响应,并完成相关工作,而这对应到设备,就是如何处理内核的I/O包,这
阅读全文
摘要:你好,我是LMOS。 在上节课里,我们对设备进行了分类,建立了设备与驱动的数据结构,同时也规定了一个驱动程序应该提供哪些标准操作方法,供操作系统内核调用。这相当于设计了行政部门的规章制度,一个部门叫什么,应该干什么,这些就确定好了。 今天我们来继续探索部门的建立,也就是设备在内核中是如何注册的。我们
阅读全文
摘要:你好,我是LMOS。 小到公司,大到国家,都有各种下属部门,比如我们国家现在有教育部、科学技术部、外交部,财政部等,这些部门各自负责完成不同的职能工作,如教育部负责教育事业和语言文字工作,科学技术部负责推动解决经济社会发展的重大科技问题。 既然大道相通,那我们的Cosmos中是否也是类似这样的结构呢
阅读全文
摘要:你好,我是LMOS。 在前面的课程中,我们已经写好了Cosmos的进程管理组件,实现了多进程调度运行,今天我们一起探索Linux如何表示进程以及如何进行多进程调度。 好了,话不多说,我们开始吧。 Linux如何表示进程 在Cosmos中,我们设计了一个thread_t数据结构来代表一个进程,Linu
阅读全文
摘要:你好,我是LMOS。 上节课,我带你一起设计了我们Cosmos的进程调度器,但有了进程调度器还不够,因为调度器它始终只是让一个进程让出CPU,切换到它选择的下一个进程上去运行。 结合前面我们对进程生命周期的讲解,估计你已经反应过来了。没错,多进程调度方面,我们还要实现进程的等待与唤醒机制,今天我们就
阅读全文
摘要:你好,我是LMOS。 上节课,我们了解了什么是进程,还一起写好了建立进程的代码。不知道你想过没有,如果在系统中只有一个进程,那我们提出进程相关的概念和实现与进程有关的功能,是不是就失去了意义呢? 显然,提出进程的目的之一,就是为了实现多个进程,使系统能运行多个应用程序。今天我们就在单进程的基础上扩展
阅读全文
摘要:你好,我是LMOS。 在前面的课程里,我们已经实现了数据同步、hal层的初始化,中断框架、物理内存、内存对象、虚拟内存管理,这些都是操作系统中最核心的东西。 今天,我再给你讲讲操作系统里一个层次非常高的组件——进程,而它又非常依赖于内存管理、中断、硬件体系结构。好在前面课程中,这些基础知识我们已经搞
阅读全文
摘要:你好,我是LMOS。 上节课我们学习了伙伴系统,了解了它是怎样管理物理内存页面的。那么你自然会想到这个问题:Linux系统中,比页更小的内存对象要怎样分配呢? 带着这个问题,我们来一起看看SLAB分配器的原理和实现。在学习过程中,你也可以对照一下我们Cosmos的内存管理组件,看看两者的内存管理有哪
阅读全文
摘要:你好,我是LMOS。 前面我们实现了Cosmos的内存管理组件,相信你对计算机内存管理已经有了相当深刻的认识和见解。那么,像Linux这样的成熟操作系统,又是怎样实现内存管理的呢? 这就要说到Linux系统中,用来管理物理内存页面的伙伴系统,以及负责分配比页更小的内存对象的SLAB分配器了。 我会通
阅读全文
摘要:你好,我是LMOS。 今天,我们继续研究操作系统如何实现虚拟内存。在上节课,我们已经建立了虚拟内存的初始流程,这节课我们来实现虚拟内存的核心功能:写出分配、释放虚拟地址空间的代码,最后实现虚拟地址空间到物理地址空间的映射。 这节课的配套代码,你可以点击这里下载。 虚拟地址的空间的分配与释放 通过上节
阅读全文
摘要:你好,我是LMOS。 在现实中,有的人需要向政府申请一大块区域,在这块区域中建楼办厂,但是土地有限且已经被占用。所以可能的方案是,只给你分配一个总的面积区域,今年湖北有空地就在湖北建立一部分厂房,明年广东有空地就在广东再建另一部分厂房,但是总面积不变。 其实在计算机系统中也有类似的情况,一个应用往往
阅读全文
摘要:你好,我是LMOS。 在前面的课程中,我们建立了物理内存页面管理器,它既可以分配单个页面,也可以分配多个连续的页面,还能指定在特殊内存地址区域中分配页面。 但你发现没有,物理内存页面管理器一次分配至少是一个页面,而我们对内存分页是一个页面4KB,即4096字节。对于小于一个页面的内存分配请求,它无能
阅读全文
摘要:你好,我是LMOS。 通过前面两节课的学习,我们已经组织好了内存页,也初始化了内存页和内存区。我们前面做了这么多准备工作,就是为了实现分配和释放内存页面,达到内存管理的目的。 那有了前面的基础,我想你自己也能大概实现这个分配和释放的代码。但是,根据前面我们设计的数据结构和对其初始化的工作,估计你也可
阅读全文
摘要:你好,我是LMOS。 上节课,我们确定了用分页方式管理内存,并且一起动手设计了表示内存页、内存区相关的内存管理数据结构。不过,虽然内存管理相关的数据结构已经定义好了,但是我们还没有在内存中建立对应的实例变量。 我们都知道,在代码中实际操作的数据结构必须在内存中有相应的变量,这节课我们就去建立对应的实
阅读全文
摘要:你好,我是LMOS。 内存跟操作系统的关系,就像土地和政府的关系一样。政府必须合理规划这个国家的土地,才能让人民安居乐业。为了发展,政府还要进而建立工厂、学校,发展工业和教育,规划城镇,国家才能繁荣富强。 而作为计算机的实际掌权者,操作系统必须科学合理地管理好内存,应用程序才能高效稳定地运行。 内存
阅读全文
摘要:你好,我是LMOS。 今天我们继续来研究Linux的初始化流程,为你讲解如何解压内核,然后讲解Linux内核第一个C函数。最后,我们会用Linux的第一个用户进程的建立来收尾。 如果用你上手去玩一款新游戏做类比的话,那么上节课只是新手教程,而这节课就是更深入的实战了。后面你会看到很多熟悉的“面孔”,
阅读全文
摘要:你好,我是LMOS。 在前面的课程中,我们建好了二级引导器,启动了我们的Cosmos,并进行了我们Cosmos的Hal层初始化。 我会用两节课带你领会Linux怎样做初始化。虽然我们自己具体实现过了初始化,不过我们也不妨看看Linux的初始化流程,借鉴一下Linux开发者的玩法。 这节课,我会先为你
阅读全文
摘要:你好,我是LMOS。 前面三节课,我们为调用Cosmos的第一个C函数hal_start做了大量工作。这节课我们要让操作系统Cosmos里的第一个C函数真正跑起来啦,也就是说,我们会真正进入到我们的内核中。 今天我们会继续在这个hal_start函数里,首先执行板级初始化,其实就是hal层(硬件抽象
阅读全文
摘要:你好,我是LMOS。 上节课我们动手实现了自己的二级引导器。今天这节课我们将进入二级引导器,完成具体工作的环节。 在二级引导器中,我们要检查CPU是否支持64位的工作模式、收集内存布局信息,看看是不是合乎我们操作系统的最低运行要求,还要设置操作系统需要的MMU页表、设置显卡模式、释放中文字体文件。
阅读全文
摘要:你好,我是LMOS。 上节课,我们建造了属于我们的“计算机”,并且在上面安装好了GRUB。这节课我会带你一起实现二级引导器这个关键组件。 看到这儿你可能会问,GRUB不是已经把我们的操作系统加载到内存中了吗?我们有了GRUB,我们为什么还要实现二级引导器呢? 这里我要给你说说我的观点,二级引导器作为
阅读全文
摘要:你好,我是LMOS。 经过前面那么多课程的准备,现在我们距离把我们自己操作系统跑起来,已经是一步之遥了。现在,你是不是很兴奋,很激动?有这些情绪说明你是喜欢这门课程的。 接下来的三节课,我们会一起完成一个壮举,从GRUB老大哥手中接过权柄,让计算机回归到我们的革命路线上来,为我们之后的开发自己的操作
阅读全文
摘要:你好,我是LMOS。 上节课,我们学习了解决数据同步问题的思路与方法。Linux作为成熟的操作系统内核,当然也有很多数据同步的机制,它也有原子变量、开启和关闭中断、自旋锁、信号量。 那今天我们就来探讨一下这些机制在Linux中的实现。看看Linux的实现和前面我们自己的实现有什么区别,以及Linux
阅读全文
摘要:你好,我是LMOS。 我们在前面的课程中探索了,开发操作系统要了解的最核心的硬件——CPU、MMU、Cache、内存,知道了它们的工作原理。在程序运行中,它们起到了至关重要的作用。 在开发我们自己的操作系统以前,还不能一开始就把机器跑起来,而是先要弄清楚数据同步的问题。如果不解决掉数据同步的问题,后
阅读全文
摘要:你好,我是LMOS。 在前面的课程里,我们已经知道了CPU是如何执行程序的,也研究了程序的地址空间,这里我们终于到了程序的存放地点——内存。 你知道什么是Cache吗?在你心中,真实的内存又是什么样子呢?今天我们就来重新认识一下Cache和内存,这对我们利用Cache写出高性能的程序代码和实现操作系
阅读全文
摘要:你好,我是LMOS。 从前面的课程我们得知,CPU执行程序、处理数据都要和内存打交道,这个打交道的方式就是内存地址。 读取指令、读写数据都需要首先告诉内存芯片:hi,内存老哥请你把0x10000地址处的数据交给我……hi,内存老哥,我已经计算完成,请让我把结果写回0x200000地址的空间。这些地址
阅读全文
摘要:你好,我是LMOS。 我们在前面已经设计了我们的OS架构,你也许正在考虑怎么写代码实现它。恕我直言,现在我们还有很多东西没搞清楚。 由于OS内核直接运行在硬件之上,所以我们要对运行我们代码的硬件平台有一定的了解。接下来,我会通过三节课,带你搞懂硬件平台的关键内容。 今天我们先来学习CPU的工作模式,
阅读全文
摘要:你好,我是LMOS。 什么?你想成为计算机黑客? 梦想坐在计算机前敲敲键盘,银行账号里的数字就会自己往上涨。拜托,估计明天你就该被警察逮捕了。真正的黑客是对计算机技术有近乎极致的追求,而不是干坏事。 下面我就带你认识这样一个计算机黑客,看看他是怎样创造出影响世界的Linux,然后进一步了解一下Lin
阅读全文
摘要:你好,我是LMOS。 在上节课中,我们写了一个极简的操作系统——Hello OS,并成功运行,直观地感受了一下自己控制计算机的乐趣,或许你正沉浸在这种乐趣之中,但我不得不提醒你赶快从这种快乐中走出来。 因为我们的Hello OS虽然能使计算机运行起来,但其实没有任何实际的功能。 什么?没有实际功能,
阅读全文
摘要:你好,我是LMOS。 我们知道,在学习许多编程语言一开始的时候,都有一段用其语言编写的经典程序——Hello World。这不过是某一操作系统平台之上的应用程序,却心高气傲地问候世界。 而我们学习操作系统的时候,那么也不妨撇开其它现有的操作系统,基于硬件,写一个最小的操作系统——Hello OS,先
阅读全文
摘要:你好,我是LMOS。 欢迎来到操作系统第一课。在真正打造操作系统前,有一条必经之路:你知道程序是如何运行的吗? 一个熟练的编程老手只需肉眼看着代码,就能对其运行的过程了如指掌。但对于初学者来说,这常常是很困难的事,这需要好几年的程序开发经验,和在长期的程序开发过程中对编程基本功的积累。 我记得自己最
阅读全文
摘要:你好,我是宇新,《操作系统实战45讲》的专栏编辑。 除了负责更新课程里的内容,我也一直关注着小伙伴们的留言。这次,终于有机会自己也留一回言了,很开心能用编辑手记的方式,和你聊一聊我的想法。 这门课的独特之处 细心的小伙伴可能发现了,我们的开篇词标题是“为什么要学写一个操作系统?”注意,不只是学操作系
阅读全文
摘要:你好,我是彭东,网名LMOS,欢迎加入我的专栏,跟我一起开启操作系统的修炼之路。 先来介绍一下我自己。我是Intel 傲腾项目开发者之一,也是《深度探索嵌入式操作系统》这本书的作者。 我曾经为Intel做过内核层面的开发工作,也对Linux、BSD、SunOS等开源操作系统,还有Windows的NT
阅读全文
摘要:你好,我是郭东白,很快就到我们这个课程的结尾了。 写专栏是个非常治愈的过程。我日常喜欢收集自己的想法,有点儿像儿时收集的小石子,感觉每颗都是那么地迷人,似乎有小精灵住在里面似的。不过后来再看,其实也很稀松平常,可能是小精灵搬家了吧。 不过在写专栏的过程中,那些珍藏很久的想法又被重新唤醒,一个个细节和
阅读全文
摘要:你好, 我是郭东白。很快到了我们这个模块的结尾了,我来帮你总结一下。 我们这个模块讲的是一个架构师该如何提升思考力。先是花两节课讲了贯穿架构师整个职业生涯的思维定式,分别是价值思维、实证思维、去中心化思维和成长思维。然后又花两节课讲了架构师在一个具体的架构活动中应该采取的思维方式,分别是全方位思维、
阅读全文
摘要:你好,我是郭东白。 有了上节课的分析,我们就可以来思考中台的合理定位和建设路径了。顺便说一句,在阐述这个案例的过程中,我们将会采用第49节介绍的分析思维,你可以留心一下。 国内中台失败的根因 中台的合理定位 如果总结一下中台创造价值的领域,可以归纳出如下六类: 低成本上线:同一个功能模块在多个场景中
阅读全文
摘要:你好,我是郭东白。从这节课开始我们来讲讲中台。 之所以想以中台案例来结束我们整个课程,有这么三方面的原因。首先,中台这个话题很有商业和研究价值。 中台背后的需求很合理,是国内互联网公司的刚需。在未来,中台的尝试依然不会停止,因而我们需要在当前业界的思考基础之上寻求突破,才有可能创建出真正有商业价值的
阅读全文
摘要:你好,我是郭东白。这节课我们接着讲Amundson和Scott南极探险的经历。 上节课我从目标、细节、决策等角度描述了后人对于南极探险的评论和观点,除此之外,还有其他观点也非常值得分析研究。 不过在这么多错综复杂的观点之中,究竟哪一个理论才是正确的呢?就像我们之前在架构决策中的讨论一样,每个参与者都
阅读全文
摘要:你好,我是郭东白。 我们在之前的课程中曾多次提到Amundson和Scott在南极探险的经历,那么这节课,我们就以此为例,讲讲如何通过软件架构之外的案例来提升你的思考力。 我先对这个案例的背景与结果做个简单的说明。有两个不同的团队,采用了不同的策略,最终Amundson先于Scott到达南极并安全返
阅读全文
摘要:你好,我是郭东白。 上节课我们提到了要和有优秀思考力的人碰撞,从而提升自己的思考质量。那么怎么识别一个人的思考质量呢?在认识了优秀的人后,怎么才能跟他建立长期的信任关系呢? 这节课我们就来讨论这两个问题。 如何判断一个人的思考质量? 判断一个人的思考力非常难,尤其是在有限的时间内。这种情况在面试中经
阅读全文
摘要:你好,我是郭东白。 上节课我们讲了架构师在架构活动中所需要的思维模式,并强调这些思维模式是阶段性的,要随着架构活动生命周期的变化而调整。 与此同时,我们还强调了思维和思维是架构活动实施前所需要的。那么进入架构活动后呢?也就是在执行阶段和复盘阶段,我们应该采用什么样的思维方式呢?这就是我们接下来要探讨
阅读全文
摘要:你好,我是郭东白。前两节课我们讲了贯穿架构师整个职业生涯的四种思维模式,分别是价值思维、实证思维、去中心化思维和成长思维。从这节课开始,我们就来讲讲架构师在单个架构活动中应该具备哪些思维模式。 与前两节课不同的是,我们今天分享的思维模式是阶段性的,会随着架构活动生命周期的变化而不断调整。为什么需要调
阅读全文
摘要:你好,我是郭东白。上节课我们从公司的角度上,描述了架构师应该具备价值思维和实证思维,从而最大化自己的生存。 而如果从架构师的角度来思考,必须具备哪些思维定势才能达到我们上节课提出的目标呢?也就是决策信条和最终的行动,都能最大化自己为企业创造的长期价值的目标。答案是:去中心化思维和成长思维。 前者可以
阅读全文
摘要:你好,我是郭东白。 这是我们思考力模块的第一节课。在模块导读里,我提到了架构师这个职能有自己特有的思维定势。那么在接下来的两节课里,我就来展开讲讲架构师所需要的思维定势是什么。 这节课我们先从架构师的职业特点讲起,谈谈从公司的角度看,需要架构师具备什么样的思维定势。 思维定势与思维模型 我们在这个模
阅读全文
摘要:你好, 我是郭东白。 通过前面三个模块的学习,我们掌握了架构师的生存法则、架构师在架构活动中的工作方式、架构师在成长过程中需要获取的能力维度。那么最后一个模块,我们就来学习如何提升架构师最核心的能力——思考力。 独立思考 我们之前提到过了,思考力指的是在生活和工作中,通过独立思考带来有效结论的能力。
阅读全文
摘要:你好,我是郭东白。很快就到了这个模块的末尾,这节课我们来简单总结一下。 什么是结构性? 整个模块是从架构师的角色定义开始,而后引出架构师最核心的价值创造,也就是设计和实施结构化软件系统的能力。 不过这个定义其实把“架构师的核心价值创造到底在哪里”,转化成了“什么是结构性”这个问题。那么现在让我们再重
阅读全文
摘要:你好,我是郭东白。 这是架构师职业规划模块的最后一节课。现在我们对架构师的不同成长阶段做到了心中有数,对架构师成长的充分必要条件也已经了然于胸。不过在具体落地的过程中,我们还会面临一个非常现实的问题,那就是如何做职业选择。 说到职业选择,其中最老生常谈的问题就是该怎么选择公司。比如: 朋友创业开公司
阅读全文
摘要:你好,我是郭东白。上节课我们讲了架构师成长的必要条件,分别是思考力、信息内化能力和适应力。那么这节课我们就来聊聊架构师成长的三个充分条件。 不满足必要条件,就做不了架构师。但是满足了必要条件,也不一定能成为架构师,因为还需要找到架构师成长的充分条件。什么才是架构师成长的充分条件呢?我先来公布答案:
阅读全文
摘要:你好,我是郭东白。 到上节课为止,我们的内容已经覆盖架构师的五个核心能力了。不过无论做什么事情,都必须先问自己这么一个问题:我做这件事情的优势是什么?也就是说,我凭什么可以成长为比别人更优秀的架构师? 其实这个问题背后隐含着两方面的诉求:一个是成长为优秀架构师的必要条件,另一个是成长为优秀架构师的充
阅读全文
摘要:你好,我是郭东白。今天这节课是架构师能力维度的第四部分,我们来继续探索架构师成长过程的能力跃迁。不过今天我们会连续讲两个跃迁:从跨域架构师到总架构师(首席架构师)的跃迁;从总架构师再到CTO的跃迁。 我们之前简单提过了,要是能为CTO和总架构师解决他们所面临的问题,你必然能获得他们的信任和器重,从而
阅读全文
摘要:姓名:黄民烈 职称:副教授 电子邮件:aihuang@tsinghua.edu.cn 个人主页:http://coai.cs.tsinghua.edu.cn/hml/ 教育背景 工学学士 (工程物理), 清华大学, 中国, 2000; 工学博士 (计算机科学与技术), 清华大学, 中国, 2006.
阅读全文
摘要:你好,我是郭东白。今天我们来讨论架构师核心能力的第三个层次——解决跨领域冲突。 上节课我们讲了从程序员到兼职架构师的跨越,也就是如何搭建解决横向问题的能力。 不过,在兼职架构师这个角色中,架构能力是一个加分项,写代码实现需求仍然是主要工作。我们今天要介绍的能力就不再是加分项了,而是作为架构师的主要增
阅读全文
摘要:你好, 我是郭东白。我们上节课讲了,程序员的结构化设计能力是向架构师过渡的重要基础。假设你现在已经拥有了这项基础能力,想开启自己的架构师职业生涯新篇章,那么该从开始呢? 这节课我们就来讨论一下这个话题。 从程序员到兼职架构师 我们先研究一下程序员和兼职架构师这两个角色的区别: 在软件架构这个上下文里
阅读全文
摘要:你好, 我是郭东白。 上节课我们定义了架构师这个角色,也了解了架构师的五个成长阶段,分别是程序员、兼职架构师、跨域架构师、总架构师和CTO。以及与这五个阶段分别对应的核心能力,即:结构化设计能力、解决横向问题的能力、解决跨域冲突的能力、正确技术决策和创造生存优势的能力。 从这节课开始,我们就来探讨一
阅读全文
摘要:你好,我是郭东白。我们今天就正式进入模块三的学习了。 我们在开篇词里面介绍了,模块三的目的是向你介绍架构师的能力维度,以及获取这些能力的方法。既然是总结架构师成长的课程,那么“什么是架构师”就是一个绕不过去的话题。 架构师的定义 你肯定会有疑问,为什么课程都过半了才来定义“架构师”呢?再说了,架构师
阅读全文
摘要:你好,我是郭东白。 这是我们第二个模块的最后一节课,我会先来展示整个架构活动的大图,然后总结一下模块中的核心知识点。 这个模块的内容非常多,所以通过这节课的总结与回顾,希望你能对整个架构活动建立起宏观的认识。同时,也可以再温习一下相对陌生的内容。此外,评论区的内容也很丰富,是不错的学习材料,可以为你
阅读全文
摘要:你好,我是辰洋,《郭东白的架构课》的项目负责人。 文章更新得很快,马上就会迎来我们第二个模块的尾声。按照惯例,在每个模块结束之际,我都会带着几张图文来做个加餐。这一次尤为必要。 有的同学已经发现了,我们这个模块与最初设计之时相比,有一些微小的变化。主要有两个方面。一是最初的八个节点,现在变成了七个,
阅读全文
摘要:你好,我是郭东白。上节课我们讲了复盘的目的,还讲了复盘的三个误区。同时,也讲了进入复盘前的准备工作。有了这些做基础,这节课我们就正式进入到复盘的过程中。 复盘过程一般由如下六个环节组成: 回顾架构活动; 搭建复盘环境; 梳理机会点; 挖掘根因; 寻找新的模式与机制; 产出跟进项。 回顾架构活动 回顾
阅读全文
摘要:你好,我是郭东白。从这节课开始,我们就进入到架构活动的最后一个环节:复盘。 当遍历完价值单元的交付树之后,其实也就完成了整个架构活动的交付。到这里,比较普遍的方式是业务方最终验收并庆祝上线。这是个传统的由项目经理主导的步骤,相信你肯定经历过不少,我在这里就不赘述了。 与此同时,大多数产品和研发人员已
阅读全文
摘要:你好,我是郭东白。上节课我们讲了为什么要做阶段性的价值交付,以及进入阶段性价值交付环节的准备工作。有了这些学习基础,这节课我们就可以进行阶段性价值交付了。 在交付的过程中,主要有三部分工作:目标分解、定义交付路径,以及项目交付跟踪与路径调整。 从价值交付的角度做MVPU拆分 关于目标分解这部分工作,
阅读全文
摘要:你好,我是郭东白。从这节课开始,我们就进入到架构活动的第六个环节——阶段性价值交付。 对于企业来说,这是成本花费最多的节点了,因为大量的研发人力资源开始投入到架构活动中去。 有的架构师认为,到了这个节点,自己似乎已经完成了主要任务。接下来,就主要靠项目经理深度介入到每个团队的交付过程中,来保障任务的
阅读全文
摘要:你好,我是郭东白。从这节课开始,我们就进入到架构活动的第五个环节——项目启动。 完成架构规划之后,恭喜你,接下来可以着手准备项目的启动了。这是架构活动中极具里程碑意义的一个节点。项目的启动,标志着企业开始正式向一个架构活动投入各种资源。 项目启动时,你跟所有参与者就像组建了一个大家庭,开始朝着目标努
阅读全文
摘要:你好,我是郭东白。这节课我们来讲架构规划的最后一个环节——规划确认。 在上节课,我们已经梳理出了一组必保需求,然后从这组需求中推导出了一组任务。并且,我们以最大化某个项目目标的方式,将这组任务分配到了执行团队中。 完成这些工作后,我们距离整个项目的正式启动就只有一步之遥了。而这个重要的一步就是对整个
阅读全文
摘要:你好,我是郭东白。上节课我们讲了任务边界划分的五个核心信条,可以作为任务划分与调整时的策略依据。那么实际工作中应该怎么运用呢?这节课我们就来聊聊这个问题。 任务梳理和粒度控制 我们上节课提到的实体和用例的过程,其实就是建模中常用的用例梳理的过程。一般来说,产品同事会有相对完整的梳理。那么我们作为架构
阅读全文
摘要:你好,我是郭东白。上节课我们讲了统一语义和需求确认,这是架构规划的前两个环节。至此,多数的问题域都应该有且仅有一个执行域了。那么接下来,我们就来讲更细粒度的任务边界划分,这也是架构规划的第三个环节。 上节课我们讲到了从问题域到执行域的映射,是个粗粒度的映射关系。不过有些任务无法在粗粒度的划分下完成需
阅读全文
摘要:你好,我是郭东白。 上节课我们讲了架构规划这个环节的第一个部分,也就是统一语义。那么这节课我们就来讲第二个部分——需求确认。 需求确认与统一语义的过程是密不可分的。需求确认是在统一语义赋能之下进行的,所以两者并不是先后顺序的关系。 通过上节课的学习我们知道了,统一语义的主要场景和目的,就是对目标进行
阅读全文
摘要:你好,我是郭东白。上节课我们通过一个篇幅比较长的电商案例,详细展示了为什么在架构活动中会出现语义分歧。同时也描述了,架构师在统一语义这个环节中所要创造的真正价值是什么。即,看到不同角色之间语境的差异,然后通过一个完整的、自洽的、相互兼容的设计,来满足所有角色的诉求。 那么这节课,我们来继续分析语义分
阅读全文
摘要:你好,我是郭东白。从这节课开始,我们就进入到架构活动的第四个环节——架构规划。这个环节比较复杂,可以分为四个部分:统一语义、需求确认、边界划分和规划确认。这节课我们先来讲统一语义。 架构师的工作日常就是跟不同的角色沟通。然而每个角色的认知和语言,都在各自的职能与工作环境中逐渐形成并固定。如果没有统一
阅读全文
摘要:你好,我是郭东白。上节课我们讲了架构活动的第三个节点——可行性探索,并介绍了进入节点前的一些准备工作。有了这些基础,这节课我们就开始学习怎么进行可行性探索。 架构活动中的可行性探索工作,可以分成重大风险的发掘、风险预估、重大风险沟通和可行性决策四个部分。需要预先说明的是,我接下来介绍的方法仅仅适用于
阅读全文
摘要:你好,我是郭东白。从这节课开始,我们就进入到架构活动的第三个环节——可行性探索。 可行性探索是架构师帮助企业避免重大方向失误的最后一个节点。我们曾在法则二里分析过一家公司因为忽略可行性探索而导致重大损失的情况,那么今天这节课,我就来解释一下怎么通过有效的可行性探索环节,来避免这样的重大失误。在这个节
阅读全文
摘要:你好,我是郭东白。上节课我们讲了目标确认前的基本动作,那么这节课我们就来看看该怎么为企业找到一个正确的目标。 目标的正确性 上节课我们讲了,架构活动的目标大多是自顶向下给出的,因而架构师最初拿到的目标往往是模糊的,不够具体。那么在目标确认环节,我们就需要把这个模糊的目标变成一个正确的、满足SMART
阅读全文
摘要:FROM ubuntu:16.04 WORKDIR /usr/local/bin COPY ./res /usr/local/res COPY ./bin /usr/local/bin COPY ./baumer/Ubuntu-16.04/arm64 /usr/local/bin/cti ENV h
阅读全文
摘要:缘起 我一直在想,有什么方式可以让人比较轻易地保持每日学习,持续输出的状态。写博客是一种方式,但不是每天都有想写的,值得写的东西。 有时候一个技术比较复杂,写博客的时候经常会写着写着发现自己的理解有偏差,或者细节还没有完全掌握,要去查资料,了解了之后又继续写,如此反复。 这样会导致一篇博客的耗时过长
阅读全文
摘要:目录背景已经有了 git merge,为什么还需要 git rebase?一个不太妙的场景一个更不太妙的场景git rebase 派上用场什么时候用 git rebase?什么时候不能用 git rebase参考链接背景上周是我第一次用 git rebase 这个命令。在此之前,如果要同步别的分支上
阅读全文
摘要:写在前面 如果你不能很好的应用 Git,那么这里为你提供一个非常棒的 Git 在线练习工具 (关注 易先讯 ,获取更多内容) ,你可以更直观的看到你所使用的命令会产生什么效果另外,你在使用 Git 合并分支时只会使用 git merge 吗?有时使用 git rebase 可以比 git merge
阅读全文
摘要:你好,我是郭东白。从这节课开始,我们就进入到架构活动第二个环节的学习,那就是目标确认。 为架构活动确认一个正确目标,是架构师能为架构活动做出最大贡献的环节。从我的个人经验来看,一大半架构活动的目标都不具备正确性和合理性,也缺乏基本的逻辑论证。一旦目标错误,整个架构活动就没什么成功的希望了。所以,你如
阅读全文
摘要:你好,我是郭东白。在第16、17讲,我们讲解了架构师在架构活动中要起的作用,主要有达成共识、控制风险、保障交付和沉淀知识这四个方面。这是从架构师创造价值的维度来拆解的。 那么从这节课开始,我将从架构活动生命周期的维度上,去深度挖掘架构师要做哪些工作,才能保障架构活动的顺利进行。我们先从架构活动的第一
阅读全文
摘要:你好,我是郭东白。架构师在架构活动中主要有四个作用,分别是建设共识、控制风险、保障交付和沉淀知识。上节课我们讲了前两个,这节课就来讲保障交付和沉淀知识这两个。 保障交付 保障交付意味着架构师能够降低大型架构活动的不确定性和复杂度,最小化架构方案,最终保障高质量的交付。其中关键动作有三个:降低不确定性
阅读全文
摘要:你好,我是郭东白。在模块导读中我们提到了,架构师在架构活动中所发挥的关键作用主要有四个:建设共识、控制风险、保障交付和沉淀知识。这也是架构师创造价值所必备的四项基本能力。 这节课,我们先来讲前两项能力,看看架构师该如何帮助团队迅速达成共识、如何控制与面对风险。 建设共识 在互联网时代,我们面临着三个
阅读全文
摘要:你好,我是郭东白。上个模块我们讲了架构师的六条生存法则,提到了架构师的重要工作就是组织架构活动和制定架构方案。 那么具体来说,架构活动的完整过程是什么呢?架构师一般会面临什么样的挑战呢?又需要着重关注哪些节点呢?在这个模块里,我们就来回答一下这些问题。 这节课是整个模块的导读,我就先来介绍模块的整体
阅读全文
摘要:你好,我是辰洋,《郭东白的架构课》的项目负责人。 上节课东白老师与华良老师就职业规划、职业选择模型等问题,互相交流了看法与意见。那么我们这节课继续,看他们还聊了些什么。 主持人:郭东白 瓜子二手车集团CTO嘉 宾:陈华良 每日优鲜技术VP,前美团算法委员会主席 完整的对话视频如下: 此外,我还根据视
阅读全文
摘要:你好,我是辰洋,《郭东白的架构课》的项目负责人。 我们正文的第二个模块已经更新过半。之前已经预告过,东白老师会时不时邀请一些不同行业的技术领导者来交流与对话,为你提供更多的视角、更宽阔的视野和更多元的思考维度。 正值金三银四,也是一个职业复盘的好时节。基于此,东白老师邀请了每日优鲜的CTO陈华良老师
阅读全文
摘要:你好,我是辰洋,是《郭东白的架构课》的负责人。 一个技术人该具备哪些能力,才可以获得长久且成功的职业生涯呢?一个技术人该怎样知行合一,才可以突破瓶颈获得更具高度的成长呢?面对这些问题,于冰老师给出了他的理解。 主持人:郭东白 车好多集团CTO嘉 宾:于冰 快手高级副总裁 此外,我还根据视频整理了一版
阅读全文
摘要:你好,我是辰洋,是《郭东白的架构课》的负责人。 在专栏的第一模块中,东白老师从他二十多年的架构经验里,提取出了六条生存法则,来帮助架构师组织架构活动、为企业创造增量价值。不过除此之外,东白老师还想让你听到更多顶尖架构师的声音。所以,我们特地策划了对话节目,将邀请业内更多技术领导者,与东白老师一起,聊
阅读全文
摘要:你好,我是郭东白。上节课我们讲解了从技术战略到架构选型的相关知识点,这节课,我就来分享一个来自阿里速卖通的跨境电商的真实案例。 这个案例的跨度非常长,有五到六年的时间。顺便说一下我当时为什么加入到速卖通。我当时的老板非常有情怀。他认为做速卖通,也就是中国品牌的跨境出海,不仅能为中国企业带来价值,更能
阅读全文
摘要:编者按:东白老师于1月16日在极客时间开设了一场直播。这场直播持续了一个半小时,不仅直播间的讨论、互动氛围很热烈,还有很多同学反馈直播内容优质,希望可以看到逻辑更为严谨的文字版。所以,在恢复更新的今天,我们先更新这场直播的文字整理版。完整直播回放,可以点击链接观看。那么下周,我们将开始更新正文的第二
阅读全文
摘要:Go语言相比C++/Java等语言是优雅且简洁的,是笔者最喜爱的编程语言之一,它既保留了C++的高性能,又可以像Java,Python优雅的调用三方库和管理项目,同时还有接口,自动垃圾回收和goroutine等让人拍案叫绝的设计。 有许多基于Go的优秀项目。Docker,Kubernetes,etc
阅读全文
摘要:你好,我是辰洋,是《郭东白的架构课》的负责人。这是我们在这个专栏的第一次正式会面,你可能会觉得与我有些陌生。不过从我的眼光来看,对于专栏里的每一行字、每一个案例,对于在认真学习、留言打卡的你,我都太熟悉了。 好了,感性流露到此结束,言归正传。我看到留言区有几位小伙伴反馈: 文章看得很过瘾,不过也有些
阅读全文
摘要:你好,我是郭东白。到这里,我们就完成了模块一的学习。那么这节课,我就以一个更宏观的视角来总结一下整个模块的思路,帮助你更好地理解与吸收。 过程正义:为什么要定义生存法则? 你有没有想过,我们为什么要定义这些生存法则呢?在我看来,我们架构师要尤其信奉原则(Work by principles)。所谓信
阅读全文
摘要:你好,我是郭东白。 架构师通常并不管理团队,而是管理架构活动。更准确地说,是定义和引导架构活动。因为每个参与架构活动的个体,都有各自工作的优先级和汇报关系。因此在没有管理、考核和激励等手段的保障下,唯一能够帮助到架构师开展工作的,就是良好的文化环境了。 这就是我们第六条生存法则要覆盖的内容:架构师要
阅读全文
摘要:你好, 我是郭东白。 前四条法则分别讲了目标、资源、人性和技术周期,这些都与架构活动的外部环境有关。那么今天我们来讲讲在架构活动内部,也就是在架构师可控的范围内,应该遵守哪些法则。今天这节课,我们就先从技术体系的外部适应性讲起。 达尔文说过:“既不是最强壮的也不是最聪明的物种,而是最适应变化的物种最
阅读全文
摘要:你好,我是郭东白。今天我们来讲架构师的第四条生存法则,那就是尊重技术的生命周期。 人类的各种活动都要遵循事物的客观生命周期。不论是农业社会种田打渔,还是资本社会投资创业,行动太早或太晚,都会颗粒无收。技术也一样,也有自己的生命周期。而我们作为架构师,如果看不清技术的生命周期,那么所设计的架构就没法儿
阅读全文
摘要:本文根据郭东白在2016ArchSummit全球架构师(深圳)峰会上的演讲整理而成。 ArchSummit即将在2018年7月6日深圳华侨城洲际酒店开幕,更多分享内容请浏览:链接 讲师介绍:郭东白,现任阿里巴巴速卖通技术部总监。主要从事云计算和互联网电商领域的研究。有十六年大型软件系统研发和架构经验
阅读全文
摘要:你好,我是郭东白。上节课我们讲了架构活动中需要重视对商业价值的考量。作为一个架构师,必须要创造足够的商业价值,才能保障自己职业的长期。 那么你作为架构师,该如何为你的公司、部门或团队提供可量化的增量价值呢?主要有扩大收入与减少成本两种路径。今天这节课,我们就结合几个真实的案例来具体分析一下。 如何寻
阅读全文
摘要:你好,我是郭东白,今天我们来聊聊架构活动中对商业价值的考量。 今天我们要讲的是架构师的第三个生存法则:作为一个架构师,必须要在有限的资源下最大化架构活动所带来的商业价值。对于任何一个架构活动而言,架构师的可用资源,包括商业成本、研发成本、时间成本、迁移成本等等,都是非常有限的。但架构活动就是要在这些
阅读全文
摘要:你好,我是郭东白。上节课我们学习了怎么利用马斯洛理论去指导架构设计,尤其是该如何考虑和顺应研发人员的人性。 我们都知道,软件这个虚拟的存在最终是要服务于用户的,所以在软件设计的过程中也要考虑用户的人性。也就是说,一个架构师要站在用户的角度去思考架构的规划和设计。 你可能要问了,用户需求往往是产品经理
阅读全文
摘要:你好,我是郭东白。上节课我们学习了马斯洛关于人性的理论,那么这节课我们就利用这个理论来看看我们在架构活动中应该注意些什么。 架构设计必须符合人性,而在架构活动中,与“人”相关的主要就是研发人员和目标用户。那么今天这节课我们就先从研发人员讲起。 想想看,如果架构设计忽略或剥夺了研发人员的人性,会怎样呢
阅读全文
摘要:你好,我是郭东白,今天我们来聊聊架构师的第二个生存法则:架构活动需要尊重和顺应人性。 自从学习计算机专业的那一天起,我们似乎就走入了一个简单直接的机器世界,一个完全靠逻辑和数字主宰的世界。于是我们总不自觉地认为凭借计算机就可以解决所有的问题。也许正是计算机的作用被过分夸大,使得我们在软件研发过程中走
阅读全文
摘要:你好,我是郭东白。上节课我们讲了目标在架构规划中的重要性,也明确了目标缺失的两大根因。那么这节课,我们就来聊聊该如何寻找正确的架构目标,以及如果目标制定错误,该如何挽回。 如何寻找正确的架构目标? 主要分为三种情况,我们来分别讨论。 确认一个正确目标,且要试图逼近它 一般来说,我们相信达尔文的进化论
阅读全文
摘要:你好,我是郭东白。今天这节课,我们就正式开始架构师生存法则的学习。 你肯定看到过这样的观点:架构设计就是一个迭代的过程,我们要不断发现并且补偿现阶段软件设计的不完美,然后通过各种手段打补丁升级。因此,架构设计永远都是螺旋上升的,没有也不需要目标的指引。 也有人认为定义目标并不是架构师的职责。毕竟目标
阅读全文
摘要:你好,我是郭东白。这节课是我们模块一的导入部分,我会先来介绍模块的主要内容,以及为什么我要讲生存法则这个话题。 一名软件架构师要为相对复杂的业务制定,并且引导实施一个结构化的软件方案。这个发现最终方案和推动实施的过程,就是架构活动。架构活动是你作为架构师必须要认识清楚的,但同样也是很多架构师所忽略的
阅读全文
摘要:你好,我是郭东白,是一个做了15年架构师和6年CTO的人。 我先简单介绍一下自己。我从布朗大学(Brown University)获得博士学位后,在美国甲骨文、微软和亚马逊陆续工作了15年,做过研发、研发经理、 产品经理、数据架构师等等。2014年,我回国加入阿里巴巴。 在阿里,我刚开始是AliEx
阅读全文