Codage à distance avec Visual Studio Live Share et GitHub

Si vous ne travaillez pas déjà à domicile, vous le serez probablement très bientôt. La question est alors, comment pouvons-nous utiliser les outils dont nous disposons déjà pour pouvoir encore créer et expédier du code?

Les VPN et autres technologies d'accès à distance peuvent relier nos réseaux domestiques à des référentiels de code source sur site et à d'autres outils de développement clés, offrant des connexions sécurisées. Un poste de travail de développement distant n'a pas besoin d'être complètement isolé des ressources clés, bien qu'il puisse avoir besoin de politiques de sécurité supplémentaires pour assurer la séparation entre les informations personnelles et les ressources de travail.

La connectivité est importante, mais c'est probablement le moindre de vos problèmes. Nous sommes des animaux sociaux et la plupart des travaux de développement nécessitent plus d'une paire d'yeux. Les politiques de distanciation sociale signifient que bon nombre des techniques nécessaires au développement agile moderne sont difficiles à mettre en œuvre. Bien que nous ayons la possibilité d'utiliser des outils de conférence tels que Teams ou Zoom pour les standups vidéo quotidiens, nous devons toujours trouver des moyens de répliquer les interactions individuelles régulières des révisions de code, de la programmation par paires ou du débogage collaboratif.

Codage social sécurisé avec GitHub Enterprise

Une option consiste à passer à une plate-forme telle que GitHub pour votre code. Faire de GitHub une partie de votre cycle de vie de développement logiciel est beaucoup plus facile avec la sortie de GitHub Actions, qui vous donne des points d'intégration avec le reste de votre pipeline CI / CD (intégration continue / livraison continue) et fournit le code final dans des référentiels d'artefacts. Avec l'acquisition prévue de NPM par GitHub, vous serez bientôt en mesure de créer un pipeline de développement JavaScript unique.

