皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

黄金十年,致穿越而来的 Web 开发者

黄金十年,致穿越而来的 Web 开发者 你好,朋友们!我希望你喜欢我们的这个新世界。它跟2007年的时候有很大不同。快速提示:如果你有抵押贷款,还是回去把它取消了吧。相信我。 我很高兴你还对计算机感兴趣!现在,我们有了很多不同于10年前的新情况,这些情况带来了新的挑战。我们的手腕和脸上都带着电脑,把它们放在口袋里,把它们放在冰箱和水壶里。汽车自己驾驶可能比人类更好,我们教会程序去参与各种比赛,在这些方面,它比人类更出色——不过喝酒比赛除外。

(Web) App

在你踏入这个时空之前,你可能已经看到了 iPhone 的发布。苹果是最大和最富有的科技公司,这主要归功于 iPhone 及其操作系统 iOS 。 谷歌有个与其竞争的手机操作系统叫做 Android ,微软则试图用 Windows Phone 来分一杯羹,但没有成功。黄金十年,致穿越而来的 Web 开发者 我们开始把应用程序叫做 app,而一些网站则自称为 web app。 2008年,谷歌发布了一款名为 “Chrome”的新浏览器。九年后,它成为了最流行的上网方式。 Chrome 团队在 JavaScript 方面投入了大量工作,代码逐月改善。Web app 是使用大量 JavaScript 编写的,它们类似你的时间的桌面界面。 许多公司也投资于 JavaScript 使其变得更好–它现在支持类和模块。我们使用可以编译为 JavaScript 的语言,如 TypeScript (来自微软,现在很酷)或 Flow。 近来我们写了很多 JavaScript 代码,因为没有人再支持 Flash 。我们甚至在服务器上运行 JavaScript ,而不是 Perl,使用名为 Node 的技术。当然,实际上没有听起来这么容易。

黄金十年,致穿越而来的 Web 开发者 还记得 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 已经被谷歌收购的。这在创业公司里是经常发生的。 黄金十年,致穿越而来的 Web 开发者 数据科学领域有三大挑战——数据存储、了解数据和利用数据。如今我们在这三个方向上都有所进步。让我们分别看看这些挑战如今的现状。

存储

现在我们需要存储更多的信息,然后找出哪个部分是重要的。那么我们就需要发明出新的数据库。而像 MySQL 和 PostgreSQL 不能满足我们存储 TB 级数据的要求(我们叫它大数据)。 大型的互联网公司通常都面临着这些挑战,因此他们处于开发这些技术的前沿。大多数时候,技术首先在内部使用,然后是开源。 有一场我们称之为 NoSQL 的运动。这类新的数据库使用了传统关系数据库的一些约定,并将它们进行了转换。 比如 Hadoop,它处理数据如何存储在许多硬计算机上。它定义了一种处理称为 MapReduce 的数据的方法(灵感来自于 Google 的一篇论文——它是大公司近来撰写的优秀科学论文之一)。 之后,又有了 Cassandra ,它的数据不以表形式存储,而是一组键和列,这些键和列可以存储在不同的计算机上。它还确保这些电脑中的任何一台都能在不造成数据丢失的情况下离线。 再后来,我们有了 MongoDB,一款易于安装和使用原型应用程序的数据库。在2017年,我们对待科技的态度和十年前对待流行明星的方式一样 —— 我们狂热地捍卫其中的一些人,并强烈地憎恨他人。MongoDB —— 就像乐队中的“五分钱乐队”那样 ——属于后者。

学习

黄金十年,致穿越而来的 Web 开发者 在“理解数据”阵营中,大部分焦点都放在了机器学习领域。现在每个数据科学家的工具箱中都有许多新技术,从朴素分类法到深度学习。他们主要是编写 Python ,并与开发人员一起工作,使得机器学习几乎无处不在。 例如,在数据科学家的帮助下,很多 Web 应用程序都使用 A/B 测试。这种技术通过应用程序的两个稍微不同的版本的方式提供给不同但类似的用户组。它用于查看哪个版本可以更快地达到我们想要的目标,无论是通过注册还是购买。 很多像 Airbnb(发音为air-bee-en-bee)、Uber 和 Netflix 这样的大型公司都在同时运行数百次 A/B 测试,以确保用户获得最佳体验。Netflix 是一款应用程序,通过它用户可以在所有设备上观看电视节目。

微服务和云

像 Netflix 这样的公司是庞大的。因为他们服务于很多人,他们必须确保他们随时都在运转。这意味着他们必须很好地管理他们的电脑。他们可以在需要时添加数百台新服务器。 这在传统数据中心很难实现,所以 Netflix 中优秀的工程师使用了虚拟机。还记得2006年推出的亚马逊网络服务吗? 当时,他们开始提供了知名的 EC2(Elastic Cloud Compute),以帮助人们在亚马逊的数据中心获得虚拟计算机。 今天,他们拥有近80个类似的服务,都是为了帮助企业快速成长而建立的。我们曾有一个时髦的名字 – “云” – 但是这个术语和 NoSQL 一样难以定义。 黄金十年,致穿越而来的 Web 开发者 Google 和 Microsoft 提供了他们自己的云,用于为云服务开拓市场。同时在聪明者之间相互竞争之时,诸多类型的疯狂创新开始出现了。

