Codificación remota con Visual Studio Live Share y GitHub

Si aún no está trabajando desde casa, lo más probable es que lo haga muy pronto. La pregunta entonces es, ¿cómo podemos usar las herramientas que ya tenemos para poder construir y enviar código?

Las VPN y otras tecnologías de acceso remoto pueden vincular nuestras redes domésticas a repositorios de código fuente locales y otras herramientas clave de DevOps, ofreciendo conexiones seguras. Una estación de trabajo de desarrollo remota no necesita estar completamente aislada de los recursos clave, aunque puede necesitar políticas de seguridad adicionales para garantizar la separación entre la información personal y los recursos laborales.

La conectividad es importante, pero probablemente sea el menor de tus problemas. Somos animales sociales y gran parte del trabajo de desarrollo necesita más de un par de ojos. Las políticas de distanciamiento social significan que muchas de las técnicas necesarias para el desarrollo ágil moderno son difíciles de implementar. Aunque tenemos la opción de herramientas de conferencia como Teams o Zoom para videojuegos diarios, aún necesitamos encontrar formas de replicar las interacciones regulares uno a uno de revisiones de código, programación de pares o depuración colaborativa.

Codificación social segura con GitHub Enterprise

Una opción es pasar a una plataforma como GitHub para su código. Hacer que GitHub forme parte de su ciclo de vida de desarrollo de software es mucho más fácil con el lanzamiento de GitHub Actions, lo que le brinda puntos de integración con el resto de su canal de CI / CD (integración continua / entrega continua) y entrega el código final en repositorios de artefactos. Con la adquisición planificada de GitHub de NPM, pronto podrá crear una única canalización de desarrollo de JavaScript.

GitHub (y otras herramientas de git) proporcionan una plataforma para la codificación social, haciendo que los cambios sean más visibles e integrando la prueba en los envíos de código. Trabajando desde casa, puede replicar repositorios de código para obtener acceso al trabajo de sus colegas, realizar cambios, probar código y ejecutar compilaciones locales, antes de compartir su código con una rama principal a través de una solicitud de extracción. Es una forma familiar de trabajar, probada en miles de proyectos de código abierto. Los cambios de código son visibles y los miembros del equipo pueden hacer comentarios sobre cualquier compromiso, con herramientas adicionales para ayudar a encontrar errores de seguridad comunes o problemas de dependencia.

Si mantener el código local es un problema, por razones regulatorias o de protección de la propiedad intelectual, puede ejecutar GitHub en su propia red usando GitHub Enterprise. Si está utilizando un único directorio corporativo para el inicio de sesión único, la compatibilidad con el protocolo de autenticación SAML abierto debería simplificar la integración, permitiendo a los usuarios remotos iniciar sesión en su VPN y comenzar a trabajar. GitHub Enterprise Cloud se puede usar con repositorios privados como un servicio administrado en la propia infraestructura de GitHub, con las mismas herramientas de seguridad.

Colaborar en código en Visual Studio Live Share

El código compartido es una opción, pero a menudo necesita una colaboración directa. La programación en pareja y otras técnicas similares ponen a dos desarrolladores en el mismo teclado, trabajando juntos para resolver problemas y depurar código. Eso no es posible cuando las personas trabajan desde sus hogares. Sin embargo, podemos compartir nuestras bases de código entre nosotros, vinculando nuestros IDE para brindar una experiencia de desarrollo compartida sin tener que estar en el mismo lugar.

Si usa Visual Studio, ya tiene acceso a un conjunto de poderosas herramientas de colaboración integradas en la plataforma de Visual Studio. Un aspecto es el soporte para el protocolo git y GitHub; otro son sus herramientas para compartir código, Visual Studio Live Share. Disponible en el IDE de Visual Studio completo en Windows y en Macintosh, como una extensión para Visual Studio Code, y en un nuevo editor de código alojado en la Web, es una forma rápida y fácil de compartir y colaborar en código.

