T2.1: Uses Recommended Development Tools and Workflows

Knowledge Review - InterSystems IRIS Development Professional

1. Configura conectividad de Visual Studio Code a InterSystems IRIS

Puntos Clave

  • Extensión ObjectScript: Extensión oficial para VS Code de InterSystems
  • Server Manager: Gestión centralizada de conexión para múltiples instancias IRIS
  • Configuración de Workspace: Definir conexiones de servidor en settings.json
  • Opciones de Autenticación: Autenticación basada en nombre de usuario/contraseña o token OAuth2
  • Configuración de Puerto: Management Portal (52773), Web Gateway (80/443), SuperServer (1972)

Notas Detalladas

Resumen

Visual Studio Code se ha convertido en el IDE recomendado para desarrollo InterSystems IRIS a través de la extensión oficial InterSystems ObjectScript. Esta extensión proporciona resaltado de sintaxis, completado de código IntelliSense, capacidades de debugging, y conectividad directa a instancias IRIS.

Configuración Inicial

  • Instalar la extensión desde el marketplace de VS Code
  • Usar el InterSystems Server Manager para definir conexiones a una o más instancias IRIS
  • Configurar a través de la interfaz Server Manager o editando settings.json directamente

Requisitos de Conexión

  • Hostname: Dirección IP o FQDN
  • Puerto Web Server: Típicamente 52773 para servidor web embebido
  • Namespace: Namespace destino para desarrollo
  • Autenticación: Autenticación basada en nombre de usuario/contraseña o token OAuth2
  • Opciones Avanzadas: Configuraciones SSL/TLS, rutas de aplicación web, endpoints de API personalizados

Características de Workspace

  • Soporte Multi-Instancia: Trabajar con múltiples instancias IRIS simultáneamente
  • Cambio de Entorno: Cambiar fácilmente entre entornos de desarrollo, pruebas, y producción
  • Protocolo isfs: Navegar y editar código directamente en el servidor
  • Edición del Lado del Cliente: Flujos de trabajo de exportar/importar con edición de archivo local

Mejores Prácticas

  • Usar integración de control de código fuente (Git) con edición del lado del cliente para mantener historial de versiones
  • Habilitar desarrollo colaborativo a través de control de versiones
  • Usar debugger ObjectScript integrado para breakpoints, inspección de variables, y recorrido de código paso a paso

2. Usa herramientas de debugging efectivamente

Puntos Clave

  • Comando ZBREAK: Establecer breakpoints condicionales con acciones de ejecución
  • Comando BREAK: Insertar breakpoints estáticos o habilitar ejecución paso a paso
  • Watchpoints: Monitorear cambios de variables locales y disparar acciones
  • Rastreo de Ejecución: Rastrear flujo de programa y mostrar información de pila
  • Debug Device: Separar I/O de debugging de I/O de aplicación
  • Debugger VS Code: Debugging gráfico moderno con breakpoints e inspección de variables

Notas Detalladas

Resumen

InterSystems IRIS proporciona múltiples enfoques de debugging para adaptarse a diferentes escenarios de desarrollo.

Comando ZBREAK

  • Propósito: Establecer breakpoints en ubicaciones de código específicas con condiciones y acciones de ejecución opcionales
  • Breakpoints Condicionales: Pausar ejecución cuando una variable alcanza un valor específico
  • Watchpoints: Monitorear variables locales y disparar acciones cuando los valores cambian
  • Caso de Uso: Rastrear cambios de estado sin inspeccionar manualmente cada paso

Comando BREAK

  • Breakpoints Estáticos: BREAK sin argumentos inserta breakpoints directamente en código
  • Ejecución Paso a Paso: BREAK con argumentos de cadena de letra:
  • "L" para ejecución línea por línea
  • "S" para ejecución paso a paso
  • Cuando se Alcanza: Ejecución se suspende y retorna a prompt de terminal para examen de variable y ejecución de comando
  • Análisis de Pila: Usar $STACK y funciones relacionadas para comprender jerarquía de llamada

Característica Debug Device

  • Ejecutar aplicaciones en un dispositivo mientras I/O de debugging va a un terminal separado
  • Crucial para depurar aplicaciones de pantalla completa sin disturbar su visualización

Debugger Integrado VS Code

Desarrollo moderno típicamente usa el debugger integrado de la extensión ObjectScript de VS Code:

  • Breakpoints: Condicionales e incondicionales
  • Expresiones Watch: Monitorear expresiones específicas durante ejecución
  • Inspección de Variables: Examinar valores de variables actuales
  • Navegación de Call Stack: Ver y navegar la pila de ejecución
  • Ejecución de Pasos: Step over, step into, step out
  • Conexión: Usa Debug Adapter Protocol para conectividad IRIS sin interrupciones

