"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Diagramme en tant que code: création de documentation dynamique et interactive pour le contenu visuel

Diagramme en tant que code: création de documentation dynamique et interactive pour le contenu visuel

Publié le 2025-01-26
Parcourir:374

Dans cet article, je vous guiderai étape par étape pour créer une documentation visuelle dynamique et interactive à l'aide d'outils de diagramme en tant que code. Au lieu d'images statiques, nous générerons des diagrammes par programme, en veillant à ce qu'ils soient toujours à jour et faciles à entretenir.

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


? Diagramme comme code

Diagramme en tant que code est une approche qui vous permet de créer des diagrammes via du code au lieu d'outils graphiques traditionnels. Au lieu de créer manuellement des diagrammes, vous pouvez écrire du code dans un fichier texte pour définir la structure, les composants et les connexions de vos diagrammes.

Ce code est ensuite traduit en images graphiques, ce qui facilite l'intégration et le document dans les projets logiciels, où il est particulièrement utile pour créer et mettre à jour les diagrammes architecturaux et de flux par programme.


Qu'est-ce que les diagrammes?

Diagrams est une bibliothèque qui implémente le diagramme en tant qu'approche de code, vous permettant de créer des diagrammes d'infrastructure architecturaux et d'autres types de diagrammes via le code. Avec des diagrammes, vous pouvez facilement définir des composants d'infrastructure cloud (tels que AWS, Azure et GCP), des éléments de réseau, des services logiciels, etc., le tout avec seulement quelques lignes de code.

? Avantages du diagramme en tant que code

    ?
  • Représentation des diagrammes en tant que code : Créer et mettre à jour les diagrammes directement à partir du code, assurant la maintenabilité dans les projets agiles.
  • ?
  • Documentation automatisée : générer des visuels à partir du code, en gardant des diagrammes alignés avec l'architecture actuelle.
  • ?
  • Modifier le contrôle : suivre les modifications du diagramme dans le temps.
  • ?
  • Clarity améliorée : Améliorez la compréhension des systèmes complexes avec des visuels clairs et partagés.
  • ✏️
  • personnalisable : représenter les infrastructures cloud, les workflows ou les pipelines de données avec des visuels flexibles et personnalisés.

Tutoriel

? Installation de la bibliothèque

J'utilisais actuellement la version '0.23.4' pour ce tutoriel.


! Pip Install Diagrams == '0.23.4'
!pip install diagrams=='0.23.4'

? Diagrammes: nœuds

La bibliothèque vous permet de créer des diagrammes architecturaux par programme, en utilisant des nœuds pour représenter différents composants et services d'infrastructure.


Types de nœuds

Les nœuds dans les diagrammes représentent des composants de différents fournisseurs de services cloud ainsi que d'autres éléments architecturaux. Voici les principales catégories de nœuds disponibles:

    ☁️
  • fournisseurs de cloud : aws (Amazon Web Services), Azure, GCP, IBM Cloud, Alibaba Cloud, Oracle Cloud, DigitalOcean, entre autres.
  • ?
  • sur site : représente l'infrastructure physiquement située dans les locaux de l'entreprise.
  • ?
  • kubernetes (k8s) : système d'orchestration de conteneur pour automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées (représentées par la roue d'un navire, symbolisant le contrôle et la navigation).
  • ? ️
  • openStack : plate-forme logicielle open-source pour créer et gérer des nuages ​​publics et privés.
  • ?
  • générique : nœuds génériques qui peuvent représenter tout composant non spécifiquement couvert par des nœuds spécifiques au fournisseur (outils croisés, représentant différents outils dans une catégorie).
  • ☁️
  • SaaS (logiciel en tant que service) : représente les applications fournies en tant que service sur Internet, comme Snowflake, les services de chat (Slack, Teams, Telegram, entre autres), la sécurité (par exemple, Okta ), ou réseaux sociaux (téléphone et cloud pour le concept SaaS).
  • ?
  • personnalisé : permet aux utilisateurs de personnaliser leurs diagrammes à l'aide d'icônes PNG stockées dans un dossier spécifique. Ceci est utile pour représenter des composants d'infrastructure non couverts par les nœuds par défaut (outils personnalisés interrompus).

