现代技术文档的常用类型

现代技术文档的常用类型

快速指南

快速指南是一种指南或教程类型,为用户提供了开始使用特定软件、产品或服务所需的基本步骤。快速入门通常设计简单易懂,让用户能够迅速完成设置,并且在尽可能少的努力或先前知识的情况下开始使用软件或服务。

快速指南通常涵盖安装、配置和基本使用等主题,并可能包含屏幕截图或视频以帮助说明步骤。它们通常包含在产品文档中,或者可以在公司的网站或在线知识库上找到。

快速指南对于对软件或服务不熟悉的新用户特别有帮助,或者对于需要快速为特定用例或项目设置软件的用户也很有帮助。通过提供快速简便的开始方式,快速入门可以帮助用户节省时间,减少沮丧,同时提高他们对软件或服务的整体体验。

用户指南

用户指南,也称为用户手册,是一种提供有关如何使用特定产品或服务的指导和说明的文档类型。用户指南通常由产品制造商或服务提供商创建,并旨在帮助用户理解和有效使用产品或服务。

用户指南可能包括逐步说明、屏幕截图、图表和其他视觉元素,以帮助说明关键特性和功能。它们还可能包括对技术术语或概念的解释,以及故障排除技巧和其他资源,以帮助用户解决问题或困难。

用户指南通常按照产品或服务的不同方面,如安装、配置和使用,分成不同的部分或章节。它们也可能以不同的格式提供,如印刷小册子、PDF或在线帮助系统。

总的来说,用户指南是产品文档的重要组成部分,在帮助用户充分利用产品或服务的同时,也在提高用户的整体体验和满意度方面发挥着重要作用。

API 文档

API文档是一种技术文档,提供有关如何使用特定应用程序编程接口(API)的信息和指导。API是一组用于构建软件应用程序的协议、例程和工具,API文档解释了如何与API进行交互以访问其功能。

API文档通常包括有关API的可用函数、方法和参数的信息,以及有关如何对API进行身份验证和授权访问的详细信息。它还可能包括示例代码、错误处理指南和其他资源,以帮助开发人员理解并有效使用API。

API文档对API提供者和使用者都很重要。对于API提供者,清晰和全面的文档可以帮助吸引开发人员,并促进API的采用。对于API使用者,良好的文档可以减少学习曲线,使其更容易将API集成到自己的软件应用程序中。

Open API

OpenAPI文档,也称为OpenAPI规范,是使用OpenAPI标准描述API功能和结构的可机器读取文件。OpenAPI文档提供了API的详细、结构化的概述,包括以下信息:

  • 端点和操作:
    API支持的URL路径,以及用于与它们交互的HTTP方法(GET、POST、PUT、DELETE等)。
  • 请求和响应格式:
    请求和响应有效载荷的预期格式,包括数据类型、头部和媒体类型。
  • 认证和授权:
    验证和授权API请求的方法和要求。
  • 错误处理:
    在使用API时可能发生的错误类型,以及它们对应的HTTP状态代码和错误消息。
  • 示例和使用场景:
    示例请求和响应,说明如何在实践中使用API。

OpenAPI文档通常以YAML或JSON格式编写,可用于生成交互式API文档、客户端库和服务器代码。它们还可用于验证API请求和响应,以及测试API实现是否符合OpenAPI规范。

安装文档

安装指南是一种技术文档,提供了逐步说明如何安装和设置软件应用程序的说明。安装指南的目的是帮助用户快速高效地启动和运行应用程序,避免遇到任何错误或问题。
安装指南通常包括以下信息:

  • 系统要求:
    关于运行应用程序所需的硬件、软件和操作系统的信息。
  • 预安装步骤:
    安装前需要完成的任何必要准备工作或前提条件。
  • 安装说明:
    详细说明安装应用程序的步骤,包括任何必要的配置或自定义选项。
  • 安装后步骤:
    安装完成后可能需要执行的其他步骤,例如注册软件或配置安全设置。
  • 故障排除技巧:
    安装过程中可能出现的常见问题和解决方案,以及获取进一步帮助的资源。

配置文档

配置指南是一种技术文档,提供了配置和定制软件应用程序的说明。配置指南的目的是帮助用户根据其特定的需求和偏好调整应用程序,并在其环境中优化其性能。

