项目规范

项目规范 #

对于多人协作的项目,每个人的开发习惯都不相同,没有统一的规范,会造成很多问题。比如:代码风格不统一,目录结构杂乱无章,API 定义不统一(URL 和错误码)。

一个好的规范可以提高软件质量,提高开发效率,降低维护成本。

选择开源协议 #

开源项目需要选择一个开源协议,如果不准备开源,就用不到开源协议。

开源许可证,大概有几十种,可分为两大类:

  • 宽松式(permissive)许可证:最基本的类型,对用户几乎没有限制,用户可以修改代码后闭源。例如 MIT,Apache 2.0 等。
  • Copyleft 许可证:比宽松式许可证的限制要多,修改源码后不可以闭源。例如 GPL,Mozilla(MPL)等。

如何选择自己项目的开源许可证,可以根据下面的图示:

图片来自于阮一峰的网络日志

文档规范 #

README #

README.md 是开发者了解一个项目时阅读的第一个文档,会放在项目的根目录下。主要是用来介绍项目的功能、安装、部署和使用。

# 项目名称

<!-- 项目描述、Logo 和 Badges -->

## Overview

<!-- 描述项目的核心功能 -->

## Getting started

### Installation

<!-- 如何安装 -->

### Usage

<!-- 用法 -->

## Contributing

<!-- 如何提交代码 -->

也可以使用快速生成 README 文档的在线工具 readme.so

项目文档 #

项目文档一般会放在 /docs 目录下。项目文档一般有两类:

  • 开发文档:用来说明项目的开发流程,如何搭建开发环境、构建、测试、部署等。
  • 用户文档:针对用户的使用文档,一般包括功能介绍文档、安装文档、API 文档、最佳实践、操作指南、常见问题等。

文档最好包含英文和中文 2 个版本。

文档目录结构示例:

docs
├── dev                              # 开发文档
│   ├── en-US/                       # 英文版
│   └── zh-CN                        # 中文版
│       ├── contributing.md          
│       └── development.md           
├── guide   
│   ├── en-US/                       # 英文版
│   └── zh-CN                        # 中文版
│       ├── api/                     # API 文档
│       ├── practice/                # 最佳实践,存放一些比较重要的实践文章
│       ├── faq/                     # 常见问题
│       ├── installation/            # 安装文档
│       └── README.md                # Guide 入口文件