如何研究技术
本文档提供了一些关于如何记录技术方法的实用信息。
做好准备工作
在开始在 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,以便为所有人提供更多上下文。
创建页面
现在创建您需要的页面。要创建新页面,请参阅我们 《如何创建、移动、删除和编辑页面》 指南中的说明。查看我们的 页面类型 指南,其中包含可能有用的页面模板。