MDN Web Docs 正在演变!关于即将推出的新平台的概述

Kuma(为 MDN Web Docs 提供支持的平台)演变的时候到了。在相当长的一段时间里,MDN 开发团队一直在计划彻底改变平台,我们现在已准备好开始分享有关该改变的细节。您可能会问:“Kuma 会演变成什么?KumaMaMa 吗?”

What? Kuma is evolving!

对于那些不太了解神奇宝贝的人来说,他们可能会问:“MDN 到底是如何改变的,它对 MDN 用户和贡献者有何影响?”

对于普通用户来说,答案很简单——我们在提供您每天使用来学习和工作的大量内容方面几乎没有任何改变。

对于贡献者来说,答案就复杂一些。

简而言之的改变

简而言之,我们正在更新平台,将内容从 MySQL 数据库迁移到 GitHub 存储库中(代号:项目 Yari)。

Congratulations! Your Kuma evolved into Yari

这种方法的主要优点是

  • 减少开发人员维护负担:现有的(Kuma)平台很复杂,难以维护。添加新功能非常困难。更新将极大地简化平台代码——我们估计可以删除现有代码库的很大一部分,这意味着更易于维护和贡献。
  • 改进的贡献工作流程:我们将使用 GitHub 的贡献工具和功能,实质上是将 MDN 从 Wiki 模型迁移到拉取请求 (PR) 模型。这对贡献来说要好得多,允许智能 linting、批量编辑以及将 MDN 文档包含在您想要添加的任何工作流程中(您可以在自己喜欢的代码编辑器中直接编辑 MDN 源文件)。
  • 改善社区建设:目前,MDN 内容编辑会立即发布,如果不合适则会还原。这对社区关系非常不利。使用 PR 模型,我们可以审核编辑并提供反馈,与贡献者进行实际对话,与他们建立关系,并帮助他们学习。
  • 改进的前端架构:现有的 MDN 平台存在一些前端不一致和可访问性问题,我们一直想解决这些问题。迁移到一个新的、简化的平台为我们提供了一个绝佳的机会来解决这些问题。

平台的具体形式尚未最终确定,我们希望您(社区)参与其中,帮助提供想法并测试新的贡献工作流程!我们将在 11 月 2 日发布一个新平台的测试版,第一个版本将在 12 月 14 日发布。

简化的后端平台

我们正在用 JAMStack 方法替换当前的 MDN Wiki 平台,该方法发布了在 GitHub 存储库中管理的内容。与现有的 Wiki 平台相比,它具有许多优点,是我们多年来一直在考虑的事情。

在讨论我们的新方法之前,让我们回顾一下 Wiki 模型,以便我们更好地理解我们正在进行的更改。

当前的 MDN Wiki 平台

 

workflow diagram of the old kuma platform

需要注意的是,内容贡献者(作者)和内容查看者(读者)都通过相同的架构提供服务。该架构必须适应这两种用例,即使超过 99% 的流量来自读者的文档页面请求。目前,当请求文档页面时,文档的最新版本会从我们的 MySQL 数据库中读取,渲染成最终的 HTML 形式,并通过 CDN 返回给用户。

该文档页面存储在 CDN 的缓存中并从中提供服务,持续时间为 5 分钟,因此后续请求(只要在 5 分钟窗口内)将直接由 CDN 提供服务。该 5 分钟的缓存期有意保持较短,主要是为了满足作者的需求。如果我们只需要满足读者的需求,我们可以大幅增加缓存时间,更快地提供我们的文档页面,同时减轻后端服务器的工作负载。

您还会注意到,由于 MDN 是一个 Wiki 平台,我们负责管理所有内容,以及管理文档修订版本、显示文档的修订历史记录、显示修订版本之间的差异等等。目前,MDN 开发团队维护着大量的代码,专门用于这些类型的任务。

新的 MDN 平台

 

workflow diagram of the new yari platform

使用新的 JAMStack 方法,作者与读者分开提供服务。作者通过 GitHub 存储库 和拉取请求模型管理文档内容,而读者通过从 S3 通过 CDN(具有更长的缓存期)提供的预渲染文档页面更快、更高效地获取文档页面。来自我们 GitHub 存储库的文档内容将每天渲染并部署到 S3。

您会从上面的图表中注意到,即使使用这种新方法,我们仍然拥有一个 Kubernetes 集群,其中包含基于 Django 的服务,这些服务依赖于关系型数据库。需要注意的是,系统中的这部分不再与文档内容有关。它的范围已大幅缩小,现在仅用于提供与用户帐户(例如登录)和搜索相关的 API。