GitHub (et d'autres outils git) fournissent une plate-forme pour le codage social, rendant les changements plus visibles et intégrant des tests dans les soumissions de code. En travaillant à domicile, vous pouvez répliquer des référentiels de code pour accéder au travail de vos collègues, apporter des modifications, tester le code et exécuter des versions locales, avant de partager votre code vers une branche principale via une pull request. C'est une façon de travailler familière, éprouvée sur des milliers de projets open source. Les changements de code sont visibles et les membres de l'équipe peuvent faire des commentaires sur n'importe quel commit, avec des outils supplémentaires pour aider à trouver les bogues de sécurité courants ou les problèmes de dépendance.

Si la conservation du code sur site pose un problème, pour des raisons réglementaires ou de protection de la propriété intellectuelle, vous pouvez exécuter GitHub sur votre propre réseau à l'aide de GitHub Enterprise. Si vous utilisez un seul annuaire d'entreprise pour l'authentification unique, la prise en charge du protocole d'authentification SAML ouvert devrait simplifier l'intégration, permettant aux utilisateurs distants de se connecter à leur VPN et de commencer à travailler. GitHub Enterprise Cloud peut être utilisé avec des référentiels privés en tant que service géré sur la propre infrastructure de GitHub, avec les mêmes outils de sécurité.

Collaboration sur le code dans Visual Studio Live Share

Le code partagé est une option, mais vous avez souvent besoin d'une collaboration directe. La programmation par paires et d'autres techniques similaires mettent deux développeurs sur le même clavier, travaillant ensemble pour résoudre les problèmes et déboguer le code. Ce n'est pas possible lorsque les individus travaillent à domicile. Cependant, nous pouvons partager nos bases de code les unes avec les autres, reliant nos IDE pour offrir une expérience de développement partagée sans avoir à être au même endroit.

Si vous utilisez Visual Studio, vous avez déjà accès à un ensemble d'outils de collaboration puissants, intégrés à la plateforme Visual Studio. Un aspect est la prise en charge du protocole git et GitHub; un autre est ses outils de partage de code, Visual Studio Live Share. Disponible dans l'IDE complet de Visual Studio sur Windows et sur Macintosh, en tant qu'extension pour Visual Studio Code et dans un nouvel éditeur de code hébergé sur le Web, c'est un moyen rapide et facile de partager et de collaborer dans le code.

Travailler avec Live Share

Démarrer avec Live Share est relativement simple. Tout ce que vous avez à faire est d'ajouter la prise en charge de l'une des charges de travail activées pour Live Share à Visual Studio 2019. Si vous utilisez Visual Studio 2017, vous devez d'abord installer une extension à partir du marché Visual Studio. Une fois les fonctionnalités appropriées installées, redémarrez Visual Studio avant de vous connecter au service Live Share. Vous pouvez utiliser votre compte Visual Studio existant avec Live Share ou vous connecter avec un nouveau compte si vous souhaitez conserver Visual Studio et Live Share séparés. Travailler avec Visual Studio Code est très similaire.

Une fois connecté, ouvrez un projet ou une solution normalement. Cela vaut la peine d'utiliser des .gitignorefichiers pour masquer les dossiers que vous ne souhaitez pas partager; la valeur par défaut est de donner accès à tous les fichiers de votre projet aux collaborateurs. Vous pouvez masquer des fichiers (ils ne sont pas affichés aux invités) ou les exclure (ils ne sont pas accessibles lorsque vous y accédez à partir du débogueur).

Pour partager, cliquez sur Live Share dans votre IDE pour obtenir un lien d'invitation, que vous pouvez ensuite envoyer à un collègue. Les sessions n'ont pas besoin d'être en lecture / écriture; ils peuvent être en lecture seule. C'est une option utile pour donner une visite guidée de votre base de code ou accompagner quelqu'un de nouveau vers un projet à travers le code et lui dire ce que fait chaque module et pourquoi. En tant que propriétaire d'un partage, vous pouvez ouvrir des terminaux partagés ou définir le focus, afin que vos collaborateurs ne voient que le code que vous leur montrez.

Déboguer dans votre choix d'outil de développement

Le co-débogage est une fonctionnalité utile, car le code de sécurité ne s'exécute que sur la machine hôte, à l'aide des outils de débogage standard de Visual Studio. Les collaborateurs sont joints à la session de débogage en utilisant leurs propres visualiseurs pour voir les informations de débogage afin qu'ils puissent effectuer leurs propres investigations sur l'état de l'application. Seul l'hôte peut parcourir le débogueur, bien que les invités puissent ajouter et supprimer des points d'arrêt pour se concentrer sur les domaines qui les intéressent. De même, les applications Web peuvent être lancées dans un environnement sécurisé sur des machines invitées afin que chacun ait sa propre vue. Si votre code nécessite un serveur local, il peut également être partagé avec des collaborateurs, en utilisant un tunnel SSL entre les machines.

Une caractéristique clé de Live Share est l'indépendance de l'IDE. J'utilise peut-être Visual Studio sur un PC Windows, vous utilisez peut-être Visual Studio pour Mac ou même la vue Web; tous ont accès à ma base de code et les modifications seront enregistrées sur mon PC. Vous pouvez même compiler du code, l'exécuter et accéder au débogueur. Si un problème nécessite plus d'yeux, jusqu'à 30 personnes peuvent rejoindre une seule session de partage en direct, apportant un essaim ad hoc pour essayer de résoudre un problème. La même technique peut être utilisée pour le développement de petites équipes ou de groupes, où, une fois connectés à Live Share, les individus peuvent travailler sur des tâches spécifiques, puis faire appel à des collaborateurs en cas de besoin.

La seule chose qui manque dans Visual Studio Live Share est un outil de discussion. Il n'y a aucune raison pour laquelle vous ne pouvez pas configurer un appel Skype ou une réunion Teams autour d'une session pour capturer des discussions et des actions. Si vous utilisez uniquement Visual Studio Code, son implémentation Live Share peut être utilisée pour partager la voix. Cependant, c'est mieux pour des collaborations rapides; les interactions plus complexes sont mieux gérées dans d'autres outils.

L'utilisation d'outils de codage social devrait aider à rendre le travail à domicile dans une période d'isolement social moins isolant. Nous pouvons partager du code, voire partager nos environnements de développement, tout en l'enveloppant dans des environnements familiers de discussion et de collaboration. Ce n'est pas comme d'habitude, mais au moins c'est un moyen de rester au top de notre code où que nous soyons.