新书《跨终端 Web》6 月下旬发布以来卖出的数量已超过了笔者的预期。期间收到一些反馈,加之最近翻阅本书时又发现很多问题,因此整理出这么一篇。前端
一切始于笔者在 2013 年 7 月阿里技术嘉年华(ADC) D2 会场的演讲话题“移动优先的跨终端 Web”。会后博文视点编辑张春雨询问我是否有出书的意愿,当时笔者对出书的第一感受就是“太麻烦了”。几回交流下来熟悉了出书全过程后决定尝试,遂整理出大纲和概要,8 月经过了出版社的立项,9 月签约后把以往博文理了一遍,大概已有 90 页(全书 240 页)的内容。以后备战“双十一”,11 月中旬恢复写做后又奋战了 3 个月的周末,最后搭上全部年假和春节长假才完成全书。git
全书写做耗时 240 h+。github
图 1. ADC-D2 “移动优先的跨终端 Web” 演讲大纲
segmentfault
决定要写书的那一刻,压力很大:大纲还比较单薄,即便整理出 90 页的初稿,也彻底没有头绪继续扩展,加上双十一期间也没法分心,因此从一开始就陷入长达 2 个月的“危机”。这期间:api
要丰富这本书的内容,首先想到的是增长一章“ Mobile Web ”,介绍 PC Web 上的增量技术。因此想到要补充 HTML(viewport、touchicon)、JS(触屏事件)、调试、兼容性等Mobile Web 基础。跨域
天猫多个项目开始使用 IF(接口规范和工具集),并跑通了 IF 的所有流程:接口定义、文档、Mock、测试,取得开发效率和接口质量的明显收益。IF 以后也入选了“2013阿里技术那些事”前端交互与设计领域的十大事件。这让笔者更加坚决了 IF 的价值,决定花最大的篇幅去写“ 接口 ”这一章。成书后,又翻译了 JSON Schema 的协议本来并作为书的附录。浏览器
笔者刚到天猫时参照 GBS(Graded Browser Support)整理的 MGBS(Mobile GBS)是但愿为 Mobile Web 开发设置一个调试和测试的范围。起初 MGBS 和 GBS 是分开维护的,这其实也反应了一个广泛存在的问题:咱们下意识地区分开 PC 和 Mobile。很快咱们将 GBS 和 MGBS 合并为 GTE(Graded Target Environment,分级目标环境),这样咱们经过 GTE 能够总体来看待 Mobile、PC 的浏览器环境,随后咱们又将 Node 和 TV 等环境加入到 GTE 中,这样 GTE 就变得更加“跨终端”了。按照这个思路,“ 基准 ”这章明显比最初的 MGBS 更有生命力了,其中对OS、分辨率和浏览器的分级有详细的分析过程。安全
图 2. 根据 2014.2 WDM 整理出来的 GTE工具
2013 年 10 月,笔者为天猫整理的《Hybrid App 技术报告》主要介绍了 Hybrid App 的发展过程和技术方案,并给出了以传感器为核心的 Hybrid API 的设计方案。(2014 年 6 月在杭 JS上分享了“Hybrid API”)这本书又多了一章“ Hybrid App ”。测试
天猫工具栏的一些需求致使咱们开发了 Storage 这个跨域跨终端存储组件,以后 Storage 参加并得到了阿里“2013 Kissy Gallery 组件大赛”的冠军。Storage 在保证安全的前提下实现了跨终端(不使用 Flash)跨域存储。Storage 让这本书多了一个亮点章节“ 存储 ”。
笔者惊奇地发现: 这本书中的诸多技术方案都在成长并应用到更大范围的项目实践中,这确实很鼓舞人心。若是用一句话总结这本书,可能就是: 在不一样终端上提供一个业务最合适的视图展示和交互形式,背后支撑的技术就是这本书所讨论的。
图 3. 2013.11《跨终端 Web》最终的十章
书名为“跨终端 Web”,但第一章并无给出更多的实例。
前几天笔者刚好遇到一个典型案例,能够说明什么是不完整的“跨终端 Web”:
其实如今实现了(或部分实现)“跨终端 Web”的站点已经有不少了,国内如天猫、淘宝、百度首页、腾讯首页,除百度首页外其余页面都是不完整的“跨终端 Web”。国外如 Google、Github、Twitter、Facebook,其中 Twitter、Facebook 是不完整的“跨终端 Web”。
有同窗反馈书中的“检测”、“定位”、“预览”都过薄了。的确如此,这 3 章主要是对技术方案的探讨,没有更进一步去探讨实现层面遇到的问题,这也是以后须要去完善的。尤为是“检测”一章提到的 MED(多终端检测),在本书定稿后的几个月内又取得了很多突破,相信若有再版机会确定会丰富起来。
本篇提到的全部问题会在本书再版前提交给出版社,一如既往期待你的反馈和书评。