? Langues de programmation

La bibliothèque

des diagrammes vous permet d'utiliser différents nœuds pour représenter divers langages de programmation. Ces nœuds sont utiles pour indiquer dans vos diagrammes si une partie de votre architecture utilise des scripts ou des composants développés dans un langage de programmation spécifique.

ci-dessous, nous présenterons toutes les langues disponibles dans la bibliothèque. Si une langue manque, vous pouvez ajouter des nœuds personnalisés en téléchargeant le logo correspondant dans un dossier spécifique.


# Créez l'objet diagramme avec schémas.diagram ("Langages de programmation", show = false, filename = "langues"): # Obtenez toutes les langues disponibles dans cette bibliothèque languess = [item pour item dans dir (diagrams.programming.language) si item [0]! = '_'] # Divisez la représentation en deux lignes mid_index = len (langues) // 2 first_line = langues [: mid_index] second_line = langues [mid_index:] # Ajouter des nœuds dans la première ligne prev_node = aucun pour la langue dans First_line: current_node = evale Si prev_node n'est pas aucun: prev_node >> current_node prev_node = current_node # Ajouter des nœuds dans la deuxième rangée prev_node = aucun pour la langue dans second_line: current_node = evale Si prev_node n'est pas aucun: prev_node >> current_node prev_node = current_node Image ("langues.png")
!pip install diagrams=='0.23.4'

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


☁️ AWS (Amazon Web Services)

Nous pouvons utiliser les nœuds Amazon, qui sont organisés en plusieurs catégories, telles que:

  • analytique et affaires : aws.analytics, aws.business
  • calculer et stocker : aws.compute, aws.storage, aws.cost
  • base de données et devtools : aws.database, aws.devtools
  • Intégration et gestion : aws.integration, aws.Management
  • Apprentissage automatique et mobile : aws.ml, aws.mobile
  • Réseautage et sécurité : aws.network, aws.Security
  • Autres : aws.blockchain, aws.enduser, aws.engagement, aws.game, aws.general, aws.iot, aws.media, aws.migration, aws.quantum, aws.Robotics, aws. satellite
Ensuite, nous représenterons l'une de ces catégories pour visualiser les nœuds disponibles dans aws.database.


à partir des diagrammes d'importation diagramme à partir de l'image d'importation ipython. Importer des diagrammes.aws.database comme AWS_DATABASE database_components = [] Pour l'élément dans dir (aws_database): Si item [0]! = '_': Si ce n'est pas (comp.startswith (item) ou item.startswith (comp) pour comp dans database_components): database_components.append (item) Avec Diagram ("AWS Database", show = false, filename = "aws_database"): mid_index = len (database_components) // 2 first_line = database_components [: mid_index] second_line = database_components [mid_index:] prev_node = aucun pour item_database dans first_line: current_node = eval (f "aws_database. {item_database} (item_database)") Si prev_node n'est pas aucun: prev_node >> current_node prev_node = current_node prev_node = aucun pour item_database dans second_line: current_node = eval (f "aws_database. {item_database} (item_database)") Si prev_node n'est pas aucun: prev_node >> current_node prev_node = current_node Image ("aws_database.png")
!pip install diagrams=='0.23.4'

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


☁️ Cas d'utilisation

Maintenant, créons un plan simple qui correspond à l'importation d'un ensemble de données et à la formation d'un modèle d'apprentissage automatique sur

aws .

