当前这篇文章至少比计划拖后了两个月。在上一篇文章《条分缕析分布式:到底什么是一致性?》中,我们仔细辨析了「一致性」相关的几个容易混淆的概念。而在本文中,我们会沿着逐步深入的思路,跟大家继续讨论顺序一致性、线性一致性、最终一致性等几个概念。
凡是做服务器开发的技术同学,估计都对分布式系统以及相关的理论感兴趣。而对于分布式理论,大家讨论的最多的恐怕就是「分布式一致性」问题了。然而,不管是学术界还是业界的发展历史上,对于「一致性」这个概念的理解,始终充满了混乱。
前几天我做了一个内部分享,是关于「精益创业 (Lean Startup)」的。为什么要关心这样一门理论呢?因为它和我们每个人(包括技术人员)都息息相关。特别是作为一名技术人员,在平常埋头做事敲代码的某个时刻,你是否也停下来想过下面这些问题呢?
关于机器学习,有一个古老的笑话:
Machine learning is like highschool sex. Everyone says they do it, nobody really does, and no one knows what it actually is. [1]
翻译过来意思大概是:
机器学习就像高中生的性爱。每个人都说他们做了,但其实没有人真的做了,也没有人真正知道它到底是什么。
当提到「艺术」这个词的时候,很多人头脑中首先浮现出来的,很可能是以梵高为代表的后印象派画作,也可能是文艺复兴时期米开朗基罗的雕像,或者是中国古代的诗词歌赋,甚至是玛雅文明的遗迹,诸如此类的东西。总之,我们平常所从事的技术工作——写代码、调试程序,这些都跟「艺术」毫不沾边。
如果时间退回到十多年以前,新兴互联网公司的技术人员几乎都是从「业务开发」开始自己的职业生涯的。然而到了今天,不知道你有没有发现,业务开发和纯技术的开发已经有了明显的分野。
我们要想把一件事情做好,最首要的是有一个明确的目标。比如,很多公司都会给员工制定KPI (Key Performance Indicator),这就是为了给人们的工作指明方向和目标。这个目标不仅是明确的,而且很可能是量化的(即包含具体的数字指标)。
在某些时刻,比如企业招聘的时候,比如你给上小学的儿子讲数学题的时候,再比如,你花了半小时跟某人辩论,最后却发现他根本不讲逻辑的时候,难免会在头脑中形成这样的问题:到底人和人之间的区别是什么?到底是什么东西导致了这些区别?