首页  >  文章  >  后端开发  >  图表即代码:为视觉内容创建动态和交互式文档

图表即代码:为视觉内容创建动态和交互式文档

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-26 18:07:08967浏览

在本文中,我将逐步指导您使用图表即代码工具创建动态和交互式可视化文档。我们将以编程方式生成图表,而不是静态图像,确保它们始终是最新的且易于维护。

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content


?图表作为代码

图表即代码是一种允许您通过代码而不是传统图形工具创建图表的方法。您可以在文本文件中编写代码来定义图表的结构、组件和连接,而不是手动构建图表。

然后,该代码被转换为图形图像,从而更容易在软件项目中集成和记录,这对于以编程方式创建和更新架构和流程图特别有用。


什么是图表?

Diagrams 是一个 ?Python 库,它实现了图表即代码方法,使您能够通过代码创建架构基础设施图和其他类型的图表。借助图表,您只需几行代码即可轻松定义云基础设施组件(例如 AWS、Azure 和 GCP)、网络元素、软件服务等。

?图即代码的好处

  • 将图表表示为代码:直接从代码创建和更新图表,确保敏捷项目的可维护性。
  • 自动化文档:从代码生成视觉效果,使图表与当前架构保持一致。
  • 更改控制:跟踪图表随时间的修改。
  • 增强清晰度:通过清晰、共享的视觉效果提高对复杂系统的理解。
  • ✏️ 可定制:用灵活且定制的视觉效果表示云基础设施、工作流程或数据管道。

教程

?库安装

我目前在本教程中使用版本“0.23.4”。

!pip install diagrams=='0.23.4'

?图表:节点

该库允许您以编程方式创建架构图,使用节点来表示不同的基础设施组件和服务。


节点类型

图中的节点代表来自不同云服务提供商的组件以及其他架构元素。以下是可用节点的主要类别:

  • ☁️ 云提供商:AWS (Amazon Web Services)、Azure、GCP、IBM Cloud、阿里云、Oracle Cloud、DigitalOcean 等。
  • 本地:代表物理上位于公司场所的基础设施。
  • Kubernetes (K8S):容器编排系统,用于自动化容器化应用程序的部署、扩展和管理(用船轮表示,象征控制和导航)。
  • ?️ OpenStack:用于创建和管理公共云和私有云的开源软件平台。
  • 通用:通用节点,可以表示特定于提供者的节点未专门覆盖的任何组件(交叉工具,表示一个类别中的不同工具)。
  • ☁️ SaaS(软件即服务):表示通过互联网作为服务交付的应用程序,例如 Snowflake、聊天服务(Slack、Teams、Telegram 等)、安全性(例如 Okta) ),或社交网络(为了 SaaS 概念划掉了电话和云)。
  • 自定义:允许用户使用存储在特定文件夹中的 PNG 图标自定义图表。这对于表示默认节点(划掉的自定义工具)未涵盖的基础架构组件非常有用。

?编程语言

Diagrams 库允许您使用不同的节点来表示各种编程语言。这些节点有助于在图表中指示架构的任何部分是否使用以特定编程语言开发的脚本或组件。

下面,我们将展示库中所有可用的语言。如果缺少任何语言,您可以通过将相应的徽标上传到特定文件夹来添加自定义节点。

!pip install diagrams=='0.23.4'

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content


☁️ AWS(亚马逊网络服务)

我们可以使用 Amazon 节点,这些节点分为几个类别,例如:

  • 分析和业务:aws.analytics、aws.business
  • 计算和存储:aws.compute、aws.storage、aws.cost
  • 数据库和开发工具:aws.database、aws.devtools
  • 集成和管理:aws.integration、aws.management
  • 机器学习和移动:aws.ml、aws.mobile
  • 网络和安全:aws.network、aws.security
  • 其他:aws.blockchain、aws.enduser、aws.engagement、aws.game、aws.general、aws.iot、aws.media、aws.migration、aws.quantum、aws.robotics、aws。卫星

接下来,我们将代表这些类别之一以可视化 aws.database 中的可用节点。

!pip install diagrams=='0.23.4'

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content


☁️ 使用案例

现在,让我们创建一个简单的蓝图,对应于在 AWS 上导入数据集并训练机器学习模型。

# Create the diagram object
with diagrams.Diagram("Programming Languages", show=False, filename="languages"):
    # Get all the languages available in this library
    languages = [item for item in dir(diagrams.programming.language) if item[0] != '_']

    # Divide the representation in two lines
    mid_index = len(languages) // 2
    first_line = languages[:mid_index]
    second_line = languages[mid_index:]

    # Add nodes in the first row
    prev_node = None

    for language in first_line:
        current_node = eval(f"diagrams.programming.language.{language}(language)")
        if prev_node is not None:
            prev_node >> current_node
        prev_node = current_node

    # Add nodes in the second row
    prev_node = None

    for language in second_line:
        current_node = eval(f"diagrams.programming.language.{language}(language)")
        if prev_node is not None:
            prev_node >> current_node
        prev_node = current_node

Image("languages.png")

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content


存储库

以下是全部代码链接,如果觉得有用,可以给个star⭐️并关注我,接收新文章通知。这将帮助我在技术社区中成长并创造更多内容。

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content 罗米门德斯 / 图表即代码

有关如何使用“文档为图表”方法创建文档项目的教程

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content


?图表即代码:为视觉内容创建动态和交互式文档

图表即代码是一种允许您通过代码而不是传统图形工具创建图表的方法。您可以在文本文件中编写代码来定义图表的结构、组件和连接,而不是手动构建图表。

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content

然后,该代码被转换为图形图像,从而更容易在软件项目中集成和记录,这对于以编程方式创建和更新架构和流程图特别有用。

什么是图表?

Diagrams 是一个 ?Python 库,它实现了图表即代码方法,使您能够通过代码创建架构基础设施图和其他类型的图表。借助图表,您只需几行代码即可轻松定义云基础设施组件(例如 AWS、Azure 和 GCP)、网络元素、软件服务等。

?图即代码的好处

  • ?…


在 GitHub 上查看


如果您想了解如何使用此管道实现文档站点,您可以阅读我在以下链接中发布的文章


?参考

  1. 图表: https://diagrams.mingrammer.com/

以上是图表即代码:为视觉内容创建动态和交互式文档的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn