Skip to content

Latest commit

 

History

History
219 lines (142 loc) · 6.34 KB

File metadata and controls

219 lines (142 loc) · 6.34 KB

文档编写最佳实践

本文档为 Zeka Stack 文档站点提供写作规范和结构建议,确保文档质量一致、对人类和 AI 都友好。

1. 标题规范

1.1 一级标题是页面名称

每个 .md 文件有且仅有一个一级标题 # 标题,它同时也是菜单项的显示文本。

  • 保持简短,不超过 10 个字
  • 用名词或名词短语,不用句子
  • 好:# 日志系统 # 统一异常处理
  • 差:# 如何使用日志系统来记录应用运行时的日志

1.2 二级标题划分主要章节

文档的骨架由二级标题 ## 构成,推荐顺序:

  1. 简介 / 作用
  2. 设计理念 / 为什么这么设计
  3. 使用方法
  4. 配置说明
  5. 最佳实践
  6. 相关链接

不是每个文档都需要全部章节,但顺序应该从"是什么"到"怎么用"再到"怎么用好"

1.3 三级及以下标题用于细节

  • 三级标题 ###:某个章节下的子主题
  • 四级标题 ####:极少使用,只有复杂配置或边界情况才需要

2. 内容结构

2.1 模块主文档(README.md)

模块主文档是读者进入某个模块后看到的第一份内容,应该在 200 行以内讲清楚三件事:

  1. 这个模块是做什么的 — 一段话说清定位
  2. 怎么用 — 最小可运行示例(代码块)
  3. 去哪里看更多 — 链接到补充文档
# 模块名称

## 📖 简介
一段话说明定位和核心能力。

## 🚀 快速使用
最小 Maven 依赖 + 最小代码示例。

## 📦 配置属性
表格列出常用配置项。

## 🔗 相关链接
- [[其他模块/index|其他模块]]

2.2 补充文档(docs/*.md)

补充文档聚焦于单一主题,每个文件只讲一件事:

  • detail-unified-exception-handler.md — 只讲统一异常处理
  • detail-parameter-validation.md — 只讲参数校验
  • detail-design.md — 只讲内部设计

不要把多个不相关主题塞进同一个文件。

2.3 文件名即主题

文件名应直接反映内容:

  • 好:detail-xss-protection.mddetail-sensitive-field-encryption.md
  • 差:detail-advanced-topics.mddetail-notes.md

3. 写作风格

3.1 直接说事

不需要开头寒暄、不需要铺垫背景、不需要解释为什么写这篇文档。直接进入主题。

  • 好:cubo-logsystem-spring-boot 提供了结构化日志和动态日志级别调整能力。
  • 差:在现代微服务架构中,日志是非常重要的一环。本文将详细介绍如何使用日志系统。

3.2 代码示例优先

能用代码块说明的,就不要用纯文字描述。

对于 Maven 依赖、配置文件、Java 代码,始终提供可直接复制的代码块,并标注语言类型:

```xml
<dependency>
    <groupId>dev.dong4j</groupId>
    <artifactId>cubo-logsystem-spring-boot-starter</artifactId>
</dependency>
```

```yaml
log:
  level: INFO
```

3.3 配置项用表格

配置属性文档统一使用表格:

属性 类型 默认值 说明
log.level String INFO 日志级别

不要用列表、代码块或纯文本来罗列配置项。

3.4 表格优于长列表

当对比关系超过 3 项时,用表格。当列举配置项、属性、类型时,用表格。

  • 3 个以下的简单列举可以用列表
  • 3 个以上的结构化数据用表格

4. 双向链接规范

4.1 写法

[[目标文件路径|显示文本]]

4.2 路径规则

链接路径必须对应站点同步后的真实文件位置,而不是源码仓库的相对路径。

场景 正确写法 错误写法
模块主页 [[arco-meta/arco-builder/index|构建框架总览]] [[arco-builder/index|构建框架总览]]
子模块主页 [[cubo-starter/cubo-logsystem-spring-boot/index|日志系统]] [[cubo-starter/cubo-logsystem-spring-boot|日志系统]]
补充文档 [[cubo-starter/cubo-rest-spring-boot/detail-xss-protection|XSS 防护]] [[detail-xss-protection|XSS 防护]]

4.3 相关链接统一放在文末

每个文档末尾用二级标题 ## 🔗 相关链接 收尾,保持风格一致:

## 🔗 相关链接

- [[arco-meta/arco-builder/index|构建框架总览]]
- [[arco-meta/arco-builder/arco-project-builder|构建逻辑抽象层]]

5. AI 友好文档

5.1 什么是 AI 友好

当前开发不仅涉及团队协作,还涉及 AI Agent 协作。AI 友好意味着:

  • 结构清晰,标题层级准确
  • 有明确的代码示例和配置说明
  • 有完整的错误码、状态码说明
  • 有输入输出示例,而不仅仅是类型定义

5.2 具体做法

提供完整示例

不要只写"注入依赖即可",而是给出完整的 Maven 坐标 + Java 代码 + 配置文件。

提供约束说明

如果某个配置项有取值范围、互斥条件或依赖关系,明确写出来。

> [!注意]
> `log.async.enabled``true` 时,`log.async.ring-buffer-size` 才生效。

提供错误语义

接口文档不只是字段列表,还应该说明:

  • 成功时返回什么
  • 失败时返回什么错误码
  • 各错误码对应的含义和建议处理方式

提供任务级上下文

不只是单个接口,还要说明接口之间的调用关系和业务流程。比如:

## 创建订单流程

1. 调用 `POST /orders` 创建订单
2. 调用 `POST /payments` 发起支付
3. 支付成功后订单状态自动流转为 `PAID`

6. 文档审查清单

新增或修改文档后,对照以下清单检查:

  • 一级标题是否简洁且唯一
  • 是否有可运行的代码示例
  • 配置项是否使用表格
  • 双向链接路径是否正确(尤其是 /index
  • 相关链接是否放在文末 ## 🔗 相关链接
  • 是否运行了 pnpm run dev 验证链接无警告
  • 文档文件是否已纳入 Git 管理(避免“更新于”显示异常,如 1970.01.01

7. 文件生命周期

7.1 新增

在源码模块下创建文件,运行 npm run sync,再运行 pnpm run dev 验证。

7.2 修改

如果修改的是源码模块文档,在源码仓库中修改,然后重新同步。

7.3 删除

在源码仓库中删除文件,运行 npm run sync,同步脚本会自动清理站点中的孤立文件。不要直接在站点仓库中手动删除同步产物。