这种关注点的分离带来了多个好处,其中最重要的三个是

  • 首先,文档页面以尽可能简单、快捷、高效的方式提供给读者。这非常重要,因为 99% 的 MDN 流量来自读者,全球性能对于用户体验至关重要。
  • 其次,由于我们使用 GitHub 来管理我们的文档内容,我们可以利用 GitHub 作为内容管理系统提供的世界一流的功能,并且我们不再需要支持与我们当前 Wiki 平台相关的庞大代码库。它可以简单地删除。
  • 第三,也许不那么明显的是,这种新方法为平台带来了更大的功能。例如,我们可以在每个内容拉取请求上执行自动 linting 和测试,这使我们能够更好地控制质量和安全性。

新的贡献工作流程

由于 MDN 内容即将包含在 GitHub 存储库中,因此贡献工作流程将发生重大变化。您将不再能够单击页面上的“编辑”,进行更改并保存更改,然后让它几乎立即显示在页面上。您也不能再在所见即所得编辑器中进行编辑。

相反,您需要使用 git/GitHub 工具进行更改,提交拉取请求,然后等待更改合并、新构建部署等等。对于非常简单的更改,例如更正错别字或添加新段落,这似乎是倒退了一步——Kuma 对于此类编辑和非开发人员贡献者来说确实很方便。

但是,进行简单的更改可以说与 Yari 并没有复杂多少。您可以使用 GitHub UI 的编辑功能直接编辑源文件,然后提交 PR,这意味着您不必是 git 专家才能贡献简单的修复程序。

对于更复杂的更改,您需要使用 git CLI 工具或 GUI 工具,例如 GitHub Desktop,但话又说回来,git 在 Web 行业中如此普遍,可以说,如果您有兴趣编辑 MDN,您可能需要在职业生涯或课程中在某种程度上了解 git。如果您不了解 git,这可以作为学习 git 的好机会!除此之外,还有一个文件系统结构需要学习,以及一些新的工具/命令需要习惯,但这并不复杂。

另一个需要提到的挑战是,您将不会拥有所见即所得编辑器,无法在添加内容时立即查看页面外观,此外,您将编辑原始 HTML,至少在最初是这样(我们正在讨论将内容转换为 markdown,但那还有些时间)。这听起来像是倒退了一步,但我们在存储库中提供了一个工具,以便您可以在本地构建并预览完成的页面,以确保在提交拉取请求之前页面看起来正确。

现在看看优点,将 MDN 内容作为 GitHub 存储库提供是一个非常强大的功能。我们不再有垃圾内容在网站上发布,然后我们必须事后还原更改。您也可以以最适合自己的方式编辑 MDN 内容——您最喜欢的 IDE 或代码编辑器——并且您可以将 MDN 文档添加到您首选的工具链中(并编写您自己的工具来编辑您的 MDN 编辑体验)。许多工程师过去曾告诉我们,如果他们能够提交拉取请求而不是使用所见即所得编辑器,他们会更乐于贡献 MDN 文档!

我们还在研究一套强大的工具,这些工具将使我们能够增强审核流程,例如作为 CI 流程的一部分——自动检测和关闭垃圾 PR,以及前面提到的,在页面编辑后进行 linting,并将反馈提供给编辑。

将 MDN 放在 GitHub 存储库中还可以更轻松地进行批量编辑;以前,对内容进行全面更改非常困难。

最后,“生存时间”应该是可以接受的——我们旨在快速完成审核,并且部署流程将每 24 小时重复一次。我们认为,您的更改将在最坏的情况下在 48 小时内在网站上发布。

改善社区建设

目前,MDN 在社区方面并不是一个非常活跃的地方。我们有一个相当活跃的 学习论坛,人们在那里询问初学者编码问题,并寻求评估方面的帮助,但实际上没有一个活跃的地方可以使 MDN 工作人员和志愿者定期聚在一起讨论文档需求和贡献。

这部分归因于我们的贡献模型。当您编辑 MDN 页面时,您的贡献要么被接受,您什么也听不到,要么您的贡献被还原,您……什么也听不到。您只能通过查看您的编辑是否保留、是否被反向编辑或是否被还原来知道结果。

我们觉得这很不友好,我认为您可能也会同意。当我们迁移到 git PR 模型时,MDN 社区将能够提供实际的帮助,帮助人们正确地进行贡献——在审核他们的 PR 时提供帮助(以及提供前面提到的自动帮助)——以及感谢人们的帮助。

这将使贡献者更容易展示他们做出了多少贡献,并且我们还将添加页面内链接,以便用户可以在特定页面上提交问题,甚至直接转到 GitHub 上的源代码并自行修复问题(如果遇到问题)。

如果你想找到一个好的地方来讨论 MDN 内容,你可以加入 MDN Web Docs 聊天室,在 Matrix上。

改进的前端架构

旧的 Kuma 架构存在一些前端问题。历史上,我们缺乏一个明确定义的系统,该系统清楚地描述了我们需要在其中工作的约束以及我们网站的功能外观,这导致我们最终拥有了一个臃肿、难以维护的前端代码库。处理我们当前的 HTML 和 CSS 就像乘坐没有护栏的过山车。

