你好,朋友们!我盼望你爱好我们的这个新天下。它跟2007年的时分有很大分歧。疾速提醒:假如你有典质存款,仍是归去把它撤消了吧。置信我。
我很快乐你还对盘算机感兴味!如今,我们有了非常多分歧于10年前的新状况,这些状况带来了新的应战。我们的伎俩和脸上都带着电脑,把它们放在口袋里,把它们放在冰箱和水壶里。汽车本人驾驶可能比人类更好,我们教会程序去参与各类竞赛,在这些方面,它比人类更杰出——不外饮酒竞赛除外。
在你踏入这个时空之前,你可能曾经看到了 iPhone 的发布。苹果是最大和最富有的科技公司,这首要归功于 iPhone 及其操作系统 iOS 。 谷歌有个与其竞争的手机操作系统叫做 Android ,微软则试图用 Windows Phone 来分一杯羹,但没有成功。
我们Start把使用程序叫做 app,而一些网站则自称为 web app。 2008年,谷歌发布了一款名为 “Chrome”的新阅读器。九年后,它成了最盛行的上彀方法。
Chrome 团队在 JavaScript 方面投入了大量任务,代码逐月改良。Web app 是运用大量 JavaScript 编写的,它们相似你的时间的桌面界面。
很多公司也投资于 JavaScript 使其变得更好--它如今支撑类和模块。我们运用可以编译为 JavaScript 的言语,如 TypeScript (来自微软,如今很酷)或 Flow。
迩来我们写了非常多 JavaScript 代码,由于没有人再支撑 Flash 。我们乃至在Server上运转 JavaScript ,而不是 Perl,运用名为 Node 的技术。固然,实践上没有听起来这么轻易。
还记得 Swing、 SWT 和 wxWidget 之类吗?我们不能不在阅读器天下重造它们。几个新的 UI 编程模子呈现了,它们首要集中在组件上。
我们必需找到一种办法来设计、构建和测试 app ,同时坚持它们的呼应才能(我们用这个术语来描绘一个在手机上看起来不像渣滓的网站),我们也需求使其坚持修长 —— 不是每一个人都有疾速的网络衔接,但每一个人都有一个阅读器在口袋里。
为了协助一切这些,如今有组件框架。这个术语很模糊,由于它包括了谷歌的 Angular 、脸书的 React 和社区的 Vue 之类。但这是我们具有的最好的术语。
特地说一下,我不断定你是不是记得2007年以来的 Facebook(脸书)。阿谁时分它在美国愈发强大,如今它变得更大了,具有超越十亿的用户,它也是天下上最大的代码库之一。
Facebook 开发团队编写了很多优良的代码并发布于网上。他们有本人的 F8 集会。大大多数至公司都有本人的集会。
CSS 也不能不退化,由于新的 app 需求愈加庞杂的结构。我们不再运用带有图象的表格,帧也不见了。取而代之,我们曾经创立了新的规范,比方 CSS Float、 Flexbox 和 CSS Grid。
人们必需对这些规范实行迭代,而且他们曾经创建了库来使工作看起来一致,比方 Bootstrap、 Foundation 等等。相似于 JavaScript , 我们曾经创立了编译成 CSS 的言语。它们补偿了 CSS 脱漏的一些工具,比方变量或模块。这依然很难。
不要由于困惑而觉得惧怕,现实上我们都有点困惑,可是困惑不是甚么大不了的事。现在天下上有那末多开发职员,科技公司也正在变得愈来愈成功。我们运用“创业”这个词来描绘那些生长敏捷可是不晓得接下来该怎样办的公司。可是即便是这个词如今也变得老旧了。
比拟之前,如今有更多的程序员,更多的程序和更多的装备。我们如今有了更多的数据。盘算机必需变得弱小到足以处置一切的这些数据,我们曾经开发了几种技术来把这些数据转化为深入的看法。
起首,我们创立了一个叫做数据科学的范畴。数据科学的目标是从数据中进修和提守信息。
例如,一家名为 Waze 的草创公司让用户在他们本人的手机上安装 App 来追踪他们驾驶轨迹,由于有非常多人安装 APP ,Waze 有了非常多关于汽车行迹的数据。他们用这些数据开发了一个程序来了解那里有交通梗塞。
如今,当你翻开你手机上 Waze ,你可以在舆图上看到及时的交通拥堵状况然后选择另外一条路。
Waze 曾经被谷歌收买的。这在创业公司里是常常发作的。
数据科学范畴有三大应战——数据存储、了解数据和应用数据。现在我们在这三个标的目的上都有所提高。让我们辨别看看这些应战现在的近况。
其它翻译版本 (1) 加载中如今我们需求存储更多的信息,然后找出哪一个部分是主要的。那末我们就需求创造出新的数据库。而像 MySQL 和 PostgreSQL 不能知足我们存储 TB 级数据的请求(我们叫它大数据)。
大型的互联网公司凡是都面对着这些应战,因而他们处于开发这些技术的前沿。大大多数时分,技术起首在外部运用,然后是开源。
有一场我们称之为 NoSQL 的活动。这类新的数据库运用了传统关系数据库的一些商定,并将它们实行了转换。
比方 Hadoop,它处置数据怎么存储在很多硬盘算机上。它定义了一种处置称为 MapReduce 的数据的办法(灵感来自于 Google 的一篇论文——它是至公司迩来撰写的优良科学论文之一)。
以后,又有了 Cassandra ,它的数据不以表方式存储,而是一组键和列,这些键和列可以存储在分歧的盘算机上。它还确保这些电脑中的任何一台都能在不形成数据丧失的状况下离线。
再厥后,我们有了 MongoDB,一款易于安装和运用原型使用程序的数据库。在2017年,我们看待科技的立场和十年前看待盛行明星的方法一样 —— 我们狂热地保卫此中的一些人,并激烈地憎恶别人。MongoDB —— 就像乐队中的“五分钱乐队”那样 ——属于后者。
其它翻译版本 (1) 加载中在“了解数据”阵营中,大部分核心都放在了机械进修范畴。如今每一个数据科学家的Tools箱中都有很多新技术,从朴实分类法到深度进修。他们首要是编写 Python ,并与开发职员一同任务,使得机械进修简直无处不在。
例如,在数据科学家的协助下,非常多 Web 使用程序都运用 A/B 测试。这类技术经过使用程序的两个略微分歧的版本的方法供给给分歧但相似的用户组。它用于检查哪一个版本可以更快地到达我们想要的目的,不管是经过注册仍是购置。
非常多像 Airbnb(发音为air-bee-en-bee)、Uber 和 Netflix 如许的大型公司都在同时运转数百次 A/B 测试,以确保用户取得最好体验。Netflix 是一款使用程序,经过它用户可以在一切装备上旁观电视节目。
像 Netflix 如许的公司是宏大的。由于他们服务于非常多人,他们必需确保他们随时都在运转。这意味着他们必需很好地管理他们的电脑。他们可以在需求时添加数百台新Server。
这在传统数据中间很难完成,所以 Netflix 中优良的工程师运用了虚拟机。还记得2006年推出的亚马逊网络服务吗? 事先,他们Start供给了着名的 EC2(Elastic Cloud Compute),以协助人们在亚马逊的数据中间取得虚拟盘算机。
今日,他们具有近80个相似的服务,都是为了协助企业疾速生长而创建的。我们曾有一个时兴的名字 - “云” - 可是这个术语和 NoSQL 一样难以定义。
Google 和 Microsoft 供给了他们本人的云,用于为云服务开辟市场。同时在聪慧者之间互相竞争之时,诸多类型的猖狂立异Start呈现了。
其它翻译版本 (1) 加载中起首,我们Start更多地像代码一样考量我们的根底设备。之前,你必需购置新的Server,拔出键盘并安装相干设备。
如今我们运用像 Puppet、Chef 和 Ansible 如许的配置管理Tools来主动化我们的Server。你可使用像 Ruby 如许的言语编写实践代码,并依据配置设置Server。假如需求更改,你只需编辑配置,然后更新Server便可。不需求 SSH 。
然后我们Start寻觅更多的容器。由于可以在 EC2 上配置机械,所以我们需求在与生产类似的情况中实行开发。
我们从虚拟机Start,运用像 Vagrant 如许的Tools来主动化它们。可是,我们终极失掉了 Linux 上的容器, Docker 。我们找到了一种在我们的 MacBook 上运转 Linux 而不运转全部虚拟机的方法,同享一些操作系统相干操作的办法。
运用 Docker ,我们可以创立与我们在生产中运转的系统完整适配的系统描绘。开发职员挪用这些描绘映像,并Start在称为容器的虚拟实例中运转他们的使用程序。
然后,云供给商意想到这一点,让我们直接在云上运转我们的容器。他们给了我们像 Marathon 和 Kubernetes 如许的Tools,称为编配框架(orchestration)。这些框架可让开发职员在容器中运转使用程序,而不必担忧可伸缩性、容错、监控和发明。Server变成一次性的,我们不再需求给他们聪慧的名字了。
这也答应开发职员构建小型使用程序(称为服务或微服务),然后自力运转它们。因为这些微服务具有很少的内部依靠性,因而我们Start研讨运用新的编程言语,如 Go(它是为了运用可并发性而创立的)和 Java。是的,Java 仍在,而且会变得更好。
另有像 Scala 和 Clojure 等言语让我们可使用 Java 虚拟机和一切相干的库。像 AirBnB 如许的网站运用几种编程言语和数据库运转数百种微服务。
因为这些微服务,我们不能不从头审阅我们的一些编程模子。我们如今具有更多,更小的使用程序,这些是我们必需和谐的。
因而,有像 Apache Kafka、Google PubSub 和 RabbitMQ 如许的Tools可以协助爱闲谈的电脑更好的相同。Kafka 是由 LinkedIn 创立的,一个社交网络,在这人们可以宣扬本人的职业生活。它厥后变成了开源的。
编配框架引入的额定庞杂性大部分与大型团队相干的。记着 - 我们如今比之前有更多的人在构建软件,每一个程序员都想顿时发布他们的代码。假如你的公司有数百位开发职员在网站上一同任务,则需求确保他们不用协同其版本。
所以我们以小团队来构建软件。团队凡是具有一些 DevOps 技能,而且团队成员对怎么安排软件的操作有足够的了解。他们运用某种方式的矫捷进程,此中他们在短时间内不断发布软件。和 Spotify (这是一个新的音乐流媒体服务)一样,有点组织也会测验考试其他方式的条理构造,如 Squads、Chapters、Tribes 和Guilds(小分队、社团、部落和工会)。
一切这些项目(和之条件到的很多其他项目)都是由一群人地下开发的。有时他们是由一家公司资助的。大部分状况下,开发任务都在一个名为 GitHub 的网站上。在那边,人们可以讨论软件,地下地构建,经过答复脸色符号来表现赞美。脸色符号是我们如今用来表达感情的特别字符,比方点赞。 :-)
如今另有更多的社区,他们都在测验考试用开放的方法来构建软件。例如,名为 EmberJS 的 Web 框架运用社区驱动的6周发布周期。其他编程言语和盛行的开源软件(例如 GitLab 和 Microsoft 的代码编辑器 Visual Studio Code )运用每个月发布周期来确保它们不会完整发作严重更改。这些软件包在每一个刊行版中都有一点修改。
哦,编辑器之战还在。我们在运转在阅读器中显示文本字段的桌面使用程序中编写我们的代码。这十分棒。它表现相当不错(每一个版本都会变得更好),并且可以自定义。它乃至有一些支撑 VIM 形式!
集会是依照每一个主题举办的。他们是很风趣的,而且他们是无处不在的。参与一个 - 你会看到林林总总的人!交友一些朋友,走走,取得灵感,说出来。或许可以参与一个 algorave 节目 - 他们对音乐、图象和代码所做的工作是惊人的。
本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。2KB项目(www.2kb.com,源码交易平台),供给担保交易、源码交易、虚拟商品、在家创业、在线创业、Task交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接生意、网站交易、广告生意、站长培训、建站美工等服务