3. Comprende componentes de archivo Docker Compose para desarrollo IRIS

Puntos Clave

  • Definición de Servicio: Definir contenedor IRIS con imagen, puertos, y variables de entorno
  • Montajes de Volumen: Persistir datos usando %SYS durable y almacenamiento externo
  • Mapeo de Puerto: Exponer SuperServer (1972), Web Server (52773), y puertos personalizados
  • Variables de Entorno: Configurar contraseñas, claves de licencia, y parámetros de inicialización
  • Redes: Definir redes personalizadas para topologías multi-contenedor
  • Merge de Configuración: Aplicar archivos de merge CPF durante despliegue de contenedor

Notas Detalladas

Resumen

Docker Compose simplifica la orquestación de entornos de desarrollo IRIS en contenedores definiendo aplicaciones multi-contenedor en un archivo de configuración YAML.

Configuración de Servicio Básica

  • Origen de Imagen: Imagen InterSystems IRIS desde Docker Hub o registro privado
  • Nombre de Contenedor: Identificador único para el contenedor
  • Políticas de Reinicio: Definir comportamiento de reinicio de contenedor

Mapeo de Puerto

  • Puerto 1972: Conexiones SuperServer
  • Puerto 52773: Management Portal y REST APIs
  • Puertos Personalizados: Cualquier puerto específico de aplicación

Montajes de Volumen para Persistencia de Datos

  • Enfoque Durable %SYS: Montar directorio externo a /durable dentro del contenedor
  • Datos Persistentes: Bases de datos, archivos de configuración, y archivos de journal
  • Volúmenes de Código Fuente: Montar directorios de código fuente para edición en vivo desde host

Variables de Entorno

  • ISC_DATA_DIRECTORY: Ubicación de %SYS durable
  • IRIS_PASSWORD: Credenciales predeterminadas
  • ISC_CPF_MERGE_FILE: Aplicar archivos de merge de configuración durante inicio

Configuraciones Avanzadas

  • Definiciones de Red: Habilitar comunicación inter-contenedor para mirroring, sharding, o clusters de caché distribuida
  • Health Checks: Monitorear estado de contenedor y reiniciar automáticamente servicios fallidos
  • depends_on: Asegurar que contenedores inicien en orden correcto cuando servicios tienen dependencias
  • Archivos CPF Merge: Variar configuraciones IRIS a través de contenedores desplegados desde la misma imagen para diferentes entornos

4. Demuestra competencia con herramientas de desarrollo InterSystems

Puntos Clave

  • Management Portal: IDE basado en web para desarrollo de clase, operaciones SQL, y gestión de sistema
  • Studio: IDE tradicional basado en Windows (legacy pero aún soportado)
  • Atelier: IDE basado en Eclipse (deprecado, reemplazado por VS Code)
  • VS Code: IDE recomendado actualmente con extensión ObjectScript
  • Herramientas de Línea de Comando: Acceso a terminal para scripting, debugging, y administración de sistema
  • WebTerminal: Terminal basado en navegador para desarrollo remoto y solución de problemas

Notas Detalladas

Resumen

InterSystems proporciona un conjunto completo de herramientas de desarrollo para soportar varios flujos de trabajo y preferencias de desarrollador.

Management Portal

  • Acceso: Interfaz basada en web accesible vía navegador en puerto 52773
  • Capacidades de Desarrollo:
  • Editor de Clase para definir y compilar clases
  • Interfaz SQL para desarrollo de consulta y gestión de base de datos
  • System Explorer para gestión de namespace y configuración
  • Varias herramientas de monitoreo y diagnóstico
  • Mejor Para: Ediciones rápidas, configuración de sistema, y tareas administrativas

Visual Studio Code (Recomendado)

  • Extensión: Extensión InterSystems ObjectScript
  • Características Modernas:
  • Integración de control de versión Git
  • Debugging con breakpoints e inspección de variables
  • Completado de código IntelliSense
  • Soporte multi-lenguaje para ObjectScript con JavaScript, Python, o Java
  • Modos de Edición:
  • Edición del lado del servidor vía protocolo isfs
  • Edición del lado del cliente con flujos de trabajo de exportar/importar (preferido para control de código fuente)

Desarrollo de Línea de Comando

  • IRIS Terminal: Ejecución directa de ObjectScript, compilación de clase, gestión de global, administración de sistema
  • WebTerminal: Acceso a terminal basado en navegador para desarrollo remoto
  • Utilidades:
  • Clases %SYSTEM para gestión programática de sistema
  • ObjectScript Debugger para debugging basado en terminal
  • Scripts batch para builds y despliegues automatizados

