技术文档写作全攻略
一、引言
在快速迭代的软件开发中,技术文档早已不只是附属品,而是与代码同等重要的交付物:
- 帮助新成员 T0 → T1 学习曲线指数下降;
- 降低支持成本,将重复性问答前移到自助文档;
- 为合规审计、知识传承及商业化授权保驾护航。
本攻略沉淀了一线团队在开源/商业项目、DevOps 平台、低代码引擎等场景的实战经验,提供 从立项到发布 的系统方法论与即插即用模版。
二、受众与用例调研
2.1 人群画像 (Persona)
代号 | 职责 | 技术水平 | 痛点 | 典型任务 |
---|---|---|---|---|
Dora Dev | 后端开发 | 中高级 | 想快速集成 SDK,关注 API 语义与最佳实践 | “30 分钟跑通支付回调” |
Ops Oscar | 运维/DevOps | 中级 | 需理解部署拓扑、故障定位 | “线下环境单机部署+灰度升级” |
Andy Analyst | 数据分析师 | 初级 | 不熟代码,重视示例与可视化结果 | “导出 CSV → BI 报表” |
调研方法:问卷访谈、日志分析、客服工单标签、论坛热点词。
2.2 输出物
- Persona 卡片 (Miro 模板)
- Task Matrix:Persona × 任务 → 文档章节映射
三、文档生命周期
Ideation ➜ Draft ➜ Review ➜ Release ➜ Maintenance
- Draft:作者本地或分支撰写,触发 Vale 语法检查。
- Review:Pull Request + Reviewer Checklist (见 §10)。
- Release:Tag 触发 CI,构建静态站产物并推送 OSS/CDN。
- Maintenance:定期 Doc Debt Sprint;PR 合并需 “docs updated?” Gate。
四、结构化框架
project-docs/
├─ 00-overview.md # 项目概览 & 价值主张
├─ 01-quickstart.md # 5 分钟上手
├─ 02-concepts.md # 核心概念 & 数据流
├─ 03-user-guide/
│ ├─ installation.md # 安装部署
│ ├─ configuration.md # 配置详解
│ └─ troubleshooting.md # 故障排查 & FAQ
├─ 04-api-reference/
│ ├─ rest.md # REST API (OpenAPI 自动生成)
│ └─ sdk.md # SDK 调用示例
├─ 05-advanced/
│ ├─ performance.md # 性能调优
│ └─ security.md # 安全与合规
└─ CHANGELOG.md # 版本变更记录
实践:目录名加序号,可在静态站点按自然顺序渲染侧边栏。
五、内容设计逐章详解
5.1 快速开始(Quick Start)
-
目标:让读者 Hello World 成功 → 获得 情绪价值。
-
要素:
- 环境要求表:操作系统、语言版本、依赖包、资源占用。
- 一步式脚本:
curl | bash
/docker run
/npm create
。 - 验证命令:输出预期结果的
curl
/ CLI。
-
示例 (Docker Compose)
version: "3.9"
services:db:image: postgres:16-alpineenvironment:POSTGRES_PASSWORD: exampleapp:image: ghcr.io/acme/awesome-app:1.4ports: ["8080:8080"]depends_on: [db]
5.2 概念指南(Concepts)
- 用 领域驱动设计 (DDD) 提炼核心名词 → 画概念图。
- 数据流:时序图展示调用链;强调幂等/事务边界。
- 安全模型:RBAC、OAuth Flow 类图。
5.3 使用手册 (User Guide)
- 安装部署:离线包、Helm Chart、Operator 三种方式对比表。
- 配置详解:字段表格 + JSON Schema;提供 config validator 工具。
- 故障排查:[Error Code × 解决方案] 索引;附最小复现脚本。
5.4 API 参考 (Reference)
- 自动生成:OpenAPI → Swagger UI;gRPC → Buf Docs。
- 跨语言 SDK:示例片段调用链对齐 (Python / Go / Java)。
5.5 进阶指南 (Advanced)
- 性能调优:指标基线表、压测方法 (wrk, k6)、瓶颈定位流程图。
- 安全合规:OWASP Top10 对应防护措施;GDPR 数据处理指南。
六、语言与风格指南
类型 | 建议 | 示例 |
---|---|---|
术语 | 首次出现用中英对照,“统一资源定位符 (URL)” | N/A |
语态 | 主动语态 | “系统返回 200” 代替 “200 会被返回” |
标题 | 句式统一,首字母大写 (Title Case) | “Configure TLS Certificates” |
代码 | 行内代码用 code ,多行代码块加语言标识 | bash |
标注 | 提醒、警告、提示分别使用 > Note/Warning/Tip | — |
使用 Vale 规则文件
.vale.ini
在 CI 中自动 lint。
七、多模态与可视化
- Mermaid 时序图
- 交互式示例:使用 CodeSandbox / StackBlitz 嵌入。
八、工具链与自动化
目标 | 工具 | CI 片段示例 |
---|---|---|
语法检查 | Vale / markdownlint | vale . |
UML 渲染 | PlantUML Docker | java -jar plantuml.jar |
静态站点 | Docusaurus v3 | npm run docusaurus build |
搜索引擎 | Algolia DocSearch | 环境变量配置 |
i18n | Crowdin CLI | crowdin upload sources |
部署 | GitHub Pages / OSS + CDN | gh-pages -d build |
GitHub Actions 示例
name: Build & Deploy Docs
on:push:branches: [main]
jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v4- name: Setup Nodeuses: actions/setup-node@v4with: {node-version: 20}- run: npm ci && npm run build:docs- name: Vale Lintuses: errata-ai/vale-action@v2with:files: "**/*.md"- name: Deployuses: peaceiris/actions-gh-pages@v4with:github_token: ${{ secrets.GITHUB_TOKEN }}publish_dir: ./build
九、质量度量与反馈闭环
指标 | 说明 | 采集方式 |
---|---|---|
Doc Coverage | 带有 /// 注释的导出符号 / 总导出符号 | Go Doc 工具脚本 |
Error Search Rate | 访问 404 页面的关键词 | CloudFront 日志 + Athena |
NPS | 用户对文档满意度 | GitHub Discussions / SurveyMonkey |
Doc Debt | backlog issues 打 doc-debt 标签数量 | GitHub labels |
每月仪表盘 Review,优先清理 Doc Debt > 30 的章节。
十、评审清单
- 受众定位是否准确?
- 快速开始能否 10 分钟跑通?
- 术语是否统一、拼写无误?
- 截图/示意图清晰可读,且无敏感信息?
- 示例代码可直接复制运行?
- 变更记录完整?
十一、Markdown 模板资源
---
title: <文章标题>
sidebar_position: 1
keywords: [技术文档, <项目名>]
author: <GitHub ID>
---## 背景
简要说明该章节解决的问题 / 功能。## 使用步骤
1. <Step 1>
2. <Step 2>## 代码示例
```bash
$ awesome-app --help
十二、常见坑与应对策略
场景 | 问题 | 解决方法 |
---|---|---|
代码快跑,文档滞后 | 新功能上线后文档缺失 | 流水线 block:doc-required label |
多语言翻译漂移 | 英文更新后中文未同步 | Crowdin PR 自动提醒 reviewer |
截图 404 | 存储到私有仓库,拉取权限受限 | 统一 CDN + 版本号前缀 |
外链失效 | 参考链接过期 | 扫描脚本每日检查 + GitHub Action 提 issue |
十三、结语
Documentation is not done until it’s documented and discoverable.
把写文档当作写代码:有 lint、有测试、有 CI、有版本。遵循本全攻略,相信你能打造一份让读者“秒懂”“秒用”“秒爱”的技术文档 —— 真正的 精准航海图。