Skip to content

技術文件寫作

前言

你寫的文件有人看嗎? 很多開發者覺得「程式碼能跑就行,文件以後再說」。結果就是:新人到職看不懂專案、API 對接全靠口頭溝通、半年後自己都忘了當初為什麼這麼設計。

本章帶你掌握技術文件寫作的核心方法,讓你的文件真正有人看、看得懂、用得上。

這篇文章會帶你學什麼?

章節內容核心概念
第 1 章文件的類型與結構不同文件的寫法
第 2 章寫作原則清晰、準確、簡潔
第 3 章實戰對比好文件 vs 差文件
第 4 章文件維護讓文件保持更新

學完本章,你將能寫出結構清晰、內容準確、易於維護的技術文件。


0. 全景圖:為什麼技術文件重要?

程式碼告訴電腦「怎麼做」,文件告訴人類「為什麼這麼做」。沒有文件的專案就像沒有說明書的電器——能用,但用起來全靠猜。

好文件的價值

  • 降低溝通成本:新人自助上手,減少重複解答
  • 保存決策上下文:記錄「為什麼」,而不只是「是什麼」
  • 提升專案可信度:好文件是開源專案的門面
  • 加速協作:API 文件讓前後端平行開發

1. 文件的類型與結構

透過下面的互動元件,了解不同類型文件的標準結構:

Documentation structure template - click to switch document types
1Project name + one-line description
2Quick start
3Features
4Usage examples
5Contributing + license

1.1 常見文件類型

文件類型目標讀者核心內容
README所有人專案是什麼、怎麼用、怎麼貢獻
API 文件介面呼叫方端點、參數、回應、錯誤碼
架構文件開發團隊系統設計、技術選型、資料流
變更日誌使用者/開發者版本變化、新增/修復/破壞性變更
貢獻指南貢獻者開發環境、程式碼規範、PR 流程

1.2 README 的黃金結構

一個好的 README 應該包含:

  1. 專案名稱 + 一句話描述:讓人 3 秒內知道這是什麼
  2. 快速開始:最少步驟跑起來
  3. 功能特性:核心賣點
  4. 安裝方式:詳細的環境需求和安裝步驟
  5. 使用範例:可複製貼上的程式碼
  6. 貢獻指南:如何參與
  7. 授權條款:法律資訊

2. 寫作原則

2.1 清晰優先

markdown
<!-- 差:模糊不清 -->
這個函式處理資料。

<!-- 好:具體明確 -->
將原始訂單資料轉換為發票格式,包含稅費計算和幣別轉換。

2.2 面向讀者

寫文件前先問:誰會讀這個文件?他們需要什麼資訊?

  • 給新手寫:解釋術語,提供完整範例
  • 給有經驗的開發者寫:直奔主題,提供 API 參考
  • 給非技術人員寫:用類比,避免術語

2.3 程式碼範例是最好的文件

markdown
<!-- 差:只有文字描述 -->
呼叫 createUser 函式,傳入使用者名稱和電子郵件參數。

<!-- 好:給出可執行的範例 -->
const user = await createUser({
  name: '張三',
  email: 'zhangsan@example.com'
})
// 回傳: { id: 'u_123', name: '張三', createdAt: '2025-01-15' }

3. 實戰對比

透過下面的互動元件,對比好的技術寫作和差的技術寫作:

Technical writing comparison - click to switch cases
❌ Poor writing
// Process data
function process(d) {
  // ...
}
✅ Better writing
/**
 * Convert raw order data into invoice format.
 * @param {Order} order - Raw order object
 * @returns {Invoice} Formatted invoice
 * @throws {ValidationError} When order data is incomplete
 */
function toInvoice(order) {
  // ...
}
Improvement points:Explain why, not just whatDocument parameter and return typesDescribe exceptional cases

3.1 Commit Message 規範

# 差
fix bug
update code

# 好(Conventional Commits)
fix: 修復登入頁在 Safari 下白屏的問題
feat: 支援批次匯出 PDF 格式報表
docs: 更新 API 認證章節的範例程式碼

3.2 註解的藝術

javascript
// 差:描述「是什麼」(程式碼已經說了)
// 遍歷陣列
for (const item of items) { ... }

// 好:解釋「為什麼」
// 倒序遍歷,因為刪除元素時正序會跳過下一個
for (let i = items.length - 1; i >= 0; i--) { ... }

4. 文件維護

4.1 文件即程式碼

把文件和程式碼放在同一個儲存庫,用同樣的工作流管理:

  • 文件變更隨程式碼一起提交 PR
  • CI 檢查文件格式和連結有效性
  • 版本發布時同步更新文件

4.2 避免文件腐爛

問題解決方案
文件過時程式碼變更時強制更新文件(PR 檢查)
無人維護指定文件負責人
內容重複單一資訊來源,其他地方引用連結

5. AI 助力:用大模型提升文件品質

大模型在技術寫作領域幾乎是「天賦異稟」——產生文件、改善表達、翻譯內容都是它的強項。

5.1 產生 API 文件

提示詞

根據以下 Express 路由程式碼,產生完整的 API 文件,包括:
- 端點路徑和方法
- 請求參數(路徑參數、查詢參數、請求體)及類型
- 成功和錯誤的回應範例
- 使用 curl 的呼叫範例

[貼上你的路由程式碼]

5.2 改善技術寫作

提示詞

請改善以下技術文件的表達,要求:
1. 語言簡潔清晰,去掉冗餘表述
2. 用主動語態替代被動語態
3. 專業術語保持準確
4. 添加必要的程式碼範例
保持原意不變,只改善表達品質。

[貼上你的文件內容]

5.3 產生 README

提示詞

根據以下專案資訊,產生一份高品質的 README.md:
- 專案名稱:[名稱]
- 一句話描述:[描述]
- 技術棧:[列出]
- 核心功能:[列出]

要求包含:專案簡介、快速開始、功能特性、
安裝步驟(含程式碼)、使用範例、貢獻指南、授權條款。

AI 使用建議

AI 產生的文件要檢查技術細節是否準確——它可能編造不存在的 API 參數或錯誤的回傳值。始終對照實際程式碼驗證。


6. 總結

  1. 類型匹配:不同文件有不同的結構和寫法
  2. 清晰優先:具體、準確、面向讀者
  3. 範例驅動:好的程式碼範例勝過千言萬語
  4. 持續維護:文件即程式碼,隨專案一起演進

終極思考

寫文件不是浪費時間,而是節省未來的時間。你今天花 30 分鐘寫的文件,可能幫 10 個人各節省 1 小時。好的文件是對團隊最好的投資。


延伸閱讀

  • 寫作指南:Google 的技術寫作課程(Technical Writing)免費且實用。
  • 文件工具:VitePress、Docusaurus、GitBook 等現代文件框架。
  • API 文件:OpenAPI/Swagger 規範是 API 文件的業界標準。
  • 實踐建議:從為自己的專案寫一個好的 README 開始。