Pautas de Selección de Herramienta

  • VS Code: Trabajo diario de codificación y desarrollo
  • Management Portal: Configuración y solución de problemas
  • Línea de Comando: Tareas de automatización y scripting

5. Comprende opciones de documentación de código

Puntos Clave

  • Comentarios Triple-Slash: Usar sintaxis /// para documentación Class Reference
  • Soporte de Markup HTML: Incluir tags HTML estándar para formateo
  • Tags Especiales: Usar tags CLASS, METHOD, PROPERTY, PARAMETER, QUERY, y EXAMPLE
  • Ubicación de Documentación: Comentarios deben preceder inmediatamente declaraciones de clase/miembro
  • Auto-Generación: Documentación aparece en Class Reference después de compilación
  • Mejores Prácticas: Documentar propósito, parámetros, valores de retorno, y ejemplos de uso

Notas Detalladas

Resumen

InterSystems IRIS proporciona un sistema de documentación integrado que genera documentación Class Reference directamente desde comentarios en definiciones de clase.

Sintaxis de Comentario Triple-Slash

  • Formato: Usar /// al inicio de cada línea
  • Posición: Debe aparecer en la primera posición de columna
  • Ubicación: Bloque consecutivo inmediatamente antes de la clase, propiedad, método, o parámetro
  • Compilación: Comentarios son procesados e incorporados en documentación Class Reference auto-generada

Soporte de Markup HTML

  • Párrafos: Tags p
  • Listas: ul/ol/li para listas ordenadas y no ordenadas
  • Encabezados: h2 y abajo (no h1)
  • Énfasis: Tags strong/em
  • Formateo de Código: Tags de código estándar

Tags Especiales InterSystems

  • CLASS: Crea enlaces a otra documentación de clase
  • METHOD: Enlaces a documentación de método
  • PROPERTY: Enlaces a documentación de propiedad
  • EXAMPLE: Formatea muestras de código con resaltado de sintaxis

Mejores Prácticas

Qué Documentar:

  • Todas las APIs públicas comprehensivamente
  • Resúmenes de clase describiendo propósito y casos de uso primarios
  • Parámetros de método (tipos, restricciones), valores de retorno, excepciones, y efectos secundarios
  • Propósito de propiedad, valores válidos, y relaciones

Flujo de Trabajo de Documentación:

  • Incluir ejemplos de código usando bloques EXAMPLE
  • Revisiones de documentación regulares durante revisiones de código
  • Seguir estándares XHTML para compatibilidad entre navegadores

Beneficios:

  • Tiempo de incorporación reducido para nuevos desarrolladores
  • Solicitudes de soporte disminuidas
  • Especificaciones vivas que permanecen sincronizadas con cambios de implementación

6. Implementa estrategias de ejecución en segundo plano

Puntos Clave

  • Comando JOB: Generar procesos hijo para ejecución en segundo plano
  • ID de Proceso (PID): Identificador generado por sistema para cada proceso
  • Flag de Modo Batch: Usar %SYSTEM.Process.BatchFlag() para limitar impacto de caché de base de datos
  • Prioridad de Proceso: Configurar prioridad para procesos en segundo plano vs. primer plano
  • Gestión de Lock: Coordinar acceso a recurso compartido a través de procesos
  • %SYS.ProcessQuery: Monitorear y gestionar procesos en ejecución programáticamente

Notas Detalladas

Resumen

Ejecución en segundo plano en InterSystems IRIS habilita aplicaciones para realizar tareas de larga ejecución, procesamiento paralelo, y operaciones asincrónicas sin bloquear sesiones de usuario interactivas.