Trabajar con Live Share

Comenzar con Live Share es relativamente fácil. Todo lo que necesita hacer es agregar compatibilidad para una de las cargas de trabajo habilitadas para Live Share a Visual Studio 2019. Si está usando Visual Studio 2017, primero debe instalar una extensión del mercado de Visual Studio. Una vez que se hayan instalado las funciones adecuadas, reinicie Visual Studio antes de conectarse al servicio Live Share. Puede usar su cuenta de Visual Studio existente con Live Share, o puede iniciar sesión con una nueva cuenta si desea mantener Visual Studio y Live Share separados. Trabajar con Visual Studio Code es muy similar.

Una vez que haya iniciado sesión, abra un proyecto o solución con normalidad. Vale la pena usar .gitignorearchivos para ocultar carpetas que no desea compartir; el valor predeterminado es dar acceso a todos los archivos de su proyecto a los colaboradores. Puede ocultar archivos (no se muestran a los invitados) o excluirlos (no se puede acceder a ellos cuando ingresa a ellos desde el depurador).

Para compartir, haga clic en Live Share en su IDE para obtener un enlace de invitación, que luego puede enviar a un colega. Las sesiones no necesitan ser de lectura / escritura; pueden ser de solo lectura. Esta es una opción útil para realizar una visita guiada de su base de código o guiar a alguien nuevo a un proyecto a través del código y decirle qué hace cada módulo y por qué. Como propietario de un recurso compartido, puede abrir terminales compartidos o establecer el enfoque, para que sus colaboradores solo vean el código que les está mostrando.

Depurar en la herramienta de desarrollo que elijas

La depuración conjunta es una característica útil, ya que el código de seguridad solo se ejecuta en la máquina host, utilizando las herramientas de depuración estándar de Visual Studio. Los colaboradores se unen a la sesión de depuración utilizando sus propios visores para ver la información de depuración para que puedan realizar sus propias investigaciones sobre el estado de la aplicación. Solo el anfitrión puede recorrer el depurador, aunque los invitados pueden agregar y eliminar puntos de interrupción para centrarse en las áreas que les interesan. De manera similar, las aplicaciones web se pueden iniciar en un entorno seguro en las máquinas invitadas para que todos tengan su propia vista. Si su código necesita un servidor local, también se puede compartir con colaboradores, utilizando un túnel SSL entre máquinas.

Una característica clave de Live Share es la independencia de IDE. Puede que esté usando Visual Studio en una PC con Windows, es posible que esté usando Visual Studio para Mac o incluso la vista Web; todos obtienen acceso a mi código base y los cambios se guardarán en mi PC. Incluso puede compilar código, ejecutarlo y obtener acceso al depurador. Si un problema necesita más ojos, hasta 30 personas pueden unirse a una sola sesión de Live Share, trayendo un enjambre ad hoc para tratar de resolver un problema. La misma técnica se puede utilizar para el desarrollo de equipos pequeños o grupos, donde, una vez conectados a Live Share, las personas pueden trabajar en tareas específicas y luego traer colaboradores cuando sea necesario.

Lo único que falta en Visual Studio Live Share es una herramienta de chat. No hay ninguna razón por la que no pueda configurar una llamada de Skype o una reunión de Teams en torno a una sesión para capturar discusiones y acciones. Si solo usa Visual Studio Code, su implementación de Live Share se puede usar para compartir voz. Sin embargo, es mejor para colaboraciones rápidas; las interacciones más complejas se gestionan mejor con otras herramientas.

El uso de herramientas de codificación social debería ayudar a que trabajar desde casa en un momento de aislamiento social no sea tan aislado. Podemos compartir código, incluso compartir nuestros entornos de desarrollo, mientras lo envolvemos en entornos familiares de chat y colaboración. No es el negocio habitual, pero al menos es una forma de estar al tanto de nuestro código dondequiera que estemos.