项目中最需要3类文档,README文档、项目文档和API接口文档。

README规范

通常使用下列模板:

 
# 项目名称
 
<!-- 写一段简短的话描述项目 -->
 
## 功能特性
 
<!-- 描述该项目的核心功能点 -->
 
## 软件架构(可选)
 
<!-- 可以描述下项目的架构 -->
 
## 快速开始
 
### 依赖检查
 
<!-- 描述该项目的依赖,比如依赖的包、工具或者其他任何依赖项 -->
 
### 构建
 
<!-- 描述如何构建该项目 -->
 
### 运行
 
<!-- 描述如何运行该项目 -->
 
## 使用指南
 
<!-- 描述如何使用该项目 -->
 
## 如何贡献
 
<!-- 告诉其他开发者如果给该项目贡献源码 -->
 
## 社区(可选)
 
<!-- 如果有需要可以介绍一些社区相关的内容 -->
 
## 关于作者
 
<!-- 这里写上项目作者 -->
 
## 谁在用(可选)
 
<!-- 可以列出使用本项目的其他有影响力的项目,算是给项目打个广告吧 -->
 
## 许可证
 
<!-- 这里链接上该项目的开源许可证 -->

项目文档

项目文档包括一些需要文档化的内容,通常集中放在/docs下。 文档可以分为两类:开发文档和用户文档。可以提供中英文两份文档。一个示例如下:

docs
├── devel                            # 开发文档,可以提前规划好,英文版文档和中文版文档
   ├── en-US/                       # 英文版文档,可以根据需要组织文件结构
   └── zh-CN                        # 中文版文档,可以根据需要组织文件结构
       └── development.md           # 开发手册,可以说明如何编译、构建、运行项目
├── guide                            # 用户文档
   ├── en-US/                       # 英文版文档,可以根据需要组织文件结构
   └── zh-CN                        # 中文版文档,可以根据需要组织文件结构
       ├── api/                     # API文档
       ├── best-practice            # 最佳实践,存放一些比较重要的实践文章
   └── authorization.md
       ├── faq                      # 常见问题
   ├── iam-apiserver
   └── installation
       ├── installation             # 安装文档
   └── installation.md
       ├── introduction/            # 产品介绍文档
       ├── operation-guide          # 操作指南,里面可以根据RESTful资源再划分为更细的子目录,用来存放系统核心/全部功能的操作手册
   ├── policy.md
   ├── secret.md
   └── user.md
       ├── quickstart               # 快速入门
   └── quickstart.md
       ├── README.md                # 用户文档入口文件
       └── sdk                      # SDK文档
           └── golang.md
└── images                           # 图片存放目录
    └── 部署架构v1.png

API接口文档

用来描述组件提供的API,以及如何调用这些API。

接口文档可以按照下列风格组织:

  • README.md:分类介绍项目支持的API,并存放相同API的链接。
  • CHANGELOG.md:API接口变更历史,方便进行历史回溯。
  • generic.md:用来说明通用的请求参数、返回参数、认证方法、请求方法等。
  • struct.md:用来列出接口中使用的数据结构。
  • user.md,secret.md,policy.md:API接口文档,以REST资源名命令文档名。
  • error_code.md:错误码描述,通过程序自动生成。