à partir des diagrammes d'importation diagramme, cluster à partir de diagrammes.AWS.Storage Import S3 De diagrammes.AWS.Analytics Import Glue, Athena Diagrammes d'importation.AWS.ML comme ML à partir de diagrammes.AWS.Integration Import Step-fonctions De diagrams.aws.compute import Lambda à partir de diagrammes.wetwork import apigateway à partir de l'image d'importation ipython. avec Diagramme ("AWS Data Processingline", Show = False): lambda_raw = Lambda ('Get Raw Data') # Bodets de S3 avec cluster ("Data Lake"): S3_RAWDATA = S3 ("RAW_DATA") s3_stage = s3 ("staging_data") s3_data_capture = s3 ("data_capture") Athena = Athena ("Athena") S3_RAWDATA >> ATHENA s3_stage >> Athena s3_data_capture >> Athena # Pipeline des fonctions étapes avec cluster ("pipeline de traitement des données"): Step_Functions = StepFunctions ("Pipeline") # Collues travail dans les fonctions d'étape avec Cluster ("Colle Jobs"): data_quality = Glue ("job_data_quality") transform = Glue ("job_data_transform") DataSet_Preparation = GLUE ("JOB_DATASET_MODEL") # Définir les fonctions de fonctions d'étape Step_Functions >> data_quality >> transform >> dataSet_preparation s3_rawdata >> data_quality # Sagemaker pour la formation et le déploiement du modèle avec cluster ("déploiement du modèle Sagemaker"): Train_Model = ML.SageMakerTrainingJob ("Job_Train_Model") EVAL_MODEL = ML.SageMakergroundTruth ("Job_evaluate_Model") Endpoint = Ml.SageMakerModel ("Model_enpoint") # API Gateway et Lambda pour le point final api_gateway = apigateway ("api_gateway") lambda_fn = lambda ("invoke_endpoint") # Connexion lambda_raw >> s3_rawdata S3_STAGE >> TRAMME_MODEL >> EVAL_MODEL >> Point de terminaison Point de terminaison >> lambda_fn >> api_gateway Point de terminaison >> S3_DATA_CAPTURE DataSet_Preparation >> Train_model Image ("aws_data_processing_pipeline.png")
!pip install diagrams=='0.23.4'

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


Dépôt

Voici le lien vers tout le code, si vous le trouvez utile, vous pouvez laisser une étoile ⭐️ et me suivre pour recevoir des notifications de nouveaux articles. Cela m'aidera à grandir dans la communauté technologique et à créer plus de contenu.

R0MYMENDEZ / / diagramme en tant que code Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content

Un tutoriel sur la façon de créer un projet de documentation en utilisant la méthodologie «Doc as Diagramme»

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


? Diagramme en tant que code: création de documentation dynamique et interactive pour le contenu visuel

Diagramme en tant que code est une approche qui vous permet de créer des diagrammes via du code au lieu d'outils graphiques traditionnels. Au lieu de créer manuellement des diagrammes, vous pouvez écrire du code dans un fichier texte pour définir la structure, les composants et les connexions de vos diagrammes.

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

Ce code est ensuite traduit en images graphiques, ce qui facilite l'intégration et le document dans les projets logiciels, où il est particulièrement utile pour créer et mettre à jour les diagrammes architecturaux et de flux par programme.

Qu'est-ce que les diagrammes?

Diagrams est une bibliothèque qui implémente le diagramme en tant qu'approche de code, vous permettant de créer des diagrammes d'infrastructure architecturaux et d'autres types de diagrammes via le code. Avec des diagrammes, vous pouvez facilement définir des composants d'infrastructure cloud (tels que AWS, Azure et GCP), des éléments de réseau, des services logiciels, etc., le tout avec seulement quelques lignes de code.

? Avantages du diagramme en tant que code

?…

Afficher sur github


Si vous souhaitez voir comment implémenter un site de documentation à l'aide de ce pipeline, vous pouvez lire l'article que j'ai publié dans le lien suivant

? Références

    Diagrams:
  1. https://diagrams.mingrammer.com/
Déclaration de sortie Cet article est reproduit dans: https://dev.to/r0mymendez/diagram-as-creating-dynamic-an -nteractive-documentation-isual-conten-2 p93 s'il vous plaît contacter_gol [email protected]
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3