需要明确的是,这不是任何一个人的错,也不是 MDN 项目生命周期中的任何特定阶段。随着时间的推移,许多小问题一直在滋生、繁殖和腐烂。

其中最显著的问题包括

  • 可访问性:现有架构存在一些可访问性问题,这些问题确实应该解决,但由于 Kuma 的复杂性,很难掌握。
  • 组件不一致:Kuma 没有使用适当的设计系统 - 相似的项目在整个网站中以不同的方式实现,因此实现功能比必要时更难。

当我们开始推进后端平台重写时,感觉这又是提出设计系统想法的绝佳时机。经过多次对话,最终达成了一致的妥协,我们的设计系统——MDN Fiori——诞生了。

前端开发人员 Schalk Neethling 和 UX 设计师 Mustafa Al-Qinneh 对 MDN 的核心参考文档进行了闪电般的巡回演出,以识别组件并记录我们正在处理的所有不一致之处。作为这项工作的一部分,我们还寻找可以改进用户体验的领域,并通过对整体设计的一些核心底层方面进行细微更改来引入一致性。

这包括一个定义的颜色调色板、基于明确定义的字体比例的简洁明了的排版、一致的间距、对移动设备和平板电脑的改进支持以及许多其他微调。这从来不是对 MDN 进行重新设计,所以我们必须小心不要改变太多。相反,我们发挥了现有优势,使不规范的样式和标记与整个项目保持一致。

除了视觉一致性和一般用户体验方面之外,我们的底层代码库也需要一些认真的关注和关注 - 我们决定彻底重新思考。在流程的早期阶段,很明显我们需要一个小型、灵活且最小的基础库。一些独特 MDN,但可以在需要 MDN 品牌核心方面的任何地方重复使用。为此,我们创建了MDN-Minimalist,它是一组小型核心原子,以渐进增强的形式为 MDN 的基本样式提供动力,利用我们今天在网络上可以使用的精美的新布局系统。

构建到 Yari 中的每个组件都使用 MDN-Minimalist 进行样式设置,并且还具有自己的样式表,该样式表与组件并排存在,仅在需要时应用更多样式。这是一个不断发展的过程,因为我们不断重新思考如何在尽可能贴近网络平台的同时提供出色的用户体验。这样做有两个原因

  • 首先,这意味着更少的代码。这意味着减少重复造轮子。这意味着为我们的最终用户提供一个更快速、更精简、更节约带宽的 MDN。
  • 其次,它有助于解决我们一直在忍受的一些可访问性问题,这些问题在现代网站上是不可接受的。Mozilla 的可访问性专家 Marco Zehe 为我们提供了很多帮助克服这些问题的建议。我们不会在第一次迭代中修复所有问题,但我们对所有用户的承诺是我们会不断改进,我们欢迎您提供有关我们可以进一步改进的领域的反馈。

一位智者曾经说过,确保事情做对的最佳方法是使做正确的事情变得容易。因此,除了上面提到的所有工作之外,我们还在 Storybook(请参阅yari 仓库中的 Storybook 文件)中记录了我们的前端代码库、设计系统和模式库,并在 Figma(请参阅排版示例)中使用配套设计工作来确保有一个简单、公开的参考,供任何希望从代码或设计角度为 MDN 做出贡献的人参考。这本身就是一个庞大的项目,它会随着时间的推移而发展。有关其演变的更多沟通将陆续发布。

MDN 本地化的未来

在规划阶段,我们经常讨论的 MDN 内容的一个重要部分是本地化内容。您可能已经知道,MDN 提供了翻译原始英文内容并将其与英文内容一起提供的设施。

从原则上来说,这是好的,但当前的系统存在许多缺陷。当一个英文页面被移动时,所有本地化页面都必须单独移动,因此页面及其本地化经常不同步并变得混乱。一个更大的问题是,没有简单的方法可以向所有本地化人员发出英文版本已更改的信号。

一般管理可能是最重大的问题。你经常会看到对某个语言环境的热情高涨,并且完成了大量的翻译。但几个月后,兴趣下降,没有人留下维护翻译。本地化内容变得过时,这通常会对学习造成伤害,变成维护时间的消耗,因此,人们通常认为没有本地化更好。

请注意,我们并不是说这适用于 MDN 上的所有语言环境,我们也无意贬低志愿者为创建本地化内容所付出的努力。对此,我们永远心怀感激。但事实仍然是,我们不能再这样下去了。

