首頁  >  文章  >  後端開發  >  圖表即代碼:為視覺內容建立動態和互動式文檔

圖表即代碼:為視覺內容建立動態和互動式文檔

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