配置指南通常包括以下信息:

  • 概述:
    对应用程序及其关键特性的简要描述。
  • 配置选项:
    各种可定制的设置和选项的概述,以及它们对应用程序行为的影响。
  • 配置说明:
    逐步说明如何配置应用程序,包括对设置或配置文件的任何必要更改。
  • 最佳实践:
    配置应用程序以实现最佳性能和功能的技巧和建议。
  • 故障排除技巧:
    配置过程中可能出现的常见问题和解决方案,以及获取进一步帮助的资源。

架构文档

架构文档是一种技术文档,提供了软件应用程序或系统整体设计和结构的概述。架构文档的目的是帮助利益相关者(如开发人员、架构师和项目经理)了解应用程序或系统的整体情况,以及其组件如何共同实现其目标。

架构文档通常包括以下信息:

  • 概述:
    对应用程序或系统的高层描述,包括其目的和目标。
  • 架构概述:
    应用程序或系统组件及其关系的视觉表示,如图表或流程图。
  • 组件描述:
    对应用程序或系统的每个组件的详细描述,包括其目的、功能和与其他组件的交互。
  • 数据流:
    描述数据如何在应用程序或系统中流动,包括输入、输出和数据存储。
  • 技术规格:
    有关应用程序或系统中使用的技术和平台的技术细节,如编程语言、数据库和API。

注:如果此部分适用于某个RCP组件或服务,则架构文档的范围仅限于该组件或服务,而不是整个RCP架构。RCP组件架构应描述上游和下游组件之间的关系,以及子组件的结构,如上述描述。例如,API网关的架构文档应重点关注WebEM、HTTPD、API网关和RCP用户管理服务之间的关系。

设计文档

设计文档是一种技术文档,提供了对软件应用程序或系统的设计和功能的详细描述。设计文档的目的是引导开发人员和其他利益相关者完成开发过程,帮助他们理解应用程序或系统的需求、设计决策和实现细节。

设计文档通常包括以下信息:

  • 用户需求:
    对应用程序或系统的用户需求和期望的描述。
  • 用例:
    应用程序或系统在实际世界中的使用场景或示例,包括输入和输出数据。
  • 数据设计:
    对应用程序或系统中使用的数据结构和格式的描述,包括数据库和文件格式。
  • 系统设计:
    对应用程序或系统的整体架构和组件的描述,包括图表和流程图。
  • 界面设计:
    对应用程序或系统的用户界面的描述,包括线框图和模型。
  • 算法和代码:
    应用程序或系统中使用的算法和代码的详细描述。

故障排除指南

故障排除指南是一种技术文档,提供了诊断和解决软件应用程序或系统中问题或错误的逐步过程。故障排除指南的目的是帮助用户或支持团队尽快、高效地识别和解决问题。

故障排除指南通常包括以下信息:

  • 症状:
    用户正在经历的问题或错误的描述。
  • 原因:
    问题或错误发生的可能原因,包括常见问题和错误。
  • 解决方案:
    解决问题或错误的逐步过程,包括任何必要的配置更改或软件更新。
  • 技巧和诀窍:
    有关故障排除问题的额外信息和最佳实践,包括常见解决方法和预防措施。

安全规范

安全规范是一种技术文档,描述了软件应用程序或系统的安全要求、指南和程序。安全规范的目的是确保应用程序或系统在设计和实现时考虑了安全性,以防止未经授权的访问、数据泄露和其他安全风险。

安全规范通常包括以下信息:

  • 威胁建模:
    识别应用程序或系统中潜在的安全威胁和漏洞的过程。
  • 安全要求:
    应用程序或系统的安全要求列表,包括身份验证和授权、数据加密和安全通信协议。
  • 安全指南:
    确保应用程序或系统安全性的最佳实践和指南,包括安全编码实践和定期安全审计。
  • 事件响应程序:
    检测、响应和缓解安全事件的程序,包括事件报告和升级程序。
  • 灾难恢复和业务连续性程序:
    从安全事件中恢复并确保在灾难事件发生时业务连续性的程序。

技术指导(Technical tutorials)

