如何研究技術
本文件提供了一些關於如何記錄技術方法的實用資訊。
做好準備工作
在開始在 MDN Web Docs 上記錄或更新內容之前,您需要做一些準備和規劃,然後再開始實際寫作。
假設在閱讀本指南之前,您已經對以下內容有了一定的瞭解:
- HTML、CSS 和 JavaScript 等 Web 技術。
- 閱讀 Web 技術規範。在記錄 API 時,您會經常查閱這些內容。
其餘的都可以在過程中學習。
查閱資源
撰寫任何文件的有用資源包括:
- MDN Web Docs 的 操作指南:您現在就在這裡,但最好瀏覽所有文章,熟悉我們的寫作風格、不同型別的頁面及其包含的部分,以及我們包含頁面不同部分(如規範和瀏覽器相容性)的各種方式。
- 最新規範:不同的標準組織會為 MDN Web Docs 上記錄的技術建立規範。例如,JavaScript 的 TC39,HTML 的 WHATWG,以及 CSS、XML 和一些 Web API 的 W3C。規範連結在 MDN Web Docs 的參考頁面上(檢視“規範”部分)。或者,您通常也可以透過網路搜尋找到。請務必使用最新、最完整的規範。
- 最新的現代 Web 瀏覽器:這些應該是實驗性/Alpha 版本,例如 Firefox Nightly、Chrome Canary 或 Safari Technology Preview,它們更有可能支援您正在記錄的功能。如果您正在記錄一項“即將推出”的功能,這一點尤其重要。
- 演示/部落格文章/其他資訊:儘可能多地查詢資訊。如果您正在更新一項技術,因為該技術已發生變化,請確保您用來學習的資源不是過時的。這就是為什麼上面前兩點很重要。
明智的做法是嘗試找到可以幫助您解答問題的人。這個人可以是規範的作者,也可以是實現瀏覽器功能的工程師。
閱讀規範
剛開始閱讀規範可能會覺得有些陌生,但您做得越多,就會越習慣。這裡有一些很好的連結可以幫助您入門:
- J. David Eisenberg 在 A List Apart 上發表的 《如何閱讀 W3C 規範》
- W3C 的 《理解 CSS 規範》
- 《如何閱讀 Web 規範第一部分 – 或:WebVR,你是怎麼工作的?》 重點講解了如何閱讀 WebVR 規範,但它也是閱讀 Web API 規範的絕佳入門。
- 《如何閱讀 Web 規範第二部分 a – 或:ECMAScript Symbols》 這是上面連結的第二部分,其中包含關於理解 ECMAScript 規範的資訊,該規範概述了 JavaScript 語言。
此外,我們還有 《WebIDL 檔案中包含的資訊》 指南,這對於閱讀 Web API 規範非常有幫助。
探索功能
在記錄一項技術的過程中,您會多次返回編寫程式碼示例或構建演示,但一開始花時間熟悉這項技術的工作原理非常有益。這是一個非常有價值的練習,因為它能讓您深入瞭解用例(開發者**為什麼**會使用這項技術),並同時幫助建立一些程式碼示例。
注意: 如果規範最近有更新,例如,某個方法現在定義不同,但舊方法在瀏覽器中仍然有效,您通常需要在同一個地方記錄兩者,以便涵蓋舊方法和新方法。如果您需要幫助,請參考您找到的演示,或諮詢工程聯絡人。
建立需要編寫或更新的頁面列表
您需要從頭開始編寫或更新的頁面各不相同,具體取決於您要記錄的技術。檢視 頁面型別 和您正在記錄的技術的相關部分。您很可能還需要更新現有文件,因此請在 MDN Web Docs 中搜索與您正在編寫的內容相關的頁面。
側邊欄
您編寫的頁面的側邊欄可能也需要定義或更新。要了解是否需要這樣做以及如何操作,請檢視 側邊欄指南。
程式碼示例
MDN Web Docs 的一些程式碼示例儲存在單獨的儲存庫中。最值得注意的是,這些是在參考頁面“嘗試一下”部分中顯示的互動式示例,以及指南所需的較大演示程式碼。如果您確實需要向這些儲存庫新增內容或修改內容,最好在您的列表中記下這一點。
程式碼示例 文章描述了我們在 MDN Web Docs 上使用的不同型別的程式碼示例。
示例
假設您正在記錄一個新的 Web API,您最初要記錄的部分列表將如下所示:
- 概述頁面
- 介面頁面
- 建構函式頁面
- 方法頁面
- 屬性頁面
- 事件頁面
- 概念/指南頁面
- 程式碼示例
- 側邊欄
然後,您可以新增更多細節進行擴充套件,新增每個介面及其成員。例如,如果您正在記錄 Web Audio API,您的列表可能看起來更像這樣:
-
Web_Audio_API
-
AudioContext
- AudioContext.currentTime
- AudioContext.destination
- AudioContext.listener
- ...
- AudioContext.createBuffer()
- AudioContext.createBufferSource()
- ...
-
AudioNode
- AudioNode.context
- AudioNode.numberOfInputs
- AudioNode.numberOfOutputs
- ...
- AudioNode.connect(Param)
- ...
-
AudioParam
-
事件(更新列表)
- start
- end
- …
建立問題(issue)
此時,最好在 mdn/content 儲存庫上建立一個跟蹤 issue,並將頁面列為待辦(複選框)列表。這不僅使您,也使其他參與文件工作的人能夠公開跟蹤狀態。您還可以將您的 pull requests 連結到此 issue,以便為所有人提供更多上下文。
建立頁面
現在建立您需要的頁面。要建立新頁面,請參閱我們 《如何建立、移動、刪除和編輯頁面》 指南中的說明。檢視我們的 頁面型別 指南,其中包含可能有用的頁面模板。