Comando JOB

  • Propósito: Crea procesos hijo (procesos jobbed o spawned) que ejecutan independientemente
  • ID de Proceso: Cada proceso recibe un PID único generado por sistema para identificación
  • Especificación: Punto de entrada (label^routine o ##class(package.class).Method), parámetros opcionales, namespace, y salida de dispositivo

Procesamiento de Modo Batch

  • Caso de Uso: Procesos que acceden porciones grandes de bases de datos (compactación de datos, importaciones masivas, reportería)
  • Activación: %SYSTEM.Process.BatchFlag(1)
  • Comportamiento: Usa estrategia de caching separada que limita impacto en buffers de memoria compartida
  • Distinción Clave: Un proceso jobbed ejecuta en segundo plano pero puede ejecutar en modo batch o modo normal dependiendo de requisitos de caché

Coordinación de Proceso

  • Comandos LOCK: Adquirir y liberar locks en nodos global para prevenir condiciones de carrera
  • %SYS.ProcessQuery: Acceso programático a información de proceso para monitoreo y gestión

Mejores Prácticas

  • Manejo de Error: Procesos en segundo plano no tienen terminales interactivos; implementar manejo de error apropiado
  • Logging: Registrar a archivos o globals para solución de problemas
  • Mecanismos de Timeout: Prevenir procesos fuera de control
  • Apagado Elegante: Responder a señales de terminación apropiadamente
  • Pools de Proceso: Implementar colas de tarea para gestionar carga de trabajo en segundo plano eficientemente
  • Control de Concurrencia: Usar límites configurables y monitoreo para utilización de recursos

Resumen de Preparación para el Examen

Conceptos Críticos a Dominar:

  1. Configuración VS Code: Comprender configuración de conexión de servidor, opciones de autenticación, y configuración de workspace para desarrollo InterSystems
  2. Técnicas de Debugging: Saber cuándo usar ZBREAK vs. BREAK, cómo establecer breakpoints condicionales, y características del debugger VS Code
  3. Estructura Docker Compose: Comprender definiciones de servicio, montajes de volumen para persistencia de datos, mapeos de puerto, y configuración de variable de entorno
  4. Selección de Herramienta: Saber qué herramienta de desarrollo usar para diferentes escenarios (VS Code para codificación, Portal para admin, terminal para scripting)
  5. Estándares de Documentación: Dominar sintaxis de comentario triple-slash, soporte de markup HTML, y tags de documentación especiales
  6. Procesamiento en Segundo Plano: Comprender uso de comando JOB, modo batch vs. modo normal, y coordinación de proceso con locks

Escenarios Comunes de Examen:

  • Configurar VS Code para conectar a una instancia IRIS con configuraciones específicas de puerto y autenticación
  • Elegir la técnica de debugging apropiada para un problema dado (breakpoints, watchpoints, rastreo)
  • Escribir un archivo docker-compose.yml para un entorno de desarrollo IRIS con datos persistentes
  • Seleccionar la mejor herramienta de desarrollo para una tarea específica (cambio de configuración rápido vs. flujo de trabajo de desarrollo completo)
  • Agregar documentación Class Reference apropiada a una nueva clase con métodos y propiedades
  • Implementar un proceso en segundo plano que accede conjuntos de datos grandes sin impactar usuarios interactivos

Recomendaciones de Práctica Práctica:

  • Instalar y configurar la extensión InterSystems ObjectScript en VS Code, conectando a una instancia IRIS local
  • Practicar debugging con debugger ObjectScript (ZBREAK) y debugger gráfico VS Code
  • Crear archivos docker-compose.yml para despliegues IRIS de instancia única y multi-contenedor
  • Documentar una clase usando comentarios /// con markup HTML y tags especiales, luego ver en Class Reference
  • Escribir código usando comando JOB para generar procesos en segundo plano y coordinarlos con comandos LOCK
  • Experimentar con flag de modo batch para comprender su impacto en comportamiento de caché de base de datos
  • Configurar %SYS durable en contenedores Docker para persistir datos a través de reinicios de contenedor
  • Usar múltiples herramientas de desarrollo (Portal, VS Code, Terminal, WebTerminal) para varias tareas para comprender fortalezas

Referencias de Documentación Clave para Revisar:

  • Documentación de extensión VS Code y configuración Server Manager
  • Guía de Debugging ObjectScript incluyendo ejemplos de ZBREAK, BREAK, y watchpoint
  • Guía de Docker y Contenedores enfocándose en configuraciones docker-compose
  • Guía de creación de documentación de clase con ejemplos de markup HTML
  • Gestión de proceso y referencia de comando JOB
  • Archivos de merge de configuración para despliegues Docker

Errores Comunes a Evitar:

  • Olvidar configurar %SYS durable al usar contenedores Docker (lleva a pérdida de datos en reinicio)
  • No comprender la diferencia entre modo batch y procesos en segundo plano
  • Mapeos de puerto incorrectos en Docker Compose (especialmente 52773 para servidor web y 1972 para SuperServer)
  • Romper bloques de comentario de documentación con líneas en blanco (documentación no se generará)
  • Usar BREAK en código de producción (solo debería usarse durante desarrollo/debugging)
  • No considerar gestión de lock al implementar ejecución en segundo plano multi-proceso
  • Intentar usar montajes NFS como volúmenes externos en contenedores IRIS (no soportado)

Report an Issue