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
Referencias de Documentación
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
Referencias de Documentación
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
Referencias de Documentación
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
Referencias de Documentació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
Referencias de Documentación
Resumen de Preparación para el Examen
Conceptos Críticos a Dominar:
- Configuración VS Code: Comprender configuración de conexión de servidor, opciones de autenticación, y configuración de workspace para desarrollo InterSystems
- Técnicas de Debugging: Saber cuándo usar ZBREAK vs. BREAK, cómo establecer breakpoints condicionales, y características del debugger VS Code
- Estructura Docker Compose: Comprender definiciones de servicio, montajes de volumen para persistencia de datos, mapeos de puerto, y configuración de variable de entorno
- Selección de Herramienta: Saber qué herramienta de desarrollo usar para diferentes escenarios (VS Code para codificación, Portal para admin, terminal para scripting)
- Estándares de Documentación: Dominar sintaxis de comentario triple-slash, soporte de markup HTML, y tags de documentación especiales
- 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)