(Web) App
在你踏入这个时空之前,你可能已经看到了 iPhone 的发布。苹果是最大和最富有的科技公司,这主要归功于 iPhone 及其操作系统 iOS 。 谷歌有个与其竞争的手机操作系统叫做 Android ,微软则试图用 Windows Phone 来分一杯羹,但没有成功。 我们开始把应用程序叫做 app,而一些网站则自称为 web app。 2008年,谷歌发布了一款名为 “Chrome”的新浏览器。九年后,它成为了最流行的上网方式。 Chrome 团队在 JavaScript 方面投入了大量工作,代码逐月改善。Web app 是使用大量 JavaScript 编写的,它们类似你的时间的桌面界面。 许多公司也投资于 JavaScript 使其变得更好–它现在支持类和模块。我们使用可以编译为 JavaScript 的语言,如 TypeScript (来自微软,现在很酷)或 Flow。 近来我们写了很多 JavaScript 代码,因为没有人再支持 Flash 。我们甚至在服务器上运行 JavaScript ,而不是 Perl,使用名为 Node 的技术。当然,实际上没有听起来这么容易。
迷茫不可怕
不要因为迷惑而感到害怕,事实上我们都有点迷惑,但是迷惑不是什么大不了的事。如今世界上有那么多开发人员,科技公司也正在变得越来越成功。我们使用“创业”这个词来描述那些成长迅速但是不知道接下来该怎么办的公司。但是即使是这个词现在也变得老旧了。
数据
相比以前,现在有更多的程序员,更多的程序和更多的设备。我们现在有了更多的数据。计算机必须变得强大到足以处理所有的这些数据,我们已经开发了几种技术来把这些数据转化为深刻的认识。 首先,我们创建了一个叫做数据科学的领域。数据科学的目的是从数据中学习和提取信息。 例如,一家名为 Waze 的初创公司让用户在他们自己的手机上安装 App 来追踪他们驾驶轨迹,因为有很多人安装 APP ,Waze 有了很多关于汽车行踪的数据。他们用这些数据开发了一个程序来了解哪里有交通堵塞。 现在,当你打开你手机上 Waze ,你可以在地图上看到实时的交通拥堵情况然后选择另一条路。 Waze 已经被谷歌收购的。这在创业公司里是经常发生的。 数据科学领域有三大挑战——数据存储、了解数据和利用数据。如今我们在这三个方向上都有所进步。让我们分别看看这些挑战如今的现状。
存储
现在我们需要存储更多的信息,然后找出哪个部分是重要的。那么我们就需要发明出新的数据库。而像 MySQL 和 PostgreSQL 不能满足我们存储 TB 级数据的要求(我们叫它大数据)。 大型的互联网公司通常都面临着这些挑战,因此他们处于开发这些技术的前沿。大多数时候,技术首先在内部使用,然后是开源。 有一场我们称之为 NoSQL 的运动。这类新的数据库使用了传统关系数据库的一些约定,并将它们进行了转换。 比如 Hadoop,它处理数据如何存储在许多硬计算机上。它定义了一种处理称为 MapReduce 的数据的方法(灵感来自于 Google 的一篇论文——它是大公司近来撰写的优秀科学论文之一)。 之后,又有了 Cassandra ,它的数据不以表形式存储,而是一组键和列,这些键和列可以存储在不同的计算机上。它还确保这些电脑中的任何一台都能在不造成数据丢失的情况下离线。 再后来,我们有了 MongoDB,一款易于安装和使用原型应用程序的数据库。在2017年,我们对待科技的态度和十年前对待流行明星的方式一样 —— 我们狂热地捍卫其中的一些人,并强烈地憎恨他人。MongoDB —— 就像乐队中的“五分钱乐队”那样 ——属于后者。
学习
在“理解数据”阵营中,大部分焦点都放在了机器学习领域。现在每个数据科学家的工具箱中都有许多新技术,从朴素分类法到深度学习。他们主要是编写 Python ,并与开发人员一起工作,使得机器学习几乎无处不在。 例如,在数据科学家的帮助下,很多 Web 应用程序都使用 A/B 测试。这种技术通过应用程序的两个稍微不同的版本的方式提供给不同但类似的用户组。它用于查看哪个版本可以更快地达到我们想要的目标,无论是通过注册还是购买。 很多像 Airbnb(发音为air-bee-en-bee)、Uber 和 Netflix 这样的大型公司都在同时运行数百次 A/B 测试,以确保用户获得最佳体验。Netflix 是一款应用程序,通过它用户可以在所有设备上观看电视节目。
微服务和云
像 Netflix 这样的公司是庞大的。因为他们服务于很多人,他们必须确保他们随时都在运转。这意味着他们必须很好地管理他们的电脑。他们可以在需要时添加数百台新服务器。 这在传统数据中心很难实现,所以 Netflix 中优秀的工程师使用了虚拟机。还记得2006年推出的亚马逊网络服务吗? 当时,他们开始提供了知名的 EC2(Elastic Cloud Compute),以帮助人们在亚马逊的数据中心获得虚拟计算机。 今天,他们拥有近80个类似的服务,都是为了帮助企业快速成长而建立的。我们曾有一个时髦的名字 – “云” – 但是这个术语和 NoSQL 一样难以定义。 Google 和 Microsoft 提供了他们自己的云,用于为云服务开拓市场。同时在聪明者之间相互竞争之时,诸多类型的疯狂创新开始出现了。
我们构建软件的方式
编配框架引入的额外复杂性大部分与大型团队相关的。记住 – 我们现在比以前有更多的人在构建软件,每个程序员都想马上发布他们的代码。如果你的公司有数百位开发人员在网站上一起工作,则需要确保他们不必协同其版本。 所以我们以小团队来构建软件。团队通常拥有一些 DevOps 技巧,并且团队成员对如何部署软件的操作有足够的了解。他们使用某种形式的敏捷过程,其中他们在短时间内持续发布软件。和 Spotify (这是一个新的音乐流媒体服务)一样,有些组织也会尝试其他形式的层次结构,如 Squads、Chapters、Tribes 和Guilds(小分队、社团、部落和工会)。 所有这些项目(以及之前提到的许多其他项目)都是由一群人公开开发的。有时他们是由一家公司赞助的。大部分情况下,开发工作都在一个名为 GitHub 的网站上。在那里,人们可以探讨软件,公开地构建,通过回复表情符号来表示赞赏。表情符号是我们现在用来表达情感的特殊字符,比如点赞。 🙂 现在还有更多的社区,他们都在尝试用开放的方式来构建软件。例如,名为 EmberJS 的 Web 框架使用社区驱动的6周发布周期。其他编程语言和流行的开源软件(例如 GitLab 和 Microsoft 的代码编辑器 Visual Studio Code )使用每月发布周期来确保它们不会完全发生重大更改。这些软件包在每个发行版中都有一点改动。 哦,编辑器之战还在。我们在运行在浏览器中显示文本字段的桌面应用程序中编写我们的代码。这非常棒。它表现相当不错(每个版本都会变得更好),而且可以自定义。它甚至有一些支持 VIM 模式! 会议是按照每个主题举行的。他们是很有趣的,并且他们是无处不在的。参与一个 – 你会看到各种各样的人!结交一些朋友,逛逛,获得灵感,说出来。也许可以参与一个 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
烦恼多