02__大厦基石:无生有,有生万物
你好,我是七牛云许式伟。
在上一篇中,我们把“构建一个应用程序”类比成“构建一座大厦”,并从宏观全局的视角剖析了应用程序这座大厦的构成。今天,我们将更加近距离地去解剖这座大厦的地基:冯·诺依曼体系结构。
你好,我是七牛云许式伟。
在上一篇中,我们把“构建一个应用程序”类比成“构建一座大厦”,并从宏观全局的视角剖析了应用程序这座大厦的构成。今天,我们将更加近距离地去解剖这座大厦的地基:冯·诺依曼体系结构。
你好,我是朱晔。
在上一讲中,我与你介绍了使用并发容器等工具解决线程安全的误区。今天,我们来看看解决线程安全问题的另一种重要手段——锁,在使用上比较容易犯哪些错。
你好,我是乔新亮。今天,我想和你聊聊关于工作状态和薪资报酬的问题。
为什么要聊这个话题呢?在第一讲中,我们聊到每五年就要登上一个职业生涯的新台阶,很多同学觉得这很难。我必须得说,确实不容易。至少,很多人都还不具备快速成长的先决条件:一个良好的工作状态。
你好,我是胡光。从今天开始,我将带你正式进入 C 语言的编程世界。我们总会听到这样一种说法:兴趣是最好的老师。引起你对编程的兴趣,就是今天这讲的目的。如果你之前对于 C 语言的认知还停留在黑白纯色阶段的话,今天就让我们一起来进入一个彩色的 C 语言世界,来,跟我一起给它点儿颜色!
你好,我是陈磊。
我相信在学习完上一节课后,你已经明白了接口测试是在测什么,我们为什么需要做接口测试。那么,当你面对一个接口测试任务的时候,你知道该如何开始吗?其实,任何事情从 0 到 1 都是一个门槛,你只要跨过这个门槛,后面就会一马平川。今天我就来告诉你,如何开始接口测试,让你面对一个项目不再束手无策,也不再面露难色。
你好,我是陈东。
当我们在电脑中查找文件的时候,我们一般习惯先打开相应的磁盘,再打开文件夹以及子文件夹,最后找到我们需要的文件。这其实就是一个检索路径。如果把所有的文件展开,这个查找路径其实是一个树状结构,也就是一个非线性结构,而不是一个所有文件平铺排列的线性结构。
你好,我是聂鹏程。
在上一篇文章中,通过对分布式发展历程的学习,我们对分布式技术有了一个整体印象。接下来,我们就再来看看可以用哪些指标去具体地衡量一个分布式系统。如果你已经对分布式系统的指标了解得很清楚了,可以直接跳过这篇文章,学习下一讲的内容。
你好!我是郑晔。
上一讲我们讲了软件开发就是在解决问题。那问题一般是如何解决的呢?最常见的解决问题思路是分而治之,也就是说,我们要先把问题拆分开。在每个问题都得到解决之后,再把这些解决好的子问题以恰当的方式组装起来。如何分解与组合,就是我们要在软件设计中考虑的问题。
你好,我是李玥。这节课我们来聊一下几个比较常见的开源的消息队列中间件。如果你正在做消息队列技术选型,不知道该选择哪款消息队列,你一定要先听一下这节课的内容。
了解了现代计算机的基本硬件组成和背后最基本的冯·诺依曼体系结构,我们就可以正式进入计算机组成原理的学习了。在学习一个一个零散的知识点之前,我整理了一份学习地图,好让你对将要学习的内容有一个总纲层面的了解。
你好,我是宝玉。我今天分享的主题是:掌握工程思维,把每件事都当作一个工程项目来推进。
我大学学的是软件工程专业,毕业十多年后再回顾当年学的专业课,好多专业概念已经记忆模糊,唯有对一位老师的教诲记忆深刻,对我毕业后的职业生涯影响深远:
你好,我是高楼。
上节课我们把性能从“测试”引到了“工程”级别。接下来,我们要理一理工程级别中几个重要的概念,包括:
这些概念贯穿整个性能工程,有了它们,我们就不会在性能项目中迷失方向。为什么这么说呢?接下来的课程里,我会给你一一分析。
你好,我是郭忆。
在上一节课中,我和你一起回顾了大数据的发展历史,从历史脉络中,我们看到了数据中台凸显的价值,并得出数据中台是大数据下一站的结论。
如果你问斯坦福大学的大四学生,竞争最激烈的工作是什么?他们的答案已经不是投资银行分析师,或者麦肯锡的咨询顾问,也不是谷歌的工程师,而是:产品经理。
你好,我是李兵。这是我们专栏的第二讲,我们来看下“函数是一等公民”背后的含义。
如果你熟悉了一门其他流行语言,再来使用 JavaScript,那么 JavaScript 中的函数可能会给你造成一些误解,比如在 JavaScript 中,你可以将一个函数赋值给一个变量,还可以将函数作为一个参数传递给另外一个函数,甚至可以使得一个函数返回另外一个函数,这在一些主流语言中都很难实现。
你好,我是朱维刚。欢迎你跟我学习线性代数。今天我们要讲的是“线性代数这门课的基本概念”。
线性代数可以运用在很多领域,比如:工程学、计算机科学、经济学、信号处理等等。我们来看一个在经济学中常见的例子:消费矩阵。
你好,我是唐聪。
在上一讲中,我和你分享了 etcd 的前世今生,同时也为你重点介绍了 etcd v2 的不足之处,以及我们现在广泛使用 etcd v3 的原因。
今天,我想跟你介绍一下 etcd v3 的基础架构,让你从整体上对 etcd 有一个初步的了解,心中能构筑起一幅 etcd 模块全景图。这样,在你遇到诸如“Kubernetes 在执行 kubectl get pod 时,etcd 如何获取到最新的数据返回给 APIServer?”等流程架构问题时,就能知道各个模块由上至下是如何紧密协作的。
你好,我是倪朋飞。
每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或者 uptime 命令,来了解系统的负载情况。比如像下面这样,我在命令行里输入了 uptime 命令,系统也随即给出了结果。
在系统从 0 到 1 的阶段,为了让系统快速上线,我们通常是不考虑分层的。但是随着业务越来越复杂,大量的代码纠缠在一起,会出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动一处就牵一发而动全身等问题。
你好,我是炒炒。
上一讲,我们通过对用户体验的拆分,分解了用户吐槽体验不好的原因。但是,用户的问题只占据了体验设计师日常中的一部分,除了与外部沟通,大多数时间设计师还要和内部交流。
你好,我是许健。今天我要跟你聊一聊,怎样来使用经理权的问题。
上一节课中我们介绍了领导力的 5 个层次和获得领导力的重要方法——信任,今天我就和你谈谈其中最低层次的领导力,也就是用“职位”来领导。
你好,我是李一帆。
在我做情感咨询的这么多年里,你猜一下,我被问的最多的一个问题是什么?这个问题就是:“老师,你觉得 Ta 到底喜不喜欢我?”或者,“Ta 到底爱不爱我?”
你好,我是宋宁。今天这节课我要给你讲一下到底什么是敏捷。
当谈到敏捷时,大家往往是仁者见仁,智者见智,有各种不同的理解。然而这里面,有不少是对敏捷的误解,比如在我平时的咨询过程中,会听到一些团队成员这样说敏捷:
你好,我是程远。
今天,我们正式进入理解进程的模块。我会通过 3 讲内容,带你了解容器 init 进程的特殊之处,还有它需要具备哪些功能,才能保证容器在运行过程中不会出现类似僵尸进程,或者应用程序无法 graceful shutdown 的问题。
你好,我是于航。
在开始真正学习 Wasm 这门技术之前,我想先来问你一个问题:你有没有思考过,在 Web 技术的历史发展长河中,为什么会出现 Wasm 这样一门技术?现有的这些 Web 技术,又存在着哪些无法解决的问题?
你好,我是 winter(加微信:642945106 发送“赠送”领取赠送精品课程 发数字“2”获取众筹列表。)。
在上一篇文章中,我们简要地总结了前端的学习路径与方法,我们提到的第一个学习方法就是:建立知识框架。那么,今天我们就一起来列一份前端的知识框架图。
你好,我是欧创新。
DDD 的知识体系提出了很多的名词,像:领域、子域、核心域、通用域、支撑域、限界上下文、聚合、聚合根、实体、值对象等等,非常多。这些名词,都是关键概念,但它们实在有些晦涩难懂,可能导致你还没开始实践 DDD 就打起了退堂鼓。因此,在基础篇中,我希望能带着你一起做好实践前的准备工作。
你好,我是李玥。
今天这节课我们看一下,如何设计一个快速、可靠的存储架构支撑商品系统。
相对于上节课提到的订单系统,电商的商品系统主要功能就是增删改查商品信息,没有很复杂的业务逻辑,支撑的主要页面就是商品详情页(下文简称:商详)。不过,设计这个系统的存储,你仍然需要着重考虑两个方面的问题。
你好,我是郑晔。
上一讲,我们讲了两种常见的命名的坏味道,这一讲的话题还是命名,只不过,这个主题是国外那些经典编程书籍所不曾涵盖的话题:英语命名。
我们已经知道,环境变量 GOPATH 指向的是一个或多个工作区,每个工作区中都会有以代码包为基本组织形式的源码文件。
这里的源码文件又分为三种,即:命令源码文件、库源码文件和测试源码文件,它们都有着不同的用途和编写规则。( 我在“预习篇”的基础知识图介绍过这三种文件的基本情况。)
你好,我是陶辉。
上一讲我们提到,高频地命中 CPU 缓存可以提升性能。这一讲我们把关注点从 CPU 转移到内存,看看如何提升内存分配的效率。
或许有同学会认为,我又不写底层框架,内存分配也依赖虚拟机,并不需要应用开发者了解。如果你也这么认为,我们不妨看看这个例子:在 Linux 系统中,用 Xmx 设置 JVM 的最大堆内存为 8GB,但在近百个并发线程下,观察到 Java 进程占用了 14GB 的内存。为什么会这样呢?
你好,我是高伟。准备好纸和笔了吗?让我们一起来学习视觉笔记。
这一节课我们来学习“人物”这个视觉元素。有的课程会把人物的绘画放在教程中比较靠后的位置,因为人物在视觉呈现里其实是比较难画的一种元素。
你好,我是胡夕。今天我来讲讲 Kafka 源码的日志(Log)对象。
上节课,我们学习了日志段部分的源码,你可以认为,日志是日志段的容器,里面定义了很多管理日志段的操作。坦率地说,如果看 Kafka 源码却不看 Log,就跟你买了这门课却不知道作者是谁一样。在我看来,Log 对象是 Kafka 源码(特别是 Broker 端)最核心的部分,没有之一。
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。
你好,我是吴骏龙。今天我会和你分享容量测试与验证的话题。
相对于性能测试和压力测试这些耳熟能详的名词,“容量测试”这个词也许你是第一次听到。在百度、Google 上一搜,结果倒是不少,但很多解释过于陈旧,并没有跟上互联网的发展速度。比如:
你好,我是黄勇。在开始今天的内容之前,我想先问你一个问题:在职场中,你最痛恨的事情是什么呢?
对我而言,最痛恨的事情莫过于:HR 突然发给我一张表格,让我月底之前给团队做完绩效考核,HR 将基于此考核结果来计算员工奖金。
上一篇文章中,我介绍了秒杀系统在架构上要考虑的几个原则,我估计你很快就会问:“知易行难,这些原则应该怎么应用到系统中呢?”别急,从这篇文章开始,我就会逐一介绍秒杀系统的各个关键环节中涉及的关键技术。
你好,我是邱岳,今天我要和你分享的主题是:如何锤炼产品创意。
在充分收集信息、了解领域知识和市场情况之后,在开始投入资源进行产品设计和研发之前,我们需要做个简单的推演。这是锤炼自己产品创意的第一步,无论产品形式,都应该有这个过程。
你好,我是曹倩芸。在开始本节课程之前,我想让你先看看以下三个例子,并基于你已有的文学素养和基础,判断一下它们的结构是否存在问题?或者说,在你看来,它们是否是病句呢?
你好,我是相辉。
在我过去十几年的咨询工作中,经常会遇到一个问题:面对五花八门的用户需求,到底哪一个才是具有商业化潜能,需要我们集中兵力去做的?
因为并不是所有的业务方向都能帮助企业成长发展,作为商业顾问,我需要确定该需求最终能够成为一个正向现金流的循环,它可以逐渐自转起来,从而帮企业实现盈利。