技术教程是一种教育性内容,提供了关于如何使用技术或软件完成特定任务或实现特定目标的逐步说明。技术教程可以涵盖广泛的主题,包括编程语言、软件框架、工具和技术以及最佳实践。

技术教程的目的是为读者提供实用的知识和技能,使他们能够解决现实世界中的问题,并提高在特定技术或软件方面的熟练程度。技术教程通常包括示例和代码片段,以帮助读者理解讨论的主题,并可能包括屏幕截图、图表和其他视觉辅助工具。

软件开发指南

软件开发指南是一份全面的文件,提供了关于软件开发整个过程的指导,从最初的规划和需求收集到部署和维护。

软件开发指南的目的是为软件开发团队提供一个清晰而一致的框架,确保在整个软件开发生命周期中遵循最佳实践。软件开发指南通常包括项目管理方法论、软件开发方法论、编码标准、测试实践、部署和发布管理以及维护和支持等信息。

软件开发指南通常由经验丰富的软件开发专业人士创建,包括项目经理、软件架构师和开发人员。它们被软件开发团队使用,以确保项目中的所有人都遵循相同的指导方针和程序,并在整个软件开发生命周期中保持一致性和质量。

软件开发指南可以根据特定组织或项目的具体需求进行定制,并可以针对不同的开发方法论和技术进行调整。它们是任何开发软件并希望确保其软件开发流程高效、有效和高质量的组织的必备资源。

功能列表

功能列表是软件产品文档中的一个部分,列出了产品中所有可用的功能。功能列表的目的是提供对产品功能的全面概述,并帮助用户了解产品的能力和限制。

注:这里的一个功能指的是一个RCP组件或服务的一个能力或功能。颗粒大小相对较小,这里的功能列表不是RCP CB功能列表。例如,RCP用户管理的功能列表如下:

  • 用户管理
  • 查询用户
  • 添加用户
  • 删除用户
  • 修改用户信息
  • 角色管理
  • 查询角色
  • 添加角色
  • 修改角色信息
  • 删除角色

功能列表通常包括对每个功能的简要描述,以及使用该功能所需的任何先决条件或依赖关系。它还可能包括有关如何访问或使用每个功能的信息,以及适用的任何限制或限制。

功能列表通常包含在产品文档中,如用户指南或手册中,并且通常可以在软件供应商的网站上找到。它们是用户了解产品功能的重要资源,可以帮助他们决定某个产品是否符合他们的需求。对于需要跟踪特定产品中包含哪些功能的产品经理和开发人员来说,它们也很有用,并确保所有功能都得到适当的文档支持。

发布说明

发布说明是软件产品文档中的一个部分,提供关于最新版本软件的信息。发布说明的目的是向用户介绍最新版本软件中包含的任何更改、错误修复、新功能和已知问题。

发布说明通常包括对最新版本中所做更改和改进的简要摘要,以及安装或升级到新版本的详细信息。它们还可能包括尚未修复的已知问题或错误列表,以及任何可用的解决方法或解决方案。

发布说明对于升级到软件产品的最新版本的用户来说是重要的资源,因为它们提供了有关更改内容和新版本预期的清晰概述。对于需要向客户或利益相关者传达更改和改进的产品经理和开发人员来说,它们也很有用。

发布说明可以包含在软件产品的文档中,也可以单独发布在软件供应商的网站或其他在线平台上。它们通常会随着软件产品的每个新版本而更新。

现代技术文档范式-文档即代码

documentation as code

什么是 documentation as code 方法

这种方法背后的理念是将文档视为软件源代码的固有部分,因此应使用与开发人员在日常编码相关活动中使用的相同工具和流程来编写和更新文档。

程序员的日常工具包括:

  • 问题跟踪器
  • 版本控制 (Git)
  • 编码 IDE(VS Code、Eclipse、Vim……)
  • 纯文本标记语言(Markdown、reStructuredText、Asciidoc)
  • 代码审查
  • CI/CD

documentation as code 是如何工作的

使用纯文本来写文档

Documentation as Code 背后最重要的思想是文档是用纯文本编写的,纯文本格式的一个优点是它们与开发人员使用的所有 IDE 兼容,因此开发人员可以直接从他们喜欢的 IDE 读取和编辑此类文档与编码方式相同。