我们进行了一些研究,并与许多非英语母语的 Web 开发人员讨论了对他们有什么用。得出两个有趣的结论

  1. 如果我们删除或减少本地化支持,我们会遇到重大的但可控的用户损失。8 种语言涵盖了来自 MDN 用户的 90% 的接受语言标头(en、zh、es、ja、fr、ru、pt、de),而 14 种语言涵盖了 95% 的接受语言(en、zh、es、ja、fr、ru、pt、de、ko、zh-TW、pl、it、nl、tr)。我们预测,如果我们完全放弃 L10n,我们的流量最多会减少 19%。
  2. 机器翻译在大多数情况下是可接受的解决方案,即使不是完美的解决方案。我们查看了 Google Translate 等自动化解决方案提供的翻译质量,并让一些社区成员将这些翻译与人工翻译进行比较。机器翻译并不完美,有时难以理解,但许多人评论说,过时的非完美语言比过时的完美语言更好。我们理解,某些语言(如 CJK 语言)在机器翻译方面的效果不如其他语言。

那么我们决定了什么?随着新平台的首次发布,我们计划包含所有当前文档的所有翻译,但处于冻结状态。翻译将存在于它们自己的 mdn/translated-content 存储库中,我们不会接受任何拉取请求。翻译将显示一个特殊的标题,上面写着“这是一个存档翻译。不再接受任何编辑”。这是一个临时的阶段,直到我们弄清楚下一步行动。

注意:此外,UI 组件和页眉菜单的文本将来将仅为英文。它们不会被翻译,至少最初不会。

在首次发布之后,我们希望与您,社区,一起找出前进的最佳行动方案。理想情况下,我们不想在 MDN 上丢失本地化内容,但我们需要修复过去的技术问题,更好地管理它,并确保内容保持最新。

我们将根据以下指导原则规划 MDN 本地化的下一阶段

  • 我们不应该在 MDN 上拥有过时的本地化内容。
  • 在大量语言环境中手动本地化所有 MDN 内容似乎不可行,因此我们应该放弃这种方法。
  • 如果可能,我们应该避免损失约 20% 的流量。

我们目前不承诺任何交付成果或时间范围,但我们已经开始沿着这些思路思考

  • 将我们处理的语言环境数量减少到 14 个最顶级的语言环境,这些语言环境可以覆盖我们记录的接受语言标头的 95%。
  • 最初包含“一级”MDN 内容页面(即一组最重要的 MDN 内容,不包括大量几乎没有访问量或没有访问量的文章)的基于机器学习的不可编辑的自动翻译。理想情况下,我们希望使用现有的手动翻译来训练机器学习系统,希望获得更好的结果。这很可能是我们在 2021 年要做的第一件事。
  • 定期更新英文内容变化时的自动翻译,使其保持最新。
  • 开始提供一个系统,让我们允许社区成员对自动翻译进行手动编辑。这需要社区确保文章在更新时与英文版本保持一致。

致谢

我要感谢我的同事 Schalk Neethling、Ryan Johnson、Peter Bengtsson、Rina Tambo Jensen、Hermina Condei、Melissa Thermidor 以及其他任何我忘记了的人,他们帮助我用内容片段、反馈、评论、编辑等来完善这篇文章。

关于 Chris Mills

Chris Mills 是 Mozilla 的高级技术作家,他撰写有关开放 Web 应用程序、HTML/CSS/JavaScript、A11y、WebAssembly 等的文档和演示。他喜欢用 Web 技术做一些小修小补,并在会议和大学偶尔做一些技术演讲。他曾经在 Opera 和 W3C 工作过,喜欢演奏重金属鼓和喝好啤酒。他和他的妻子和三个可爱的孩子住在英国曼彻斯特附近。

Chris Mills 的更多文章…


