瞭解 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,獲取第一手學習資源,全面深入地理解相關技術,瞭解技術的發展前沿。
相關文章
- SATA-IO組織推出最新SATA Revision 3.4版標準規範
- 用BEM命名規範組織CSS程式碼CSS
- Oracle 12C使用規範標準Oracle
- 你對CommonJS規範瞭解多少?JS
- 繼電器測試的標準和規範有哪些需要遵守?
- 資料中心機房建設標準規範
- CSS規範須知——快速瞭解BEMCSS
- 【智慧製造】MES在工業4.0標準下的規範和功能
- 資料標準和資料規範到底有什麼區別?
- web前端規範Web前端
- 應急救災物資行業標準與規範行業
- 阿里獲邀加入JCP,參與制定Java全球標準和技術規範阿里Java
- 【現代 CSS】標準捲軸控制規範 scrollbar-color 和 scrollbar-widthCSS
- Web新標準Web
- 華為程式設計規範,程式碼驗收標準。程式設計
- 深入瞭解標準流以及脫標元素的特點
- laravel-api-response - 規範化和標準化 Laravel API 響應資料結構LaravelAPI資料結構
- CSS命名規範和模組化的思考CSS
- 一文帶你瞭解Java的命名規範!Java
- WEB前端編碼規範Web前端
- web前端開發規範Web前端
- SAP ABAP 標準表和其欄位的命名規則講解
- 前端模組化規範前端
- JS模組化規範JS
- JavaScript模組化規範JavaScript
- 國內首個《政務APP技術指標評價規範》團體標準APP指標
- 測試流程規範--測試准入、準出、停止標準、bug優先順序定義
- 安全開發規範:開發人員必須瞭解開發安全規範(一)(涉及安全問題,以及解決方法和程式碼實現)
- 這份Python標準異常表你應該瞭解!Python
- 黑客組織瞄準美國電網黑客
- Commonjs規範與模組化JS
- CMD 模組定義規範
- 模組轉測標準
- web前端開發規範總結Web前端
- 學好WEB前端之HTML 規範Web前端HTML
- 學好WEB前端之CSS規範Web前端CSS
- 學好WEB前端之javascript規範Web前端JavaScript
- Web前端開發規範手冊Web前端