这种文件的另一个重要优点是它可以帮助开发人员只关注技术内容,这意味着负责编写文档的团队不必担心它的布局。

由于文档旨在供人类阅读,因此建议采用允许使用基本格式的纯文本格式。技术论文所需的主要格式功能包括:

  • 文本突出显示(粗体、斜体和下划线)
  • 超文本链接
  • 项目符号和编号列表
  • 代码块和片段
  • 标题

利用这些简单的特性,内容的可读性将得到显着提升,同时书写体验也不会过重。

文档版本的控制和管理

如果文档是用纯文本编写的,那么开发人员可以很容易地使用相同的版本控制系统(VCS)来管理文档,这与编码的方式相同,因为我们所有的代码都是用纯文本格式编写的。

使用此类 VCS 工具,开发人员可以轻松跟踪所有文档更改,了解这些更改由谁创建以及何时以他们熟悉的方式进行。

由于它的相对易用性和开源的特性,Git 获得了巨大的财富和广泛的传播。事实上,全球最知名和使用最多的平台,即 GitHub 和 GitLab,都是基于 Git 的。

这些工具提供的一大优势是可以与多个人异步处理同一个文件。感谢分支,任何人都可以在他们的设备上创建文件的一个版本,进行更改,然后创建一个拉/合并请求来实施更改。所有这些都不会直接影响原始文件或正在处理同一文件的其他版本的其他人。这些平台还提供了一个界面来轻松报告和解决冲突(即对文件的同一部分进行两个不同的竞争性编辑)。

可以按照你想要的格式发布文档

文档编写、版本控制和保存后,就可以发布了。然后你会问什么是对用户好的格式?在这里,您可能一定认为将具有基本格式的纯文本文档直接发布给用户不是一个好主意。

是的,确实不是一个好主意,但是我们有工具,使用静态站点生成器 (SSG) 可以轻松地将纯文本文件转换为 HTML,允许您添加 CSS 样式表以增强和品牌外观和感觉,如果需要, 还允许您添加动态 JavaScript 部分:然后所有内容都将在服务器端呈现,为客户端提供加载速度非常快的静态页面。

多亏了 SSG,您可以轻松地将内容与其最终的图形表示解耦:开发团队将只负责技术内容,而视觉方面的责任可能会交给另一个团队。这样,开发人员不必担心选择正确的字体、格式化内容或任何其他此类活动:他们只关心将基本格式直接添加到纯文本文件中。此外,通过这种方式,任何图形更改都可以级联到所有页面,只需编辑一个样式表。

大多数 SSG 还提供了一些附加功能,这些功能极大地增强了内容的可用性,但不一定需要开发团队的手动干预。这些附加功能的示例包括:

  • 带有子部分链接的主页;
  • 侧边栏导航菜单;
  • 搜索引擎;
  • 锚链接到标题;
  • 每页的目录;
  • 发行说明管理;
  • 管理不同语言的内容;
  • 显示以前软件版本的文档。

这些功能本身就非常简单,但它们一起使查找和消费内容变得容易,帮助用户快速找到他们正在寻找的内容。
您甚至可以使用其他工具将纯文本文件转换为其他格式,如 pdf、word 等。

自动化及CI/CD

文档即代码方法的另一个好处是,您可以以与代码相同的方式利用 CI/CD(持续集成和持续交付)系统的自动化。

关于 CI,您可以创建自动化测试,每次在主分支上发出 Pull/Merge 请求时检查内容:此类测试可以检测技术错误(即无效链接、无效代码片段等)或形式错误(即 、拼写错误、缺少标点符号等)。 如果测试失败,团队会收到错误通知并采取措施解决; 如果测试通过,CD 阶段就可以开始了。

作为如何利用 CD 的示例,您将能够创建自动化检测主分支中的所有更改,并自动发布新内容。 这样,您就不必在发布过程上花费时间,而传统上这需要花费大量时间。

使用 documentation as code 维护和发布软件文档的优点

  • 更容易学习纯文本文档

