Introducción
El motor de preprocesamiento de PlantUML transforma el código estático de diagramas en plantillas dinámicas y reutilizables. Cuando se combina con Visual Paradigm VPasCode—un entorno de trabajo basado en navegador y potenciado por IA para diagramas como código—, obtienes la capacidad de escribir, probar y iterar sobre arquitecturas complejas sin instalaciones locales. Esta guía cubre todo, desde la sintaxis básica de variables hasta patrones modulares avanzados, optimizados específicamente para el flujo de trabajo de VPasCode.

1. ¿Por qué usar variables en PlantUML?
Codificar valores directamente genera pesadillas de mantenimiento. Las variables te permiten:
-
Centralizar la configuración:Cambiar el nombre de una base de datos o el valor de un tiempo de espera en un solo lugar, y se actualiza en todas partes.
-
Habilitar la modularidad:Crear archivos de plantilla compartidos que se adapten según el contexto (por ejemplo, Desarrollo vs. Producción).
-
Reducir la repetición:Usar bucles y macros para generar estructuras repetitivas como clústeres de microservicios o puntos finales de API.
En VPasCode, estos beneficios se amplifican con vista previa en tiempo reallo que significa que ves el impacto de tus cambios de variables instantáneamente mientras escribes.
2. Sintaxis y declaración de variables
PlantUML moderno utiliza el prefijo ” para variables, ofreciendo un mejor ámbito y seguridad de tipos que el enfoque heredado “!$PlantUML moderno utiliza el prefijo ” para variables, ofreciendo un mejor ámbito y seguridad de tipos que el enfoque heredado “!define.
Asignación básica (=)
1. ¿Por qué usar variables en PlantUML?=Usa ” para asignar o reasignar un valor.
!$appName = "OrderService"
!$maxRetries = 5
Asignación condicional (?=)
Usar ?= para establecer un valor predeterminado solo si la variable aún no ha sido definida. Esto es crucial para crear plantillas flexibles que pueden ser sobrescritas mediante la inclusión de archivos.
!$Environment ?= "Staging"
// Si $Environment ya fue establecido por un archivo incluido, esta línea se omite.
Reglas de ámbito
-
Las variables declaradas a nivel superior son globales dentro del script.
-
Variables dentro de
!functiono!procedurebloques son locales a ese ámbito a menos que se gestionen explícitamente.
3. Tipos de datos y manejo
PlantUML admite tres tipos de datos principales:
| Tipo | Descripción | Ejemplo |
|---|---|---|
| Cadena | Texto entre comillas. | !$host = "api.example.com" |
| Entero | Números enteros para matemáticas/bucles. | !$port = 8080 |
| JSON | Datos estructurados para configuraciones complejas. | !$config = %str2json("{ 'debug': true }") |
Nota sobre los booleanos: PlantUML trata
0como falso y cualquier número distinto de cero o cadena no vacía como verdadero. Use%true()y%false()para mayor claridad.
4. Implementación práctica: Diagramas de secuencia dinámicos
Las variables brillan al definir actores y mensajes. A continuación se presenta un ejemplo completo listo para VPasCode.

@startuml
!$client = "MobileApp"
!$gateway = "API_Gateway"
!$authService = "AuthMicroservice"
!$protocol = "HTTPS/JSON"
autonumber
$client -> $gateway : Solicitud de inicio de sesión ($protocol)
activate $gateway
$gateway -> $authService : Validar token
activate $authService
alt Token válido
$authService --> $gateway : 200 OK
else Token inválido
$authService --> $gateway : 401 No autorizado
end
deactivate $authService
$gateway --> $client : Respuesta
deactivate $gateway
note right: El entorno está configurado como !$Environment
@enduml
Consejo de VPasCode: A medida que cambia $client a "WebDashboard", el diagrama se actualiza en tiempo real, lo que le permite verificar los ajustes de diseño de inmediato.
5. Características avanzadas: Funciones y funciones integradas
Funciones personalizadas (!function)
Las funciones le permiten realizar cálculos o manipulación de cadenas y devolver resultados directamente en las etiquetas del diagrama.

@startuml
!function $formatSize($mb)
!return $mb + " MB"
!endfunction
Alice -> Bob : El límite de carga es $formatSize(50)
@enduml
Funciones integradas útiles
-
%variable_exists("$varName"): Verificar si una variable está definida antes de usarla para evitar errores. -
%get_variable_value("$varName"): Obtener el valor de una variable dinámicamente, útil para depuración. -
%strlen("$text"): Obtener la longitud de una cadena para formato condicional.
6. Optimización de tu flujo de trabajo en VPasCode
VPasCode proporciona herramientas específicas para mejorar la experiencia de desarrollo impulsado por variables:
1. Vista previa en vivo y detección de errores
-
Retroalimentación instantánea: Modifica el valor de una variable en el panel del editor y observa cómo el diagrama se vuelve a renderizar al instante.
-
Depuración asistida por IA: Si omites un
$prefijo o tienes un error de ámbito, usa el Corrector de código con IA botón. Analiza la lógica del preprocesador y sugiere correcciones automáticamente.
2. Diseño modular con inclusiones
Aunque VPasCode se basa en el navegador, puedes simular la modularidad organizando tu código en bloques lógicos. Para flujos de trabajo locales, usarías !include, pero en VPasCode, puedes mantener las variables compartidas en la parte superior de tu script para un acceso fácil.
3. Exportación para documentación
Una vez que tu diagrama dinámico esté finalizado:
-
SVG: Ideal para documentación técnica donde se requieren escalabilidad y buscabilidad de texto.
-
PNG: Ideal para compartir rápidamente en Slack, Teams o comunicaciones por correo electrónico.
7. Mejores prácticas para código mantenible
-
Convenciones de nombres: Use camelCase o snake_case de forma consistente (por ejemplo, “
$dbNameo “$db_name). -
Valores predeterminados: Siempre use “
?=para variables que podrían sobrescribirse en diferentes entornos. -
Comentarios: Agregue comentarios encima de los bloques de variables para explicar su propósito, especialmente para configuraciones JSON.
-
Mantenga la lógica simple: Aunque PlantUML soporta bucles y condicionales, una lógica excesivamente compleja puede hacer que los diagramas sean difíciles de leer. Use variables para la configuración, no para construir toda la lógica de la aplicación.
Conclusión
Al dominar las variables y las directivas del preprocesador en PlantUML, transforma sus diagramas de imágenes estáticas en documentación viva. Usar “VPasCode agiliza este proceso con sus capacidades de edición mejoradas con IA y vista previa en vivo, permitiéndole centrarse en la arquitectura en lugar de la sintaxis. Comience a experimentar con asignaciones condicionales y funciones personalizadas hoy mismo para construir plantillas de diagramas más resistentes y reutilizables.












