06树:如何深度运用树的遍历?
树在我们的应用程序中非常常见,大部分语言的 Map 数据结构,大多是基于树来实现的。此外还经常会遇到很多其他树结构的变种,比如 MySQL 会使用 B+ 树、MongoDB 会使用 B- 树。其中二叉树是各种树的基础,相关的题目也是变化多样,因此,各大公司都喜欢通过二叉树,考察面试者对语言底层数据结构的理解。
树在我们的应用程序中非常常见,大部分语言的 Map 数据结构,大多是基于树来实现的。此外还经常会遇到很多其他树结构的变种,比如 MySQL 会使用 B+ 树、MongoDB 会使用 B- 树。其中二叉树是各种树的基础,相关的题目也是变化多样,因此,各大公司都喜欢通过二叉树,考察面试者对语言底层数据结构的理解。
通过前面几个课时的介绍,相信你对 ShardingSphere 已经有了初步了解。从今天开始,我将带领你通过案例分析逐步掌握 ShardingSphere 的各项核心功能,首当其冲的就是分库分表机制。
单库单表系统
在上两节课中,我们已经了解了 Kubernetes 中最关键的对象 Pod,也学习了一些 Pod 的常见用法。
每一个 Pod 都是应用的一个实例,但是通常来说你不会直接在 Kubernetes 中创建和运行单个 Pod。因为 Pod 的生命周期是短暂的,即“用后即焚”。理解这一点很重要,这也是“不可变基础设施”这一理念在 Kubernetes 中的最佳实践。同样,对于你后续进行业务改造和容器化上云也具有指导意义。
今天这一讲我会带你学习 Serverless 应用中的依赖管理。
在前面的内容中,我们的 Serverless 应用代码都是独立的函数,不涉及其他依赖(在 Serverless 应用中,依赖可以分为两种:通过具体编程语言的包管理工具,如 npm、pip 等安装的包;通过 apt 等工具安装的程序运行时需要的软件包)。而在实际进行应用开发时,大部分情况下都会有第三方依赖。比如你要用 Node.js 操作 MySQL 时,肯定要用到操作数据库的依赖包(如 node-mysql2),然后你很快就写出如下的函数代码:
本节课开始我们将学习 Netty 通信过程中的编解码技术。编解码技术这是实现网络通信的基础,让我们可以定义任何满足业务需求的应用层协议。在网络编程中,我们经常会使用各种网络传输协议,其中 TCP 是最常用的协议。我们首先需要了解的是 TCP 最基本的拆包/粘包问题以及常用的解决方案,才能更好地理解 Netty 的编解码框架。
在亚马逊内部有所谓的“两个披萨”团队,指的是团队的人数不能多到两个披萨饼还不够吃的地步。也就是说,团队要小到让每个成员都能做出显著贡献,并且相互依赖,有共同目标,以及统一的成功标准,这样团队的工作效率才会高。
你好,我是周爱民。
今天这一讲的标题是一个模板。模板这个语法元素在 JavaScript 中出现得很晚,以至于总是有人感到奇怪:为什么 JavaScript 这么晚才弄出个模板这样的东西?
模板看起来很简单,就是把一个字符串里的东西替换一下就行了,C 语言里的 printf() 就有类似的功能,Bash 脚本里也可以直接在字符串里替换变量。这个功能非常好用,但在实现上其实很简单,无非就是字符串替换而已。
你好,我是戴铭。
随着业务开发迭代速度越来越快,完全依赖人工保证工程质量也变得越来越不牢靠。所以,静态分析,这种可以帮助我们在编写代码的阶段就能及时发现代码错误,从而在根儿上保证工程质量的技术,就成为了 iOS 开发者最常用到的一种代码调试技术。
你好,我是鸟窝。
在写 Go 程序之前,我曾经写了 10 多年的 Java 程序,也面试过不少 Java 程序员。在 Java 面试中,经常被问到的一个知识点就是等待 / 通知(wait/notify)机制。面试官经常会这样考察候选人:请实现一个限定容量的队列(queue),当队列满或者空的时候,利用等待 / 通知机制实现阻塞或者唤醒。
你好,我是 Chrono。
上节课我讲了自动类型推导,提到 auto 推导出的类型可以附加 const、volatile 修饰(通常合称为“cv 修饰符”)。别看就这么两个关键字,里面的“门道”其实挺多的,用好了可以让你的代码更安全、运行得更快。今天我就来说说它们俩,以及比较少见的另一个关键字 mutable。