纯文本框架提供了标题、超文本链接、文本突出显示和列表等基本语法。这些语法非常容易使用,同时像 reStructuredText 或 Markdown 这样的纯文本框架为基本语法提供了很好的指导,用户可以轻松学习从例子。

  • 开发人员更快速高效地编写文档

使用他们每天用来编写代码的相同工具,开发人员将能够只专注于内容,从而更快地生成内容。

  • 更好、更准确的文档

通过在编写阶段更快,开发人员将生成更准确的文档,因为编写阶段将在他们想要记录的功能开发后不久发生。另外,如果软件文档和代码在同一个仓库,那么软件变更和文档变更可以在同一个合并请求中,这样审阅者就更容易发现软件和文档之间的不匹配并及时给出评论。

  • 发布文件的格式更灵活

文档即代码方法将内容和图形解耦,开发人员只负责内容的准确性,他们不需要关心最终的文档形式,有很多工具可以用来将纯文本转换为不同的漂亮的脸格式像 SSG 一样,这些工具可以很容易地集成到 CI/CD 系统中,以利用文档发布的自动化。

  • 完整的版本控制

使用文档即代码方法,您将能够轻松跟踪对文档的每一次更改,并且在出现错误时您将能够轻松回滚。此外,版本控制还允许您检查文档是否是最新的。

  • 更轻松的协作

使用文档即代码方法,这些使用的工具旨在鼓励协作,并且通过对它们非常熟悉,开发人员可以更轻松地进行协作,并且他们将更倾向于提出更改和改进的建议。

documentation as code 的工具链

纯文本文档工具

Markdown

Markdown是一种轻量级标记语言,您可以使用它来给纯文本文档添加格式化元素。由John Gruber于2004年创建,Markdown现在是世界上最流行的标记语言之一。

使用Markdown与使用所见即所得(WYSIWYG)编辑器不同。在像Microsoft Word这样的应用程序中,您点击按钮来格式化单词和短语,更改会立即显示出来。但Markdown不是这样的。当您创建一个Markdown格式的文件时,您需要在文本中添加Markdown语法来指示哪些单词和短语应该呈现不同的样式。

