我爲什麼寫《跨終端 Web》這本書?

新書《跨終端 Web》6 月下旬發佈以來賣出的數量已超過了筆者的預期。期間收到一些反饋,加之最近翻閱本書時又發現很多問題,因此整理出這麼一篇。前端


背景

一切始於筆者在 2013 年 7 月阿里技術嘉年華(ADC) D2 會場的演講話題「移動優先的跨終端 Web」。會後博文視點編輯張春雨詢問我是否有出書的意願,當時筆者對出書的第一感受就是「太麻煩了」。幾回交流下來熟悉了出書全過程後決定嘗試,遂整理出大綱和概要,8 月經過了出版社的立項,9 月簽約後把以往博文理了一遍,大概已有 90 頁(全書 240 頁)的內容。以後備戰「雙十一」,11 月中旬恢復寫做後又奮戰了 3 個月的週末,最後搭上全部年假和春節長假才完成全書。git

全書寫做耗時 240 h+github

「移動優先的跨終端 Web」 演講大綱
圖 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、分辨率和瀏覽器的分級有詳細的分析過程。安全

GTE
圖 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」:

  1. 本書 Amazon 的 PC 購書頁面 在 Mobile Browser 打開會 302 跳轉到對應的 Mobile 購書頁面,這沒有問題。
  2. 但若是在 PC Browser 上打開 Mobile 購書頁面 居然沒有能 302 跳轉到 PC 購書頁面。
  3. 設想下我在手機的微博客戶端上分享了 Mobile 購書頁面,其餘用戶在 PC Browser 打開頁面時得多痛苦,筆者就親歷了。

其實如今實現了(或部分實現)「跨終端 Web」的站點已經有不少了,國內如天貓淘寶百度首頁騰訊首頁,除百度首頁外其餘頁面都是不完整的「跨終端 Web」。國外如 Google、Github、Twitter、Facebook,其中 Twitter、Facebook 是不完整的「跨終端 Web」。

部分章節過薄

有同窗反饋書中的「檢測」、「定位」、「預覽」都過薄了。的確如此,這 3 章主要是對技術方案的探討,沒有更進一步去探討實現層面遇到的問題,這也是以後須要去完善的。尤爲是「檢測」一章提到的 MED(多終端檢測),在本書定稿後的幾個月內又取得了很多突破,相信若有再版機會確定會豐富起來。

缺乏一些最新進展
  1. 第 2 章的「調試」一節缺乏目前行業內的最新進展(阿里內部工具內測中),但願以後能邀請其餘工具做者來豐富這一章。
  2. 第 8 章的「Hybrid API」在項目實踐中的一些進展也須要補充到書中。
  3. 第 9 章衍生出來的「通用客戶端存儲」的概念和工具目前正在嘗試中,相信往後會有一些有趣的成果能夠公佈出來。

寫在最後

本篇提到的全部問題會在本書再版前提交給出版社,一如既往期待你的反饋和書評

few

相關文章
相關標籤/搜索