当前位置:主页 > web开发
谷歌 Web 开发技术变迁史与踩坑史 | NEXT Collections
日期:2017-09-11 浏览量:

这是「 NEXT Collections | Google I/O」系列的开篇。NEXT Collections 是NEXT 用户基于产品集的干货分享专栏。Google I/O 期间,我们邀请和聚集了 NEXT 用户中的 Google 工程师、国内 Android 顶尖开发者,为大家分享和呈现关于 Google 的最干货信息与观点碰撞。

文章的作者 CJ 是 Google 八年的资深工程师,现回国创办了在线协作文档「一起写」,这篇文章也是他与 geek 范的同事们在「一起写」协作完成的。点击 NEXT 产品集「Google 开源项目」,完整查看文中提到的技术与开源项目。


过去十几年来, Web 开发技术从最初的纯 HTML 到 CGI、PHP / JSP / ASP、Ajax、Rails、Node.js,已经发展到了一个非常成熟的阶段。去年的 Google I/O,谷歌开发者中心推出了关于 Web 开发的最佳实践手册;而今年的 Google I/O ,「The Next Generation of Mobile Web」依然是其中的一个重要议程。

不过,前人栽树,后人乘凉。现在大家拷贝的代码可不是自己从土里自己长出来的,而是技术大牛一行行敲出来。即便是谷歌这样的互联网巨鳄,在 Web 开发上也经历过无数的努力和踩过一个又一个的坑。今晚 Google I/O 正式开启之前,我就给大家讲讲这些事儿,聊聊从 Desktop 时代到今天的 Mobile 时代,谷歌 Web 开发技术的变迁、踩过的坑。

| Gmail、Google Map : 世界疯了两次

大家知道,最早期的 web 开发指的就是 HTML,CSS,JavaScript,很多刚毕业的学生就会说,“切,会写 HTML,JS, CSS 不算写程序, 会写 C++ 的才算”, 这可大错特错了。你们想想,写一个 C++ 程序只需要会一种语言,写个 Web 应用得学三种语言,而且这三种语言还以一些神秘的、很多时候还没有文档的奇怪方式联系在了一起,再加上某些西北角的公司在里面再捣捣乱,导致 Web 应用非常的难以维护,直接的后果就是 99% 的应用都是简单的网页加上一点点可怜的逻辑,完全无法取代桌面上的应用。

这个时候,英雄出现了。Google 在 2004 年愚人节那天发布了一个叫做 Gmail 的东西,当时 email 的容量只有可怜的 10MB 或者 20MB,Google 突然说提供 1GB 的邮箱并且不断增长,于是,全世界疯了。可是在大容量的背后,大家发现原来 Gmail 不仅仅只是大,而且让你觉得你在使用一个桌面的应用,而不是一个以前传统的网页的应用。所以可以说,Gmail 是 Web 开发的一个里程碑,第一个大规模部署的 Ajax 的应用程序。

紧接下来的一年,也就是 2005 年的情人节前后,Google Map 神奇般地出现了,世界再一次疯了。所有人都觉得不可思议,原来网页的程序可以做得那么酷炫,而 2000 年左右科技泡沫鼎盛时期的那些网站是多么的可笑。当时 Map 的组里面有 2 个人很值得一提,一个叫 Lars Rasmussen 的澳大利亚人,一个叫 Bret Taylor 的美国人,后面我们会慢慢的提到。

| 重写 Gmail

在开发 Map 和 Gmail 的过程中,Google 的工程师逐渐意识到一个高度结构化的JavaScript 库的重要性。因为逻辑越来越复杂,代码量越来越多,功能也越堆越多,之前写得那些代码已经根本满足不了不断变化的需求了。于是伟大的工程师们做了一个 Googler 经常做的决定:我们重写吧。

一个伟大的重写 Gmail 的计划逐渐张开了,也就是今天大家看到的 Gmail 的前身。在整个重写的过程中,一个高度独立、结构化的 JavaScript 的库被抽象出,这就是可能很多前端工程师们知道的 Google Closure。用今天的话来说,Closure 不是一个简单的 JavaScript 的库,他是一种方法论,一种情怀,所以任何拿 jQuery 和 Closure 相对比的言论都是一种对 Closure 的侮辱。Closure告诉大家,大家应该像写 java 一样的去写 javaScript,分清楚什么是一个类,什么是类的成员变量,什么是成员方法,什么继承,什么是接口等等...所有你熟悉的面向对象的概念都可以在 Closure 里面找到。Closure 的出现极大地改变 Google 内部写 JavaScript 的效率,导致复杂的 Ajax 的应用如雨后春笋一样在 Google 内部迅速出现。

| 聪明人太多的产物:奇葩技术 GWT

如果让 Google 的工程师们自己找 Google 一个不好的地方,一定有一点,那就是聪明人太多,没法管理。就在 Gmail 如火如荼重写的时候,另外一个团队在悄无声息的做着另外一个类似的努力去改变 Web 开发,那就是 2006 年发布的 GWT(Google Web Toolkit)。这是一个无比奇葩的技术,程序员写的代码是 java,出来的是 JavaScript,就像你吃的是草,挤出来的是奶一样。这个技术的根本目的和 Closure 是一样的,就是为了让程序员用写 java 的方式去写 Web 应用,只是他的方式更直接,连 JavaScript 都省了。其实原理也很简单,就是通过编译器在编译阶段把 java 转成了 JavaScript 代码。可是,这个技术有一个致命的缺点:你想想,要有多麻烦才能在浏览器里面调试一堆由编译器生产的JavaScript 代码。于是无数的各种附加调试技术出现,告诉大家怎么去简化 GWT 的调试,但是都没有解决根本问题。GWT 的最大的好处就是如果你的网页是由标准的控件组成的,比如输入框、选择框、多选等,那么 GWT 会极大的简化你的代码量.就是因为这个好处,GWT 一直活到了今天,因为 Google 最赚钱的广告系统的前端是就是用 GWT 写的。可见,计算机语言的世界也是看爹的哈哈。

相关文章:
·Web开发技术
·WEB前端开发教程
·Web前端开发前景怎么样?哪家培训机构好?
·物联网浪潮之下,前端工程师如何迎刃而上?
·传苹果正开发人工智能专用芯片 欲赶上亚马逊和
→ 特别推荐
Web开发技术
WEB前端开发教程
Web前端开发前景怎么
物联网浪潮之下,前
传苹果正开发人工智
摩拜单车亮相数博会
乐视体育融资了还要
助力市场落实《网络
走路姿态也能解锁手
Web前端开发顶尖机构
看苹果新开发课程:
游多多客栈惊艳亮相
金立S10今日发布:男
文人墨客的手机 海信
聚焦智能营销 精品媒
→ 热点TOP10
【系列直播】
APP开发找到技
新快报官方网
腾讯开发人脸
专业时尚网站
国办印发《政
掌握这十个小
十大Web漏洞扫
WEB前端开发教
看苹果新开发

友情链接/网站合作咨询: