En el dinámico panorama del desarrollo de scripts, mantener la eficiencia y la coherencia entre las frecuentes actualizaciones y la colaboración puede resultar frustrante. Esta presentación muestra el poder del software Git para el trabajo colaborativo en scripts, ofreciendo soluciones a problemas comunes como borrados accidentales, control de versiones y la incomodidad de las copias de seguridad manuales.
Git es una herramienta esencial para el trabajo en equipo, ya que permite que varios colaboradores trabajen simultáneamente en un proyecto. Con Git, cada cambio se versiona automáticamente, lo que proporciona un historial completo que permite a los equipos rastrear, revertir y revisar las modificaciones sin esfuerzo. Además, la creación automática de copias de seguridad de Git garantiza la seguridad de su trabajo en tiempo real, eliminando el riesgo de pérdida de datos y mejorando la productividad general.
Después de explicar la estructura de Git, así como cómo se configura y se utiliza, esta presentación demuestra cómo desarrollar un script.
JMP en Git es una llamada a la acción que queremos promover. Me llamo Britta Silbersack. Trabajo en Roche Diagnostics y mi tarea allí es apoyar a nuestros científicos con la solución de scripting en JMP. Cuando comencé con esta actividad, conocí a Bernd, quien trabajaba como consultor para Roche. Ahora nos volvimos a reunir para realizar esta presentación.
Me llamo Bernd Heinen. Algunos me conocen como exingeniero sénior de sistemas de JMP. Ahora trabajo como consultor. Ayudo a mis clientes a comprender y aplicar la estadística, o les doy formación en JSL. Así conocí a Britta. Hace un tiempo, hablamos de programación y pensamos que sería buena idea promover el uso del repositorio Git para el desarrollo de JSL.
¿Qué es Git? Git es un sistema de control de versiones distribuido. Guardas tus scripts JSL en una carpeta de administrador de Git y, a continuación, dispones de numerosas funciones que te ayudan a gestionarlos y simplificar tu trabajo. Simplemente toma instantáneas de tus scripts en diferentes momentos. Te ayuda a organizar tus copias de seguridad, ejecutar el control de versiones, facilitar la colaboración y documentar tu trabajo.
Puedes aprovechar todas las ventajas de Git cuando trabajas como programador por tu cuenta. En ese caso, no necesitas mucha infraestructura. Se recomienda tener tu copia en un servidor remoto como respaldo. El verdadero poder de Git reside en un entorno colaborativo. Los miembros del equipo pueden trabajar en el mismo programa, subir sus versiones al repositorio y luego consolidar su trabajo. Es una máquina detrás de todo, y su comunicación nativa se realiza mediante una interfaz de línea de comandos. Pero existen muchos complementos que proporcionan interfaces gráficas de usuario para Git e incluso amplían su funcionalidad.
Queremos mostrar un video corto sobre un flujo de trabajo característico. No pretende ser un video de capacitación sobre Git, sino una motivación para el usuario. Intentamos que sea breve, pero lo suficientemente informativo como para demostrar la interacción con Git. Aclararemos aspectos como la programación en JSL, el registro del script en Git, qué es una instantánea, la función del repositorio y cómo se pueden fusionar diferentes versiones del mismo script.
Comenzamos con una vista en la laptop de Britta. Navega a GitLab Cloud, una de las opciones de alojamiento para Git. Crea un nuevo grupo, "take it easy", e invita a otros, en este caso, a mí, a unirme. Solo toma unos clics. En este grupo, crea un nuevo proyecto vacío, TryGit. Completa la configuración predeterminada, crea el proyecto, copia el enlace aquí y luego regresa a su laptop o trabaja localmente en ella. Con las extensiones de Git, la interfaz gráfica que usamos para este ejemplo (hay muchas), pega el enlace y clona o copia el repositorio. Esto crea un espacio de trabajo vacío en su laptop.
Ahora, empieza a escribir su script JSL en JMP, por supuesto. Una vez terminado, lo guarda en la carpeta administrada por Git. Crea una confirmación (una instantánea) y sube el estado actual al repositorio web de GitLab.
Ahora veamos la laptop de Bernd, quien trabaja remotamente en GitLab. Cuando creé el grupo de trabajo, Bernd recibió un correo electrónico de Git. Sintió curiosidad y siguió el enlace al repositorio remoto. Buscó el proyecto. En ese momento, aún no había contenido. También copió el enlace. Siguió el mismo procedimiento. Clonó el repositorio desde la URL cifrada por SSH y determinó dónde debería estar ese clon en su laptop. Usa el nombre del repositorio para su carpeta y la abre.
Como era de esperar, solo muestra un espacio de trabajo vacío. Desafortunadamente, recibí otra llamada urgente y le pedí a Bernd que continuara con el trabajo. Después de subir mi código JSL, Bernd extrae o descarga el estado actual del proyecto. Lo abre en JMP y extiende el programa. Guarda los cambios en el mismo archivo. Luego, cambia a la extensión de Git y crea una nueva rama. Esto permite que Git rastree los cambios. Confirmas o guardas el estado actual, y Bernd puede ver dónde se añadió el programa. También sube el estado al repositorio. Haz clic en "Comprobar" y luego cambia a GitLab. En la web, hay una nueva rama. Establece el foco en esta rama y crea una nueva solicitud de fusión.
En la solicitud de fusión, nombré a Britta como revisora y le envié un mensaje. Este mensaje o la información la recibió automáticamente por correo electrónico. Ahora estamos revisando su portátil. Recibió el correo electrónico, siguió el enlace, fue al repositorio y vio la solicitud de fusión. La encontró, la leyó, la revisó y finalmente confirmó mis cambios. Git muestra dónde se han realizado los cambios y la fusión está completa.
Ahora, las dos ramas diferentes se unen de nuevo a la rama principal. Britta ha vuelto al proyecto y decidimos trabajar en diferentes tareas en paralelo. La extracción establece la misma base para nuestro desarrollo en ambos ordenadores. En el ejemplo del trabajo de Britta, pueden ver cómo crea una nueva rama. Esto permite que Git haga seguimiento de sus cambios. Yo hago lo mismo en mi ordenador (no se muestra aquí) y luego continuamos con nuestra programación, cada uno con su versión del programa.
Ambos realizamos la confirmación o la instantánea de nuestros programas. Observe que las diferencias con la instantánea anterior están resaltadas. Subimos nuestras ramas al repositorio.
Britta, en su portátil, consulta el repositorio en la web y ve que ambas ramas están ahí. Comenta su rama y luego crea una solicitud de fusión y me nombra revisor.
La laptop de Bernd, ahora teletrabaja. Bernd accede a la web, abre la solicitud de fusión y la aprueba. Cambió a la rama principal. Luego, extrajo el nuevo estado del programa a su laptop, enfocó su rama e inició una fusión allí. Quiere integrar la rama principal en su rama "Ajustar un Modelo". ¡Madre mía, hay conflictos!
También existen herramientas que ayudan a mitigar la situación. Bernd usa la herramienta de fusión para consolidar las diferentes versiones del programa. Aquí se pueden apreciar muchas diferencias. Se pueden identificar fácilmente los cambios, eliminar duplicados, insertar algunas partes y copiar y pegar otras. Bernd guarda los cambios, confirma de nuevo y actualiza los cambios. Ahora podemos extraer la versión actual del programa y ejecutar el programa completo con ambas partes.
Algo que debería interesar a los usuarios de JMP es la visualización de todo el proceso de desarrollo y su estado actual. No se trata de la funcionalidad básica de Git, sino de una de las muchas herramientas que proporcionan interfaces de usuario interactivas para Git.
En conclusión, Git es fácil de configurar y usar. Permite realizar copias de seguridad sin esfuerzo, proporciona un control de versiones robusto y simplifica la colaboración con colegas en scripts. Espero que al menos podamos ofrecer algunas ideas sobre el uso, las ventajas y la accesibilidad de Git. Es tu turno de unirte ahora o, a más tardar, cuando regreses a tu escritorio.