写点什么

文档即代码如何帮助 Pinterest 提高文档质量

  • 2025-06-18
    北京
  • 本文字数:1227 字

    阅读完需:约 4 分钟

大小:601.85K时长:03:25
文档即代码如何帮助Pinterest提高文档质量

在过去的几年里,Pinterest 的工程师一直致力于在整个组织内采用文档即代码(Docs-as-Code)的做法。通过使用相同的工具和流程来处理代码和文档,他们提高了整体文档质量和团队满意度。这种转变还帮助转变了 Pinterest 的文档文化,促进了协作,提高了质量控制、可发现性等。

 

使用文档即代码意味着像对待代码一样对待文档构件,使工程师更自然地编写和维护文档。这包括使用像 Markdown、Asciidoc 或其他标记语言;使用源代码控制工具管理文档;执行 CI/CD 流程来验证和发布文档;并自动生成最终输出,通常是 HTML 网站。

 

在 Pinterest 的案例下,采用文档即代码的策略涉及标准化 Markdown 和 Git,并将文档像代码一样集成到他们的审查和部署流程中。他们还开发了用于文档管理的专用工具,包括对元数据、模板和搜索的支持。

 

我们认为采用文档即代码策略将有助于解决我们的文档问题。总之,我们可以通过使用它来创建一个鼓励良好文档实践的系统。

 

具体来说,这种转变解决了他们之前使用的流程和工具中的几个问题,包括提出更改和迭代反馈的困难,确保所有相关利益方都能审查更新的挑战,以及由于将代码和文档保存在不同位置而导致的低可发现性。另一个麻烦点是,使用所见即所得(WYSIWYG)编辑器进行文档编写往往会混合样式和内容,这应该是分开关注的问题。

 

此外,采用文档即代码策略还带来了更广泛的好处,例如增加了拥有最新文档的可能性,并能够更早地发现设计或可用性问题。

 

通过在编写代码的同时编写文档,你可以通过阅读文档提前了解开发人员的经验。通常情况下,你试图发布的 API 的可用性差距只有在你意识到文档有多尴尬时才会显现出来。

 

如前所述,Pinterest 开发了一个内部工具,Pinterest Docs(Pdocs),以简化他们的流程,并允许文档托管在多个存储库中:

 

为了最小化设置文档项目的固定成本,我们希望有一个静态站点生成器,它可以自动地从各种文件路径和存储库中配置文档项目,并生成单个集中的文档站点。

 

具体来说,这种方法避免了为每个仓库设置新文档项目的开销,包括配置像DocusaurusMkDocs这样的工具,创建样板文件,安装依赖项,以及建立 CI/CD 管道。

 

为此,PDocs 会爬取所有仓库中的 pdocs.yaml 文件,这些文件列出了哪些 Markdown 文件需要解析成 HTML。CLI 工具通过启用基本配置和模板创建项目,以及在开发期间运行实时重载服务器以预览文档,从而简化了使用。

 

Pinterest 认为文档即代码的采用是成功的,内部调查和反馈表明,“在 PDocs 中编写和浏览文档比使用我们现有的维基风格的工具要好得多”。

 

一个关键因素是创建了一个“维基到 PDocs 转换器”,这在短短两个月内使文档项目增加了 20%,超过了 140 个。受此鼓舞,Pinterest 计划通过简化编写体验和增强协作来继续改进这一工具。

 

除了 Pinterest,许多大型组织也在使用文档即代码,包括 AWS、英国政府GitHub。如果你希望在你的团队或组织中采用这种策略,那么Write the Docs网站是一个很好的起点。

 

原文链接:

https://www.infoq.com/news/2025/06/docs-as-code-at-pinterest/

2025-06-18 15:006462

评论

发布
暂无评论

JavaScript中的Set数据操作:交集、差集、交集、对称差集

devpoint

set JavaScrip 6月日更

快手封停多个内容侵权账号:如何严打短视频内容侵权行为

石头IT视角

建信金科大咖访谈:地方特色产业互联网建设思考与实践

金科优源汇

ZooKeeper实战

CodeWithBuff

Java zookeeper

百度AICA迎来毕业季,55位新晋“首席AI架构师”推进产业智能化

百度大脑

人工智能 百度 架构师

前端面试中有趣的题目(一)

空城机

JavaScript 大前端 6月日更

德勤基于Amazon WAF 云原生安全服务为客户交付价值

亚马逊云科技 (Amazon Web Services)

迪士尼将亚马逊云科技作为首选的公有云基础设施供应商,支持 Disney+ 全球扩展

亚马逊云科技 (Amazon Web Services)

北鲲云超算平台如何加速生命科学研究

北鲲云

如何设计恒流源输出电路?

不脱发的程序猿

嵌入式 电路设计 硬件研发 恒流源输出电路

「2021中国峰会同行记」第二回 | 探索店匠从0到1出海的技术密码

亚马逊云科技 (Amazon Web Services)

详解Redis主从复制原理

蘑菇睡不着

Java redis

python 连接钉钉传输工作数据监控

百里丶落云

高性能计算与人工智能何处去?英特尔剑指XPU

E科讯

5分钟速读之Rust权威指南(三十二)互斥体

wzx

rust

混合推荐系统介绍(二十二)

Databri_AI

推荐系统 计算

为什么很多时候,我们会感觉企业越大,效率越低呢?

石云升

职场经验 管理经验 6月日更

我是如何用 ThreadLocal 虐面试官的?

陈皮的JavaLib

Java 面试 多线程 ThreadLocal

DNS劫持该如何处理

网络安全学海

程序员 运维 网络安全 信息安全 DNS

《原则》(二十九)

Changing Lin

「2021中国峰会同行记」第一回 | 与埃森哲一同追溯技术合力的本源

亚马逊云科技 (Amazon Web Services)

领域驱动设计101 - 模块

luojiahu

领域驱动设计 DDD

三个维度,透视5G价值的持续点亮之旅

脑极体

解放生产力,自动化生成Vue组件文档

vivo互联网技术

Vue 自动化 大前端 组件

新常态下的CMDB系统规划与落地

云智慧AIOps社区

CMDB 智能运维

前端 JavaScript 中 JSON.stringify() 的基本用法

编程三昧

JavaScript 大前端

如何优雅的设计DWS层?

云祁

大数据 数据仓库 维度建模

网络攻防学习笔记 Day59

穿过生命散发芬芳

网络攻防 6月日更

人工智能应用架构的思考

金科优源汇

lockSupport怎么玩

卢卡多多

锁机制 6月日更

Dubbo 3.0.0 来了!还学得动吗?

青年IT男

dubbo

文档即代码如何帮助Pinterest提高文档质量_架构_Sergio De Simone_InfoQ精选文章