Skip to content

入门

基于 writethedocs.org 与 keepachangelog.com 官方文档编写(2026.07 版本)

速查

  • 技术写作本质:把「会做」变成「能教会别人」,是工程师影响力的放大器
  • 五类核心文档:API 文档 / 架构文档 / README / CHANGELOG / 技术博客
  • API 文档规范:OpenAPI(前身 Swagger),机器可读 + 人可读,驱动 mock/SDK/文档生成
  • README 工程:项目门面,30 秒决定别人是否用你的项目
  • CHANGELOG 标准:Keep a Changelog(Added/Changed/Deprecated/Removed/Fixed/Security 六类)
  • CHANGELOG 自动化:Conventional Commits(feat/fix/BREAKING CHANGE)→ 自动生成 CHANGELOG
  • 架构文档:设计文档 + ADR(Architecture Decision Record)记录决策上下文
  • Docs as Code:文档当代码——版本控制、CI/CD、代码评审、自动化测试
  • Diagrams as Code:Mermaid(Markdown 内嵌)/ PlantUML(Java DSL)/ D2(现代声明式)
  • 写作三原则:受众先行 / 主动语态 / 术语一致
  • 信源:writethedocs.org(Docs as Code 方法论)+ keepachangelog.com(CHANGELOG 标准)
  • SemVer 语义化版本:MAJOR.MINOR.PATCH(不兼容/新增功能/修 bug)
  • 好文档的标准:可发现、可读、准确、及时、连贯(writethedocs 五要素)

技术写作是什么

技术写作是把技术知识转化为他人能理解、能使用的文档的能力。它不是「写代码后的附加任务」,而是工程实践的核心一环。

五类核心文档矩阵

文档类型受众核心目的关键产物
API 文档集成者让 API 零摩擦被使用OpenAPI spec + 交互文档
架构文档团队/新人解释系统设计与决策设计文档 + ADR + 架构图
README所有人(含外部)30 秒决定是否使用项目门面
CHANGELOG使用者让升级有预期变更记录
技术博客社区/同行经验外溢、建立影响长文 + 示例

Docs as Code 方法论

Write the Docs 推动的 Docs as Code:把文档用与代码相同的工具和流程管理:

维度传统文档Docs as Code
格式Word/Wiki 富文本纯文本标记(Markdown/reST/AsciiDoc)
版本控制文件系统/附件Git(与代码同库或配套)
评审邮件/口头Pull Request(与代码同审)
发布手动复制CI/CD(推送即构建部署)
测试自动化(死链/拼写/lint)
同步人工记忆代码变更触发文档更新

核心理念:写文档的人和写代码的人是同一拨,用同一套工具,文档才能与产品同步演进。

API 文档与 OpenAPI

为什么需要规范

非结构化的 API 文档(一堆 Markdown 描述端点)问题:易过时、不能驱动工具、无法自动测试。OpenAPI(前身 Swagger)用一份机器可读的 spec 描述整个 API,一次编写,多处使用。

OpenAPI 示例

yaml
# openapi.yaml
openapi: 3.1.0
info:
  title: 订单 API
  version: 1.0.0
paths:
  /orders/{id}:
    get:
      summary: 获取订单
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 成功
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '404':
          description: 订单不存在
components:
  schemas:
    Order:
      type: object
      properties:
        id:
          type: string
        amount:
          type: number
        status:
          type: string
          enum: [pending, paid, shipped]

OpenAPI 驱动的工具链

一份 spec 驱动整个生态:

用途工具
交互式文档Redoc / Swagger UI
Mock 服务Prism / Swaggermock
客户端 SDK 生成openapi-generator
服务端桩openapi-generator server
契约测试Dredd / Schemathesis
Lint/规范检查Spectral / vacuum

核心收益:spec 是单一真相源(single source of truth),文档/mock/SDK/测试全部自动同步。

README 工程

README 是项目的门面——读者 30 秒内决定是否继续了解。开源项目的 README 尤其关键。

README 必备结构

markdown
# 项目名

一句话说清是什么、解决什么问题。

[徽章:build status / version / license]

## 特性
- 特性 1
- 特性 2

## 快速开始
安装 + 最小可运行示例(复制即用)

## 安装
详细安装步骤

## 用法
进阶用法 + 示例

## 文档
完整文档链接

## 贡献
如何贡献(CONTRIBUTING.md 链接)

## License
开源协议

README 写作要点

  • 一句话价值主张:开头说清「这是什么 + 为什么你应该用」
  • 可复制的快速开始:复制粘贴就能跑的最小示例
  • 徽章(Badges):构建状态、版本、覆盖率、License——建立信任
  • 截图/GIF:CLI/GUI 项目用动图展示效果
  • 链接而非堆砌:详细内容放 docs/,README 只放入口

README 是营销文档

开源 README 本质是「说服别人用你的项目」的营销文档。写得像「内部备忘录」的项目很难被采用。

CHANGELOG 与 Conventional Commits

Keep a Changelog 规范

keepachangelog.com 定义 CHANGELOG 的标准格式,六类变更:

类别含义
Added新增功能
Changed现有功能变更
Deprecated即将移除的功能
Removed本次移除的功能
Fixedbug 修复
Security安全相关修复

CHANGELOG 示例

markdown
# Changelog

## [1.2.0] - 2026-07-15

### Added
- 支持批量导出订单(CSV/Excel)
- 新增 webhook 事件 `order.shipped`

### Changed
- `GET /orders` 默认分页从 20 改为 50

### Deprecated
- `GET /orders/list` 废弃,改用 `GET /orders`(下个大版本移除)

### Fixed
- 修复时区导致订单日期错位的问题

### Security
- 修复 SQL 注入漏洞(CVE-2026-xxxx)

Conventional Commits 自动化

Conventional Commits 规范提交信息,配合工具自动生成 CHANGELOG:

<type>(<scope>): <description>

[可选 body]

[可选 footer(s)]

type 决定 CHANGELOG 分类与版本号:

typeCHANGELOG 类别SemVer 影响
featAddedMINOR +1
fixFixedPATCH +1
BREAKING CHANGEChangedMAJOR +1
docs(不进 CHANGELOG)
chore / refactor / test(不进)

工具链:commitlint(校验提交格式)+ standard-version / semantic-release(自动生成 CHANGELOG + 打 tag + 发版)。

下一步

入门到此——你已经掌握五类文档矩阵、OpenAPI 规范、README 工程、Keep a Changelog + Conventional Commits、Docs as Code 方法论。下一章 guide-line.md 深入讲 架构文档与 ADR / Docs as Code 工作流实战 / Diagrams as Code(Mermaid·PlantUML·D2 选型)/ 写作原则与风格 / SemVer 语义化版本 / 文档测试与质量保障 / 写作工具链