Steve Souders推荐序

“合格的开发者知道怎么做,而优秀的开发者知道为什么那么做。”

相信每一位读者看完这句话,一定打心眼儿里赞同。我们都希望自己能够理解身边的各种系统,同时还能跟别人讲得明白。然而,如果你是一名Web开发者,那很可能距离这个目标会越来越远。

Web开发的分工越来越细。你在做哪一类Web开发?前端?后端?运维?大数据分析?UI/UX?存储?视频?实时消息?我还想再加上一个角色——性能工程师。

钻研基础知识与紧跟最新动向本身是一对矛盾,很难平衡。可是,没有基础,那只能是“墙上芦苇,头重脚轻根底浅”。光知道表面上的那点东西可不行。需要解决难题时,发生异常状况时,理解基础知识的人会脱颖而出。

正因为如此,我才说这本书非常重要,不能不看。如果你搞的是Web开发,那你技术体系的根基就是Web和它赖以存在的大量网络协议:TCP、TLS、UDP、HTTP,等等。这些协议分别有各自的性能特点和优化技巧,为开发高性能应用,你必须理解为什么网络那么运行。

说实话,我真为想读这本书的你感到庆幸!要是我刚刚接触Web编程时有这样一本书就好了。那样,就会有一位真正理解网络的人为我释疑解惑,告诉我那些标准和规范的要点,填充我技术体系中的空白。这本书的作者Ilya Grigorik,是少见的网络编程专家,而本书堪称实战经验与规范解读完美结合的产物。

本书中,作者解释了网络编程中的很多为什么:为什么延迟是性能瓶颈?为什么TCP并不总是最优传输机制,而UDP有时候反而是更好的选择?为什么重用连接是关键性的优化策略?然后,他又更进一步,给出改进网络性能的具体建议。想要降低延迟?在靠近客户端的服务器上完成会话。想要提高连接重用率?保持连接持久化。正是这种提出问题、分析问题和解决问题的模式,让本书内容极为贴近实战,接地气。

除了全面探讨网络的基础知识,作者还详细讲解了协议和浏览器的最新进展。讲了HTTP 2.0的诸多优点,回顾了XHR及其催生CORS(Cross-Origin Resource Sharing,跨源资源共享)的局限性,还有SSE(Server-Sent Events,服务器发送事件)、WebSockets和WebRTC。让我们彻底跟上了浏览器网络技术栈的最新进展。

从性能角度分析基础和最新进展是本书特色,也是本书贯穿始终的主线。正是性能这个视角,让我们理解了网络开发中的那么多为什么,明白了这些东西怎么影响我们的网站和用户。本书把抽象的规范变成了可操作的建议,让我们可以马上学以致用去优化网站,去创造最佳用户体验。这才是最重要的。所以,一定不要错过这本书!

——Steve Souders
世界级Web性能专家、谷歌公司高性能工程师《高性能网站建设指南》等畅销书作者,20131

1.2014 年3 月,Steve Souders 加入国际知名云加速平台Fastly,任首席性能官。——编者注

目录