例如,要表示一个标题,您在前面加上一个井号(例如,# 标题一)。或者要使短语加粗,您在前后各加两个星号(例如,这段文字加粗)。如果您习惯于使用所见即所得的应用程序,可能需要一些时间来适应在文本中看到Markdown语法。下面的截图显示了在Visual Studio Code文本编辑器中显示的Markdown文件。

您可以使用文本编辑器应用程序向纯文本文件添加Markdown格式化元素。或者,您可以使用适用于macOS、Windows、Linux、iOS和Android操作系统的众多Markdown应用程序。还有一些专为Markdown编写而设计的基于Web的应用程序。

根据您使用的应用程序,您可能无法实时预览格式化的文档,但这没关系。根据Gruber的说法,Markdown语法设计得易读且不显眼,因此即使未呈现,Markdown文件中的文本也是可读的。

Markdonw tools
  • Visual Studio Code
  • GitBook
  • Gitlab Pages
  • GitHub Pages
  • Jekyll
  • MkDocs
  • Docusaurus

Restructure Text

reStructuredText是一种易于阅读、所见即所得的纯文本标记语法和解析系统。它适用于内联程序文档(如Python docstrings)、快速创建简单网页和独立文档。reStructuredText旨在为特定应用领域提供可扩展性。reStructuredText解析器是Docutils的组成部分。reStructuredText是StructuredText和Setext轻量级标记系统的修订和重新解释。

reStructuredText的主要目标是定义和实现一种用于Python docstrings和其他文档领域的标记语法,既易读又简单,同时又足够强大以应对非平凡的使用场景。标记的预期目的是将reStructuredText文档转换为有用的结构化数据格式。

Restructure Text tools
  • Sphinx
  • Read the Docs
  • JEdit
  • ReText
  • Visual Studio Code

MarkDown vs Restructure Text

Diagram as code

图表即代码(Diagram as code)是指使用代码或声明性配置文件来创建图表,而不是传统的图形工具。它涉及使用编程语言或特定的语法来定义图表的结构和元素。

在图表即代码中,您编写描述图表组件、关系和布局的代码。然后,该代码会被工具或框架处理,根据提供的指令生成图表的可视化表示。

使用图表即代码的优点包括:

  • 版本控制和协作:由于图表被表示为代码,可以将其存储在像 Git 这样的版本控制系统中,从而允许多个团队成员协作、跟踪更改和管理修订。

  • 自动化和一致性:可以根据底层代码或配置文件的更改自动生成或更新图表。这确保图表始终是最新的,消除了手动错误或不一致性的风险。

  • 可重用性:以代码方式创建的图表可以在不同项目或环境中轻松重用。可以创建图表组件的模板或库,从而在创建类似图表时更容易维护一致性并节省时间。

  • 可扩展性:由于图表被表示为代码,可以以编程方式生成它们,从而更有效地处理大型或复杂的图表。可以利用循环、条件语句和其他编程结构来动态生成图表。

  • 集成:以代码方式创建的图表可以集成到持续集成/持续交付(CI/CD)流水线或其他自动化工作流中。这使得图表能够与相关的基础设施或应用代码一起自动生成和部署。

PlantUML

PlantUML是一个基于文本的开源工具,用于创建各种类型的图表,例如UML图、流程图、时序图、类图、用例图等。它使用简单的文本语言来描述图表的元素和关系,然后通过渲染引擎生成相应的图表图像。

使用PlantUML,您可以使用简洁的语法描述图表的结构和特征。例如,您可以使用PlantUML创建一个简单的类图如下:

@startuml
class Car {
  + String make
  + String model
  + void start()
  + void accelerate()
  + void brake()
}

class Engine {
  + void start()
  + void stop()
}

Car --> Engine
@enduml

上述代码使用PlantUML的语法描述了一个Car类和一个Engine类之间的关系,通过箭头表示Car类依赖于Engine类。生成的图表将显示两个类及其之间的关系。

PlantUML提供了丰富的语法和标记,使您能够创建复杂的图表。它支持各种图表类型和元素,允许您通过简单的文本描述快速生成专业的图表。您可以将PlantUML集成到文档、代码注释或其他工作流程中,从而方便地创建和维护图表,并保持其与代码同步更新。

此外,PlantUML还支持与其他工具和平台的集成,如IDE编辑器、文档生成器(如Markdown、HTML)、版本控制系统等。它的开放性和可扩展性使其成为软件开发、系统设计和文档编写的有用工具。

Mermaid

Mermaid和PlantUML非常相似,是一个基于JavaScript的绘图和图表工具,它使用受Markdown启发的文本定义和渲染器来创建和修改复杂的图表。Mermaid的主要目的是帮助文档与开发保持同步。

Graphviz

Graphviz是一个开源的图形可视化工具,它使用简单的文本语言来描述图表的结构和特征。它提供了一组命令行工具,可以将文本文件转换为图表图像。Graphviz支持各种图表类型,包括流程图、组织结构图、时序图、类图、用例图等。

API 文档

Doxygen

Doxygen是生成从注释的C++源代码中生成文档的事实上的标准工具,但它也支持其他流行的编程语言,如C、Objective-C、C#、PHP、Java、Python、IDL(Corba、Microsoft和UNO/OpenOffice版本)、Fortran和在一定程度上的D。Doxygen还支持硬件描述语言VHDL。

Doxygen可以通过以下三种方式帮助您:

  • 它可以从一组有注释的源文件中生成在线文档浏览器(HTML)和/或离线参考手册。还支持生成RTF(MS-Word)、PostScript、超链接PDF、压缩HTML和Unix man页的输出。文档直接从源代码中提取,这使得与源代码保持一致的文档更容易。

  • 您可以配置Doxygen从未有注释的源文件中提取代码结构。这对于在大型源代码分发中快速定位非常有用。Doxygen还可以通过包括依赖关系图、继承图和协作图来可视化各个元素之间的关系,这些图都是自动生成的。

  • 您还可以使用Doxygen创建常规文档(就像我为Doxygen用户手册和网站所做的那样)。
    Doxygen在Mac OS X和Linux下开发,但也具有高度可移植性。因此,它也可以在大多数其他Unix版本上运行。此外,还提供了Windows的可执行文件。

本文系本站原创文章,著作版权属于作者,未经允许不得转载,如需转载或引用请注明出处或者联系作者。