如果谷歌主页如此简洁,为什么源代码有几百行?

14

这段代码被压缩了,但重构后有几百行代码。我想象中如此简单的页面应该有尽可能少的代码。谷歌在做什么让源代码这么长呢?我可以看到很多是 JavaScript,但我认为内联这么多 JavaScript 是不好的实践。


7
我认为这是一个好问题,不应该被关闭。 - Ali.Rashidi
3个回答

9

至少有一段代码用于即时搜索的ajax回调函数。

另外,当您考虑内联JavaScript是否不好时,您应该考虑替代方案。如果代码在单独的文件中,它将是另一个http请求,这意味着页面加载的延迟会更高。


5
JavaScript 可能没有嵌入未编译的源代码中。这可能是潜在的不良做法。当将其内联到构建时的页面源代码中时,页面不需要进行任何额外的 HTTP 请求来下载单独的资源文件,因为 HTTP 请求是加载网页最慢的部分之一。
据我猜测,大量 JS 可能是由于许多常见库和代码在许多页面之间共享,并且尝试使其不在主页上载入将涉及很多不必要而且麻烦的工作。此外,UI 界面可能看起来很简单,但底层实际上发生了多少事情?需要考虑 Google 账户、即时和语音搜索、分析跟踪等。
最终,然而,除非你让谷歌的工程师透露他们的秘密或者找到一份相应的工作,否则你可能永远不会真正知道答案。

2
我认为这是接口和实现分离的原则:用户看到界面,不需要关心实现是多么简单或复杂,以及以何种方式实现,只要实现提供了界面应该提供的功能即可。
以手表为例。当你看着手表时,你根本不考虑实现。你所关心的是,你可以通过时针和分针告诉时间,并且你可以切换到秒表模式,按下按钮A启动它,按下按钮B重置它——如果它能提供秒表的功能。界面可以非常简单,有时甚至尽可能简单。实现可以很复杂......例如,如果它有电路来与世界各地的原子钟信号同步,使用数百万个晶体管来完成这项工作——但用户通常不会关心实现是什么。用户可能关心的只是手表的简单易懂的界面:看着手表的表盘,在眨眼间就能知道现在是几点。
至于为什么代码可以如此之大,除了自动建议机制外(包括节流机制,以便不会因每个按键而导致向Google服务器发出请求),还有Google+分享,其中包含照片、链接、视频、活动等,每个都有不同的处理方式。因此,尽管页面可以干净简单,但页面所能提供的远远不止这些。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接