46 条评论

  1. 劳伦斯

    所以 Mozilla 只是放弃了,并将所有内容托管在亚马逊和微软的云上?大家干得好!看来他们赢了。

    2020 年 10 月 29 日 上午 09:31

    1. 克里斯·米尔斯

      FWIW,我们使用 AWS 已经很多年了。您对新平台的实际方向有什么反馈吗?

      2020 年 10 月 29 日 上午 09:52

    2. GU

      这就是你从整篇文章中得到的?

      2020 年 10 月 29 日 下午 21:07

  2. 加布里埃尔·弗洛里特

    克里斯,我尝试填写表格,但它告诉我“此表格只能由所有者组织中的用户查看”。

    2020 年 10 月 29 日 上午 10:11

    1. 克里斯·米尔斯

      哎呀!我认为我已经修复了它。你可以再试一次吗?

      2020 年 10 月 29 日 上午 10:32

  3. 0xjac

    在使用 GitHub 之前,是否考虑过 GitLab(gitlab.com 或自托管)?

    除了平台托管的云之外,在有很棒的开源替代方案的情况下,使用 GitHub 这样的私有软件似乎违背了你的原则,尤其是第 2 条和第 7 条。

    2020 年 10 月 29 日 下午 10:15

    1. chris jones

      我觉得这是一个很好的点,为什么是 github 而不是 gitlab 或 gitea???

      太可惜了,作者忽略了这一点

      2020 年 11 月 1 日 下午 15:10

      1. 克里斯·米尔斯

        我并没有忽略它,只是在仔细思考如何回复。

        这里唯一的答案是我们有一个非常小的开发团队,时间紧迫,并且之前在使用 GitHub 进行工作方面投入了大量资金(你会发现我们所有现有的平台、演示仓库、宏系统、浏览器兼容性数据等等都是基于 GitHub 的)。要彻底改变一切并迁移到另一个平台对我们来说现在根本不是一个可行的选择。

        2020 年 11 月 2 日 上午 02:12

  4. Baris

    感谢您专注于可访问性和本地化。
    在我看来,我们正处于不再担心 l10n 的最后几年,NLP 和 ML 翻译正以极快的速度改进。
    100% 同意“不完美的语言胜过过时的语言”这一观点。

    2020 年 10 月 29 日 下午 10:27

    1. 克里斯·米尔斯

      感谢您的评论 Baris。

      2020 年 10 月 30 日 下午 10:18

  5. 是的

    随便提醒一下,GitHub 与 ICE 合作,助长侵犯人权的行为。

    2020 年 10 月 29 日 下午 12:06

  6. Adam Williams

    我不得不承认,虽然我通常支持 MDN 的举措……但这确实很可惜。你放弃了基于维基平台的巨大优势(更改几乎是即时的,我们任何人都可以做出贡献!),(实际上相当不错)的 WYSIWYG 编辑器以及总体上无摩擦的编辑体验,并用什么来代替呢?一些(甚至不是 Markdown)文档文件,存放在 Git 仓库中。

    你大大提高了贡献门槛。为了什么?一小部分的恶意编辑吗?

    2020 年 10 月 29 日 下午 12:12

    1. 克里斯·米尔斯

      在文章中,我们详细介绍了我们迁移到不同平台的几个原因,这远远不止一些恶意编辑 ;-)

      我很想看看这将如何改变我们获得的贡献者的格局。GitHub 比 Wiki 更难使用,但

      1. 我们在非正式编辑方面损失了什么,可能会在更实质性的贡献方面有所收获。每当听到有人担心前者时,我就会听到有人说如果是在 git 中而不是在 Wiki 中,他们更有可能做出贡献。
      2. 您可以使用 GitHub UI 编辑按钮对文档进行简单更改,而无需了解任何 Git 命令。
      3. 很少有人会编辑 MDN,而对 web 开发毫无兴趣,而 git 是一个非常普遍的 web 开发工具。他们迟早会需要学习它。

      我认为这里也需要一些教育工作,确保我们有明确的指南来指导如何做某些事情。我们可以为一些更难的内容提供辅助命令。

      2020 年 10 月 30 日 下午 10:41

  7. robbaweba

    感谢您总结了未来 MDN 的变更!我非常期待亲身体验。

    关于新的(尽管很小)的贡献者入门障碍:我想到的一个建议是采用 Github Codespaces 作为提供即用型开发环境的方式。这样,新贡献者就不太可能被设置过程吓退。如果 Github Codespaces 不可用,那么也许常规的 VS Code“开发容器”可以提供类似的益处。

    2020 年 10 月 29 日 下午 14:39

    1. 克里斯·米尔斯

      这里有一些好主意,谢谢!

      我们一定会努力最终提供有用的插件集,以便在最流行的 IDE 中使 MDN 编辑变得很棒。

      我还没有研究过 GitHub codespaces,但我一定会去研究的!

      2020 年 10 月 30 日 下午 10:44

  8. iamwillshepherd

    这对开发者来说很棒。您预计何时会在仓库中发布有关新文档或需要关注的文档的 issue?贡献者在提交 PR 之前是否需要创建 issue?

    对于非开发者来说,这似乎是一种倒退。我原本以为一些最好的文档是由技术作家制作的。他们需要了解或关心 git 吗?在我看来,此举使他们的生活更加困难,同时也给发展中国家(或者如果你不够幸运,没有获得正确的肤色或赢得地理彩票的美国)的人们带来了不公平的负担。

    我确实希望能够做出贡献,但我希望有一些计划可以简化使用手机的人的操作。顺便说一句,这篇文章是在发展中国家的手机上写成的。

    2020 年 10 月 29 日 下午 14:43

    1. 克里斯·米尔斯

      我将为您提供一些答案

      1. 要修复的现有文档的 issue 将继续在此处提交:https://github.com/mdn/sprints/issues
      2. 贡献者在提交 PR 之前无需创建 issue。
      3. 我认识的大多数在这个领域工作的技术作家至少都具备基本的 git 知识。但即使对于没有 git 知识的人来说,也有 GitHub UI 编辑按钮,它使事情变得很容易。
      4. 使用手机为 MDN 做出贡献一直很具有挑战性,我无法保证解决这个问题是我们的首要任务。但我非常乐意听取您的想法。

      2020 年 10 月 30 日 下午 10:49

      1. William

        1. 我将在今晚晚些时候查看您的 ZenHub 板(已经在另一个选项卡中打开了)。
        2. 这太好了!
        3. 我认识的大多数在美国的技术作家都非常熟悉 git,但我意识到这是我所理所当然的事情。我理解你和我对此无能为力,但我认为还是值得分享一下。
        4. 也许这应该在 issue 中处理比较好。由于更改现在是通过 git 进行的,所以这可能对我来说不太方便(顺便说一句,我更喜欢 git,但我仍然理解它是一个入门障碍)。我应该在 mdn/sprints 中创建 issue 吗?

        2020 年 11 月 20 日 上午 05:17

  9. Aslan

    没有 Gitlab 吗?

    2020 年 10 月 29 日 下午 15:12

    1. Peter Bengtsson

      请参阅其他回复,它们讨论了同一个主题。

      2020 年 11 月 3 日 下午 17:14

  10. Philip Whitehouse

    在这次迁移过程中,现有贡献的归属权会保留吗?

    2020 年 10 月 29 日 下午 18:19

    1. 克里斯·米尔斯

      我们希望至少在一定程度上保留它。据我所知,我们不需要保留整个历史记录或每次编辑,但我们确实需要在某个地方列出历史贡献者。我很乐意去想出一个折衷方案,在那里我们列出每个页面的所有贡献者,以及每个人所做的编辑次数。

      在你看来,这里可以接受什么?

      2020 年 10 月 30 日 下午 10:52

  11. Duncan Lock

    看起来,尽早切换到像 Asciidoc 这样的轻量级标记语言(或者如果必须的话,Markdown),将有助于减少翻译和贡献方面的摩擦,同时可能还会让 ML 翻译变得更简单?

    2020 年 10 月 29 日 下午 20:34

    1. 克里斯·米尔斯

      我同意。我们希望在某个时候使用 markdown,因为它在网络上非常普遍,但我们可能会考虑某种 MDN 风格的 markdown,并添加一些扩展来简化操作

      2020 年 10 月 30 日 下午 10:53

  12. voracity

    我想我对迁移到私有平台与其他一些评论有相同的保留意见。我还发现,在“简化的后端平台”下,新的平台实际上更复杂了——从 Mozilla 的角度来看,它更简单,因为将工作外包给了第三方。我并不是想批评,只是用词清晰。(科技行业正变得越来越有问题,我们需要更多的 Mozilla,所以如果此更改有所帮助,那么它是有帮助的。)

    “我们将使用 GitHub 的贡献工具和功能,本质上将 MDN 从维基模型迁移到拉取请求 (PR) 模型。这对于贡献来说要好得多,因为它允许智能代码整理、批量编辑以及将 MDN 文档包含在您想要添加它的任何工作流程中(您可以在您最喜欢的代码编辑器中直接编辑 MDN 源文件)。“

    我怀疑维基百科(实际上还有 StackOverflow)之所以成功,是因为它 *没有* 传统的审查制度。传统的审查制度很慢、过于保守、严重偏见且不灵活。修复不正确公开声明的动机 *远大于* 检查实际上是私人审查队列的动机。你让它听起来好像没有权衡取舍。

    MDN 无疑是迄今为止最有价值、最可靠的 web 开发人员资源(不包括像 SO 这样的问答资源),我希望它在新平台上一切顺利。

    2020 年 10 月 30 日 上午 05:48

    1. 克里斯·米尔斯

      感谢您的评论。它们是经过深思熟虑的,公正的,并且是值得思考的内容。当我们说简化时,我们的意思是之前的平台非常难以维护,我们认为提出的更改对于我们将来进行良好的更新以及让贡献者加入是必要的。

      审查队列将完全公开,我们希望能够建立一个强大而稳定的社区。

      2020 年 10 月 30 日 下午 10:56

  13. Rami Yushuvaev

    好消息!使用 GIT 和 GitHub 网页界面可以更容易地做出贡献。但是,您应该准备好应对成千上万甚至数万个 issue 和 PR。

    Chris,你将在 11 月 2 日再次导入文档吗?我应该在哪里做出贡献?我应该何时停止使用当前平台?

    2020 年 10 月 30 日 上午 08:56

    1. 克里斯·米尔斯

      感谢 Rami!我们当然需要一个强大的流程来管理内容审查,是的。我们目前在维基模型中每天大约收到 300-400 个,因此看看这将如何改变将非常有趣。

      是的,我们会导入文档,以便在 beta 版发布时,它们在内容库中保持最新。 当发布发生时,人们可以随意继续编辑维基,但我们也希望人们尝试新的内容库。 在那里合并的更改也会复制到维基中,因此它们不会不同步。

      2020 年 10 月 30 日 上午 10:59

  14. Guillaume Grossetie

    好消息!
    我对这个改变感到非常兴奋,我认为这是朝着正确方向迈出的一步。

    > 我们正在谈论最终将内容转换为降价,但这还需要一段时间。

    正如您所说,现在讨论这个问题可能还为时过早,但我建议考虑 AsciiDoc,它具有可扩展的语法。 我很确定它可以满足 MDN 的特定需求 :)

    2020 年 10 月 30 日 上午 11:08

    1. Peter Bengtsson

      (Yari 开发人员在此)
      感谢您的建议!
      Markdown 的一个引人注目的原因是,它拥有成熟的工具,可以很好地与我们要迁移的内容相结合。 即我们充满宏的 HTML。
      AsciiDoc 可能与之一样好,甚至更好,但我们必须考虑所有变量,特别是工具,它有很多触角。

      2020 年 11 月 2 日 上午 05:27

  15. azu

    > 我们感谢某些语言(如 CJK 语言)在自动翻译方面比其他语言效果差。

    根据我的经验,机器翻译会导致某些语言出现错误。
    例如,微软的文档使用了机器翻译,这会导致很多错误。

    https://github.com/dotnet/docs.ja-jp/issues/118
    https://stackoverflow.com/questions/5274463/how-to-set-msdn-to-be-always-in-english

    :memo: 微软的文档接受反馈来修复这些问题。

    如果像谷歌这样的搜索引擎结果显示机器翻译的 MDN,我会觉得它是一个垃圾邮件网站。
    stackoverflow 也出现了类似的问题。

    https://ja.meta.stackoverflow.com/questions/2905/stack-overflow%E3%81%AE%E8%8B%B1%E8%AA%9E%E3%81%8B%E3%82%89%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AB%E6%A9%9F%E6%A2%B0%E7%BF%BB%E8%A8%B3%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%81%AE%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%A9%E3%81%86%E6%80%9D%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B
    https://ru.meta.stackoverflow.com/questions/8371/%d0%9d%d1%83%d0%b6%d0%bd%d1%8b-%d0%bb%d0%b8-%d0%bf%d0%b5%d1%80%d0%b5%d0%b2%d0%be%d0%b4%d1%8b-%d0%bd%d0%b0-stack-overflow-%d0%95%d1%81%d0%bb%d0%b8-%d0%b4%d0%b0-%d0%ba%d0%b0%d0%ba%d0%be%d0%b9-%d0%b2%d1%8b-%d0%b2%d0%b8%d0%b4%d0%b8%d1%82%d0%b5-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%83

    我觉得不可编辑的基于机器学习的自动翻译是有害的。
    所以,我希望用户可以选择英文原文,而不接受语言标头。

    如果您选择了英文,mdn 应该在下一次重定向到英文页面。(此状态应存储在像 cookie 这样的存储中)
    可能,这个用户不想看到机器翻译的页面。

    2020 年 10 月 30 日 下午 08:23

  16. Outvi V

    MDN 一直是 Web 开发人员的宝贵资源,我们很高兴看到它的改进。 GitHub 是开发人员贡献和获得认可的好地方,因此将编辑过程迁移到 GitHub 可能会简化编辑过程(尤其是在它迁移到 GitHub-Web-UI-可预览格式后,例如 Markdown),并鼓励用户做出贡献。

    对读者来说,问题在于 MDN 的可用性。 正如我们所见,GitHub 是一家美国公司,如果美国政府要求,它会屏蔽某些地区的开发人员,因此绝不符合宣言中描述的“开放和可访问”。 MDN 作为美国的一家 501(c)(3) 非营利组织,是否会被迫根据政府命令切断一些开发人员的访问权限? Mozilla 表示它是“不受损害的”,但依赖像 GitHub 这样的基础设施显然是迈向“不不受损害的”的一步。

    2020 年 10 月 30 日 下午 08:41

    1. Peter Bengtsson

      > 对读者来说,问题在于 MDN 的可用性。

      读者不会使用 GitHub,如果 GitHub 出现故障,它不会影响读者。 他们会注意到的是,如果他们滚动到底部并单击“报告问题……”链接,这将要求报告者拥有 GitHub 帐户(才能提交新的问题)。

      就阅读 MDN 及其可用性而言,它由 AWS 提供支持。

      2020 年 11 月 2 日 上午 06:45

  17. Jesper

    作为一名非英语母语人士,理论上我应该欣赏本地化的文本,但我仍然可以阅读英语,所以请

    清楚明确地标记机器翻译。 如果可能,允许逐段显示,并排比较。 允许单击一个按钮设置一个首选项 cookie 或类似的东西来切换到始终显示文本原文的模式,并允许以同样快的速度恢复它。

    如果从人工翻译转向机器翻译的意义在于重视和维护准确性和相关性,那么机器翻译作为事实上的单一翻译器的准确性和相关性能力是一个棘手的问题。

    根据我在 MDN 类网站上的经验,它们尝试使用机器翻译,机器翻译充其量只能用得上,而且始终存在误解的巨大风险,包括细微差别和微妙之处丢失,也包括语法、命令或意图完全扭曲的完全错误信息。 最糟糕的是,这些网站还坚持从英文版本自动重定向到质量较差的机器翻译。 即使其功能近乎完美,并且专门针对手头的领域进行训练,它仍然会带来一些不受欢迎的方面,并且从统计学上来说,机器翻译不可能在 MDN 这样规模和广度的工作集中维持可接受的质量水平。

    也就是说,关于让材料对世界上大多数对原文不熟悉到无法有意义地吸收信息的人可访问的观点是不可否认且重要的。 MDN 是其主题的事实上的权威,必须预测众多受众的需求。 我希望前进的道路能够通过与多种语言的使用者进行仔细的对话,并以一种能满足每个人偏好的方式来决定。

    2020 年 10 月 30 日 下午 10:16

    1. Peter Bengtsson

      (Yari 开发人员在此)
      感谢您关于“标记”机器翻译文本的建议。 我认为这是一个很好的建议。 如果用户自己在英文页面上使用了谷歌翻译,他们就不需要这个,因为他们非常清楚自己在一分钟前做了什么。

      我认为,如果 MDN 是一个博客,每篇文章都是一个按时发布的事件,通常不会有机地变异,那么 MDN 中的翻译状态将截然不同。 但如果原文不断更改,就会增加大量的复杂性。

      我们已经做了很多思考,我们还在思考围绕本地化的所有问题。 这并不容易。 但首先,我们必须专注于发布新平台。 请与我们保持联系,并提供帮助。

      2020 年 11 月 2 日 上午 05:43

  18. Max

    如果我没记错的话,Mozilla 在几个月前解雇了 MDN Web Docs 团队。 这会影响迁移吗?

    2020 年 10 月 31 日 上午 04:01

    1. 克里斯·米尔斯

      整个团队并没有被解雇。 MDN 开发人员团队的容量略有减少,MDN 作者团队的容量大幅减少,但我们正在推进新的策略,平台和内容工作都在进行中。

      2020 年 10 月 31 日 上午 04:35

    2. Peter Bengtsson

      (Yari 开发人员在此)
      正如 Chris 在他的回复中指出的那样,这是真的。
      这就是为什么我们需要你更多地帮助。 你和你的。 每个热爱优质文档的人,请来帮忙! 我们共同改善 MDN。

      2020 年 11 月 2 日 上午 05:30

      1. Peter Bengtsson

        “这就是为什么我们需要你更多地帮助。”
        不是“为你”。 对不起。

        2020 年 11 月 2 日 上午 06:42

  19. Young

    如果已发布的文章链接到 GitHub 存储库中的原始文档文件,这将使在不熟悉的存储库中导航和贡献变得不那么令人望而却步。

    感谢您的团队在如此艰难的时期所做的一切努力。

    2020 年 11 月 3 日 上午 09:44

    1. 克里斯·米尔斯

      听到你说这些真的很有趣。 我们已经在考虑添加一个功能,在每篇 MDN 文章底部创建一个部分,说些什么类似于“发现此页面上的问题? 提交问题或自己修复它 - 这里有一个指向页面源代码的链接”。 你说的是这个意思吗?

      2020 年 11 月 3 日 上午 10:09

  20. Dennis

    您的实现与微软的有什么不同?
    他们已经在 github 上托管了所有文档,甚至在他们的网站上添加了评论、PR 详细信息等。

    2020 年 11 月 5 日 上午 11:26

  21. Tom VanAntwerp

    这听起来很棒! 这在减少技术开销和通过 PR 流程路由所有内容来提高提交质量方面都很有意义。

    随着 Mozilla 早些时候的裁员,我担心会发生什么事 MDN。 但现在所有内容都在 GitHub 存储库中,我会更有信心它仍然对任何需要它的人开放和可用。

    2020 年 11 月 6 日 上午 09:23

  22. Zac Svoboda

    MDN 是,而且一直是,Web 开发的最佳资源和参考! 我喜欢与人们分享它,并希望这次改变能改善该平台。

    我在本次讨论中看到很多批评,虽然我认为很多评论都是出于爱意,但我希望大家也能关注一下这里获得的东西,而不仅仅是失去的东西。 利用现有产品来减轻 MDN 团队的维护负担可能是一个巨大的胜利。 这些都是有才华的人,他们应该有机会解决难题。 建立一个先进的 i18n 策略将是一个很大的吸引力,并极大地增强这个社区!

    2020 年 11 月 8 日 下午 02:44

  23. xty

    干得好!

    如果每个部分都有一个翻译按钮,将非常有用。

    读者可以翻译他想要的任何部分,并且应该能够切换到英文以进行对比。

    2020 年 11 月 11 日 下午 05:18

  24. Henry

    我希望 MDN 采用 ISO 639-3 标记而不是 639-1 标记来表示中文(即遵循 BCP-47)。MDN 只支持“zh-CN”/“zh-TW” 中文,这意味着非普通话用户无法贡献他们母语编写的文档。

    2020 年 11 月 17 日 下午 5:38

本文评论已关闭。