首先,我们开始更多地像代码一样考量我们的基础设施。以前,你必须购买新的服务器,插入键盘并安装相关设施。 现在我们使用像 PuppetChef 和 Ansible 这样的配置管理工具来自动化我们的服务器。你可以使用像 Ruby 这样的语言编写实际代码,并根据配置设置服务器。如果需要更改,你只要编辑配置,然后更新服务器即可。不需要 SSH 。 然后我们开始寻找更多的容器。因为可以在 EC2 上配置机器,所以我们需要在与生产相似的环境中进行开发。 我们从虚拟机开始,使用像 Vagrant 这样的工具来自动化它们。但是,我们最终得到了 Linux 上的容器, Docker 。我们找到了一种在我们的 MacBook 上运行 Linux 而不运行整个虚拟机的方式,共享一些操作系统相关操作的方法。 使用 Docker ,我们可以创建与我们在生产中运行的系统完全匹配的系统描述。开发人员调用这些描述映像,并开始在称为容器的虚拟实例中运行他们的应用程序。 黄金十年,致穿越而来的 Web 开发者
然后,云供应商意识到这一点,让我们直接在云上运行我们的容器。他们给了我们像 Marathon 和 Kubernetes 这样的工具,称为编配框架(orchestration)。这些框架可以让开发人员在容器中运行应用程序,而不用担心可伸缩性、容错、监控和发现。服务器变成一次性的,我们不再需要给他们聪明的名字了。 这也允许开发人员构建小型应用程序(称为服务或微服务),然后独立运行它们。由于这些微服务具有很少的外部依赖性,因此我们开始研究使用新的编程语言,如 Go(它是为了使用可并发性而创建的)和 Java。是的,Java 仍在,并且会变得更好。 还有像 Scala 和 Clojure 等语言让我们可以使用 Java 虚拟机和所有相关的库。像 AirBnB 这样的网站使用几种编程语言和数据库运行数百种微服务。 由于这些微服务,我们不得不重新审视我们的一些编程模型。我们现在拥有更多,更小的应用程序,这些是我们必须协调的。 因此,有像 Apache KafkaGoogle PubSub 和 RabbitMQ 这样的工具可以帮助爱闲聊的电脑更好的沟通。Kafka 是由 LinkedIn 创建的,一个社交网络,在此人们可以宣传自己的职业生涯。它后来变成了开源的。

我们构建软件的方式

编配框架引入的额外复杂性大部分与大型团队相关的。记住 – 我们现在比以前有更多的人在构建软件,每个程序员都想马上发布他们的代码。如果你的公司有数百位开发人员在网站上一起工作,则需要确保他们不必协同其版本。 所以我们以小团队来构建软件。团队通常拥有一些 DevOps 技巧,并且团队成员对如何部署软件的操作有足够的了解。他们使用某种形式的敏捷过程,其中他们在短时间内持续发布软件。和 Spotify (这是一个新的音乐流媒体服务)一样,有些组织也会尝试其他形式的层次结构,如 Squads、Chapters、Tribes 和Guilds(小分队、社团、部落和工会)。 所有这些项目(以及之前提到的许多其他项目)都是由一群人公开开发的。有时他们是由一家公司赞助的。大部分情况下,开发工作都在一个名为 GitHub 的网站上。在那里,人们可以探讨软件,公开地构建,通过回复黄金十年,致穿越而来的 Web 开发者表情符号来表示赞赏。表情符号是我们现在用来表达情感的特殊字符,比如点赞。 🙂 现在还有更多的社区,他们都在尝试用开放的方式来构建软件。例如,名为 EmberJS 的 Web 框架使用社区驱动的6周发布周期。其他编程语言和流行的开源软件(例如 GitLab 和 Microsoft 的代码编辑器 Visual Studio Code )使用每月发布周期来确保它们不会完全发生重大更改。这些软件包在每个发行版中都有一点改动。 哦,编辑器之战还在。我们在运行在浏览器中显示文本字段的桌面应用程序中编写我们的代码。这非常棒。它表现相当不错(每个版本都会变得更好),而且可以自定义。它甚至有一些支持 VIM 模式! 黄金十年,致穿越而来的 Web 开发者 会议是按照每个主题举行的。他们是很有趣的,并且他们是无处不在的。参与一个 – 你会看到各种各样的人!结交一些朋友,逛逛,获得灵感,说出来。也许可以参与一个 algorave 节目 – 他们对音乐、图像和代码所做的事情是惊人的。

还有更多的!

除此之外,还有更多的人、软件和创新。我希望你仍对电脑技术感到兴奋 – 你有诸多理由这么做。

让我们去找一个俱乐部伴侣,我会告诉你关于比特币的事情。另外,美国现在有一个新总统……

如果你喜欢这篇文章,请给我点赞,让更多的人看到它。谢谢!

英文原文:How I would explain a decade of web development to a time traveler from 2007

参与翻译 (5人) : Tocy, 圣洁之子, 无若, rever4433, 冰糖馨儿

转自 https://www.oschina.net/translate/web-development-explained-to-a-time-traveler

已有 1 条评论
  1. 匿名

    烦恼多

    2017年11月17日 23:21

评论已关闭。

已有 1 条评论
  1. 匿名

    烦恼多

    2017年11月17日 23:21

评论已关闭。

-->