瞭解 Web 標準規範和組織
Web 標準是由各大標準組織制定,由瀏覽器和其他 Web 底層框架或工具來實現,再提供給開發者能以最小成本開發適用於多平臺的 Web 應用,這些標準是我們能訪問無數網站的前提。
學習標準的必要
最近在 MDN 上學習 Web Components,學習中有些疑惑在 MDN 上沒有提及,最後通過查閱 Custom elements 標準規範才解決了我的疑惑,讓我感慨原來標準規範這麼有用。
制定 Web 標準的目的是嚴謹、無疏漏、無歧義地描述相關技術實現,一般來說這些標準規範是給像瀏覽器開發者的人來使用的,對於一般的 Web 工程師來說,平時用不上它,因為這些標準太過囉嗦和難懂。
但是學習標準也有它的好處。因為我們接觸的技術文件或文章,大都經過作者的理解和翻譯,導致有些內容作者解讀得不夠全面甚至是錯誤的,因此影響到我們的學習效果。所以如果想要深入學習技術的原理,通過看最原始的標準文件,理解並建立自己知識體系,是很有必要的。
Web 標準計劃
在 Web 發展的早期,瀏覽器各自為政,技術無一致實現,這直接損害了設計師、開發者、使用者和行業的利益。為了解決這些問題,Web 標準計劃 (Web Standards Project, WaSP) 於 1998 年成立,目標便是促進核心的 Web 標準的推廣,鼓勵瀏覽器對標準的支援,為大家尋求一條簡單而便利之路。
得益於前人努力,如今的現代瀏覽器表現已經越來越一致,進而催生出更多標準,有了這些標準我們可以開發出體驗更好的 Web 應用。
這個是所有瀏覽器相關的技術標準: The Web platform: Browser technologies,從中能瞭解到健全發展的 Web 技術生態。
Web 標準組織
說到 Web 標準,就不得不提製定這些標準的組織,這些標準不單只是由一個組織來制定,多個組織各自負責相關的技術領域,下面一一介紹。
W3C (World Wide Web Consortium)
W3C 組織為 Web 開發領域提出了很多建議,比如為 XHTML、XML、DOM、CSS 和 Web API 等技術實現提出了建議。你可能會注意到為什麼說是提出建議,而不是標準呢?那是因為 W3C 自認為不是標準組織,他們只是組織了 Web 相關領域的專家,這些專家組成一支工作小組,工作小組就如何實現 Web 技術提出建議。儘管 W3C 對其建議的實現方案沒有任何強制權力,但他們大多數的建議都被視為事實上的標準。
W3C 組織關注 DOM、CSS、HTTP、媒體、效能、安全、圖形學、可訪問性和使用者隱私等方方面面的技術,在這裡可以搜尋相關技術: All Standards and Drafts。
從 W3C 組織成員的工作手冊可以看到,一項技術從提出到成為標準,需要經過 4 個階段。
W3C 技術建議的幾個階段
- WD (Working Drafts):草案階段
- CR (Candidate Recommendation):候選階段
- PR (Proposed Recommendation):提議階段
- REC (W3C Recommendation):正式建議階段
WHATWG (The Web Hypertext Application Technology Working Group)
WHATWG 工作小組成立於 2004 年,起因是 W3C 組織對 HTML 不再感興趣,轉而關注 XHTML 技術,部分 W3C 成員對此行為不滿,因此他們決定建立一個新組織推動 HTML 發展,制定相關標準。如今 HTML5 技術能發展起來,也是得助於 WHATWG 小組。
WHATWG 小組因 HTML 而生,負責的 Web 標準主要是 HTML 相關技術,也涉獵一些 Web API,比如: HTML、DOM、瀏覽器相容性、XHR、Fetch、Storage 和 URL 等標準。在這裡可以檢視所有標準:WHATWG Standards。
WHATWG 組織沒有明確說明,一項技術成為標準要經過哪些階段,他們實行的是現行標準 (Living Standard),標準由相關負責人維護升級,並由開發者或瀏覽器廠商提議將新功能加入標準,這一協作過程通過 Github 的 Issues 來討論。
如果仔細看 WHATWG 和 W3C 制定的標準,會發現有些標準互有重疊,兩個組織都有制定相同的技術標準,比如 DOM 標準。有一些標準會在開頭說明:“該標準已經不由我們來維護,請檢視某某組織的最新標準”。但是其他一些標準並沒有這樣的說明,至於參考哪一個標準,我的方法是檢視 MDN 相關技術文件下附加的標準規範連結。
MDN 參考規範
ECMA
ECMA 組織負責很多與資訊化相關的技術標準,其中應用最廣的就是 TC39 委員會負責的 ECMAScript 標準,這標準的實現就是 JavaScript。
通過 TC39 成員的工作手冊可以看出,每一項對 ECMAScript 標準的更新,需要經過 5 個階段。
- Strawman (Stage 0):提案納入考慮中
- Proposal (Stage 1):明確提案的好處,以及可能帶來的風險
- Draft (Stage 2):使用正式的規範語言描述語法和語義
- Candidate (Stage 3):根據使用者反饋進行改良
- Finished (Stage 4):準備正式加入 ECMAScript 標準
現在正在進行的提案可以在倉庫 tc39 proposals 檢視,從中能夠學習到最新的語法並參與討論。
IETF
IETF (The Internet Engineering Task Force) 組織主要負責制定網際網路基礎架構的標準,比如 TCP/IP 和 FTP 協議。
The Unicode Consortium
The Unicode Consortium 組織負責 Unicode 標準,正如他們所說,“我們為每個字元提供一個唯一的編號,無論平臺是什麼,無論程式是什麼,無論語言是什麼”。
總結
對一般 Web 開發來說,我們用不上晦澀難懂的標準文件。但學習標準我們可以收穫很多,比如解決一些棘手的 bug,獲取第一手學習資源,全面深入地理解相關技術,瞭解技術的發展前沿。
相關文章
- 用BEM命名規範組織CSS程式碼CSS
- 資料探勘標準流程規範
- ABAP的程式碼規範標準
- Oracle 12C使用規範標準Oracle
- ITPUB部落格技術文章推薦標準和規範
- Windows NRPE監控標準規範(轉)Windows
- 從標準到技術,保證IT組織的安全
- Web前端——CSS的命名規範和範例Web前端CSS
- [Web 安全] 瞭解XSS與防範Web
- CSS規範須知——快速瞭解BEMCSS
- 資料中心機房建設標準規範
- 資料標準和資料規範到底有什麼區別?
- 【智慧製造】MES在工業4.0標準下的規範和功能
- WEB標準Web
- PSR-1 Basic Coding Standard 基礎編碼規範 - PHP標準規範PHP
- 你對CommonJS規範瞭解多少?JS
- 華為程式設計規範,程式碼驗收標準。程式設計
- 應急救災物資行業標準與規範行業
- web前端規範Web前端
- HTML5標準制定的兩大組織分道揚鑣HTML
- 阿里獲邀加入JCP,參與制定Java全球標準和技術規範阿里Java
- OpenGL 4.5規範標準釋出,大大提升API效能!API
- 深入瞭解標準流以及脫標元素的特點
- Web新標準Web
- 黑客組織瞄準美國電網黑客
- 【現代 CSS】標準捲軸控制規範 scrollbar-color 和 scrollbar-widthCSS
- 常用的CSS命名規則(web標準化設計)CSSWeb
- 十大組織競爭雲端計算標準中國如何參與?
- 資料庫定義規範(可以借鑑,不是硬性標準)資料庫
- 沒標準沒規範的實施專案很危險
- 一文帶你瞭解Java的命名規範!Java
- Web應用介面設計規範—給專案組培訓 .Web
- 細談WEB標準Web
- Oracle堆組織表的索引和索引組織表Oracle索引
- WEB前端編碼規範Web前端
- web前端開發規範Web前端
- Web 開發規範 — WSGIWeb
- 組織計量學--指標學指標