新書《跨終端 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(多終端檢測),在本書定稿後的幾個月內又取得了很多突破,相信若有再版機會確定會豐富起來。
本篇提到的全部問題會在本書再版前提交給出版社,一如既往期待你的反饋和書評。