技术写作(Technical Writing)是将复杂的技术信息转化为清晰、准确、可理解内容的过程。它不仅仅是"写文档",而是一门连接创造者与使用者的沟通艺术。无论你是开发者为API写文档,还是产品经理撰写用户指南,技术写作都是你必备的核心技能。
技术写作的核心使命:让正确的人在正确的时间以正确的方式获得正确的信息。
| 支柱 | 含义 | 示例 |
|---|---|---|
| 准确性 | 信息必须技术正确,不含歧义 | API参数类型必须与实现一致 |
| 清晰性 | 目标读者能够无障碍理解 | 用短句替代长句,用主动语态 |
| 可用性 | 读者能快速找到并使用信息 | 目录、索引、搜索、交叉引用 |
| 维度 | 技术写作 | 文学创作 | 学术写作 | 新闻写作 |
|---|---|---|---|---|
| 目标 | 指导行动 | 引发感受 | 证明观点 | 传播信息 |
| 语言 | 简洁精确 | 丰富多变 | 严谨规范 | 生动吸引 |
| 结构 | 模块化 | 叙事性 | 论证式 | 倒金字塔 |
| 读者 | 明确群体 | 广泛大众 | 同行专家 | 普通受众 |
| 评价 | 是否可用 | 是否动人 | 是否严谨 | 是否及时 |
面向最终用户,帮助用户理解和使用产品。包括用户手册、快速入门指南、FAQ等。产品文档的核心衡量标准是:用户能否不求助他人就完成任务?
# 典型产品文档结构
├── 快速入门
├── 安装指南
├── 用户手册
│ ├── 基础概念
│ ├── 核心功能
│ └── 高级特性
├── 常见问题
└── 术语表
面向开发人员,描述系统内部工作原理和接口。开发者文档的关键在于让开发者能快速集成——5分钟跑通Hello World是最基本的要求。好的开发者文档甚至能让SDK成为可选品。
# 开发者文档关键要素
- 快速开始(5分钟跑通Hello World)
- 认证与授权
- API参考(端点、参数、响应、示例)
- SDK集成指南
- 错误处理
- 变更日志
描述团队内部工作流程和规范。包括编码规范、发布流程、onboarding指南等。流程文档的核心价值在于减少沟通成本,让新人能快速上手,让老人不重复犯错。
记录技术决策的上下文和理由。包括RFC(Request for Comments)、ADR(Architecture Decision Records)等。决策文档最重要的不是记录"做了什么决定",而是"为什么做这个决定"——以及考虑过但没采纳的方案。
# ADR 模板示例
# ADR-001: 使用 PostgreSQL 作为主数据库
## 状态
已接受
## 背景
系统需要选择主数据库,要考虑数据一致性、查询能力和运维成熟度。
## 决策
选择 PostgreSQL 14.x 作为主数据库。
## 理由
1. ACID事务支持完善,满足金融级数据一致性要求
2. JSONB类型支持半结构化数据,减少表设计复杂度
3. 社区活跃,扩展生态丰富(PostGIS、pg_trgm等)
4. 团队有3年PostgreSQL运维经验
## 后果
- 需要DBA进行vacuum调优
- 读写分离需要额外配置流复制
- 部分ORM的PostgreSQL支持不如MySQL成熟
每一段文字都要问自己:读者是谁?他们需要什么?他们已经知道什么?读者优先不是口号,而是写作时最重要的思维框架。如果你不知道读者是谁,你的文档就不知道在跟谁说话。
mmap_file() 将文件内容加载到内存,返回的指针可以直接像数组一样访问文件内容。
围绕用户要完成的任务组织内容,而不是围绕产品功能。用户不是为了"使用功能"而来的,他们是为了"完成任务"。文档应该从任务出发,功能只是达成任务的手段。
系统支持导出为CSV、JSON、Excel三种格式。
先给出简单概要,再逐步展开细节。让读者可以按需深入。这就像一本书——先看目录,再看感兴趣的章节,最后才是深入研究附录。
# 渐进展开示例
## 快速入门(5分钟)
三步跑通第一个示例 → 建立信心
## 核心概念(30分钟)
理解系统设计哲学 → 建立心智模型
## 深入指南(2小时)
掌握高级特性与最佳实践 → 生产就绪
## API参考
按需查阅 → 日常开发
同一文档中,术语、格式、风格必须一致。建立并遵循样式指南。不一致的文档让读者怀疑内容的可信度——如果术语都不统一,技术细节可靠吗?
| 不一致 ❌ | 一致 ✅ |
|---|---|
| 点击 / 单击 / Press | 点击 |
| 文件夹 / 目录 / Folder | 目录 |
| 布尔 / Boolean / 布尔型 | 布尔值 |
| 服务器 / Server / server | 服务器 |
# 标准技术写作流程
1. 规划 ──→ 确定目标、读者、范围
│
2. 调研 ──→ 收集技术信息、访谈SME(领域专家)
│
3. 大纲 ──→ 建立信息架构、确定章节结构
│
4. 起草 ──→ 按大纲填充内容
│
5. 评审 ──→ 技术评审 + 文档评审
│
6. 修订 ──→ 根据反馈修改
│
7. 发布 ──→ 部署到文档平台
│
8. 维护 ──→ 随产品更新迭代
注意:这个流程不是线性的,而是迭代式的。在实际工作中,你可能需要在调研后回到规划,或者在评审后重新起草。关键是每个阶段都要有明确的输出物。
| 工具 | 用途 | 适合场景 |
|---|---|---|
| Markdown | 轻量标记语言 | README、博客、wiki |
| AsciiDoc | 结构化文档 | 长篇手册、书籍 |
| Docusaurus | 文档站点生成 | 开源项目文档 |
| Swagger/OpenAPI | API描述 | REST API文档 |
| Notion/Confluence | 协作写作 | 团队内部文档 |
技术文档必须像代码一样进行版本管理。使用Git管理文档变更,与代码同步发布。文档没有版本管理,就像代码没有Git——不可追溯、不可回滚、不可协作。
# 文档版本管理最佳实践
docs/
├── versioned_sidebars/
│ ├── version-2.0-sidebars.json
│ └── version-1.0-sidebars.json
├── versions.json
└── docs/
├── intro.md # 当前版本
└── tutorial.md
初级技术写作者 ──→ 高级技术写作者 ──→ 技术写作负责人
│ │ │
写好单篇文档 建立文档体系 制定写作标准
学习工具链 培训其他写作者 推动文档文化
理解产品 参与产品设计评审 构建工具平台
| 能力 | 初级 | 中级 | 高级 |
|---|---|---|---|
| 写作 | 清晰表达 | 结构化写作 | 信息架构设计 |
| 技术 | 理解产品 | 读懂代码 | 参与设计 |
| 项目管理 | 按时交付 | 并行多项目 | 建立流程 |
| 沟通 | 访谈SME | 驱动评审 | 影响决策 |
| 工具 | 使用工具 | 配置工具 | 开发工具 |
如何衡量技术写作的质量?以下是一个可操作的评估框架:
| 维度 | 指标 | 测量方法 | 目标值 |
|---|---|---|---|
| 准确性 | 错误率 | 技术评审反馈 | 0严重错误 |
| 完整性 | 覆盖度 | 任务覆盖率分析 | >90% |
| 可读性 | 阅读时间 | 平均阅读时长 | <10分钟/页 |
| 可用性 | 任务完成率 | 用户测试 | >80% |
| 满意度 | 评分 | 文档评分系统 | >4.0/5.0 |
分析以下场景,判断应采用哪种技术写作类型,并列出关键要素:
参考答案:
改进以下技术描述:
原文:"本系统采用微服务架构,各个服务之间通过消息队列进行异步通信,保证了系统的高可用性和可扩展性。"
改进方向:
改进版:
选取你最近写的一篇技术文档,用以下维度自我评分(1-5分):
计算总分,低于15分的文档需要优先改进。
✅ 验证通过:理解技术写作的定义、类型和核心原则
✅ 验证通过:掌握技术写作的工作流程和工具链
✅ 验证通过:能够识别不同场景下的文档类型