02SQLvNoSQL:一次搞清楚五花八门的“SQL”
这一讲我们开始讨论有关 SQL 及其变种的前世今生,以及它与分布式数据库之间的纷繁复杂关系。
21 世纪的开发者往往要面对一种窘境:需在众多的数据库中艰难地做出选择。他们其实也想如老一辈技术人一样闭着眼睛去选择 Oracle 或者 DB2,因为它们曾经被证明是“不会出错”的选择,即无论选择哪款数据库,都不会丢工作。
这一讲我们开始讨论有关 SQL 及其变种的前世今生,以及它与分布式数据库之间的纷繁复杂关系。
21 世纪的开发者往往要面对一种窘境:需在众多的数据库中艰难地做出选择。他们其实也想如老一辈技术人一样闭着眼睛去选择 Oracle 或者 DB2,因为它们曾经被证明是“不会出错”的选择,即无论选择哪款数据库,都不会丢工作。
01 讲我们讲了 npm 的技巧和原理,但其实在前端工程化这个主题上除了 npm,还有不可忽视的 Yarn。
Yarn 是一个由 Facebook、Google、Exponent 和 Tilde 构建的新的 JavaScript 包管理器。它的出现是为了解决历史上 npm 的某些不足(比如 npm 对于依赖的完整性和一致性保障,以及 npm 安装速度过慢的问题等),虽然 npm 目前经过版本迭代汲取了 Yarn 一些优势特点(比如一致性安装校验算法等),但我们依然有必要关注 Yarn 的思想和理念。
上一讲,我们通过分析传统开发模式和响应式编程实现方法之间的差别,引出了数据流的概念。我们知道响应式系统都是通过对数据流中每个事件进行处理,来提高系统的即时响应性的。
本课时将为你讲解 ShardingSphere 是一款什么样的 Apache 开源软件。
在上一课时中,我详细分析了分库分表的表现形式以及分片架构的解决方案和代表性框架。可以看到,ShardingSphere 同时实现了客户端分片和代理服务器组件,并提供了分布式数据库的相关功能特性。作为一款优秀的开源软件,ShardingSphere 能够取得目前的成就也不是一蹴而就,下面我们先来回顾一下 ShardingSphere 的发展历程。
在开始深入分析 MyBatis 核心架构以及具体代码实现之前,我先通过一个示例来帮助你快速了解 MyBatis 中的常见概念以及其基础使用方法。
这里我会以一个简易订单系统的持久化层为例进行讲解,整体的讲解逻辑是这样的:
队列在日常生活中很常见,当我们排队买票看电影的时候,排在队列前面的人先入场,排在队列后面的人只能后入场。在计算机系统中常用先进先出(First In First Out)的队列来表示这种场景。
上一讲我讲了 Serverless 架构兴起的必然因素,在这个过程中,我简单提到了 Serverless 的概念,相信你对 Serverless 已经有了初步的认知,这节课我将继续深入剖析到底什么是 Serverless。
有不少刚接触 Serverless 的同学会认为 FaaS 就是 Serverless,也有同学认为 PaaS 也是 Serverless,还有同学说使用 Serverless 就没有服务器了。总的来说,很多同学对 Serverless 到底是什么并没有一个很清晰的认知,概念还比较模糊,所以咱们就用一节课的时间,搞定这个概念。
通过上一课时的学习,我们已经对 Kubernetes 的前世今生有所了解。接下来,我们开始具体学习如何将 Kubernetes 应用到自己的项目中,首先就需要了解 Kubernetes 的架构。所以,在本节课程中,我们会一起学习 Kubernetes 的架构设计,以及背后的设计哲学。
我刚毕业开始工作的时候,是比较讨厌邮件的。面对面聊不好吗,异地的话打电话不好吗?但是现在,我和组外的工作伙伴说得最多的一句话就是:“好的,你发封邮件给我吧。”有时候会再加一句,“抄送我老板”。
你好,我是涂伟忠。在上一讲中,我们已经学习了正则中和一些元字符相关的内容。这一节我们讲一下正则中的三种模式,贪婪匹配、非贪婪匹配和独占模式。
这些模式会改变正则中量词的匹配行为,比如匹配一到多次;在匹配的时候,匹配长度是尽可能长还是要尽可能短呢?如果不知道贪婪和非贪婪匹配模式,我们写的正则很可能是错误的,这样匹配就达不到期望的效果了。