Fermer

septembre 10, 2021

Introduction aux espaces de code GitHub


Le développement traditionnel a de nombreuses bizarreries ; GitHub Codespaces offre une meilleure expérience de développement et un meilleur choix pour une productivité et un flux de travail améliorés.

En 2020, GitHub Codespaces a été lancé, une plate-forme révolutionnaire qui affine la perception du développement d'applications à un tout autre niveau. Initialement publié en version bêta, il est désormais disponible en tant que service de paiement à l'utilisation pour les équipes et les entreprises GitHub.

Dans cet article, nous examinerons les défauts de l'environnement de développement traditionnel, puis les espaces de code GitHub et le bon trucs qu'il a en réserve pour les développeurs. Sans plus tarder, commençons.

Le problème

La fonctionnalité d'accès depuis n'importe où fournie par les systèmes de gestion de code source et de contrôle de version basés sur le Web (GitHub) signifie que les développeurs peuvent facilement collaborer sur une base de code donnée , apporter des modifications et des améliorations en fonction des exigences du projet à partir de leur machine locale et extraire les modifications à distance pour s'assurer que la base de code est correctement synchronisée.

Cela signifie également que la machine du développeur doit supporter les mises à jour en constante évolution du projet. et on s'attend juste à ce qu'il fonctionne bien avec tout ce qui vient. Cela fonctionne parfois, mais pas dans tous les cas.

Au fur et à mesure que la base de code s'agrandit, la configuration du projet change, les dépendances changent, de nouvelles versions d'outils sont introduites, etc. Cela met tellement de stress sur la machine du développeur. Le développement local devient très fragile et les développeurs ont tendance à passer plus de temps à faire des choses inutiles, comme résoudre les problèmes liés à l'extraction de nouvelles mises à jour et à parcourir les fichiers ReadMe, luttant pour configurer leur environnement. créer une configuration de travail au lieu de se concentrer uniquement sur l'écriture de code est un sérieux revers pour la productivité et fait de la configuration de l'environnement de développement local un cauchemar.

Qu'est-ce que les espaces de code GitHub ? demander l'accès à un environnement de développement sécurisé exécutant une base de code donnée (référentiel Git) sur un serveur distant. Il permet également au développeur de déboguer, de maintenir et d'apporter des modifications via un IDE Visual Studio Code complet (avec coloration syntaxique, thèmes, extensions, contrôle de version, etc.) basé sur un navigateur ou installé localement à partir de sa machine locale.

GitHub Codespaces utilise des outils de virtualisation sous le capot, tels que des conteneurs et des machines virtuelles. Les espaces de code peuvent être considérés comme ayant une partie backend et une partie frontend—l'architecture client-serveur habituelle, rien d'extraordinaire. La partie backend est l'endroit où tout le code de l'application est généralement exécuté dans un conteneur Docker (vous n'avez pas besoin d'installer Docker pour utiliser les espaces de code) avec le runtime et les outils requis, et la partie frontend est l'IDE, qui s'interface avec l'application en cours d'exécution .

En général, les espaces de code offrent aux développeurs les avantages suivants :

  • Le développement à distance signifie qu'un développeur peut travailler avec des machines rapides, ce qui améliore la productivité du développeur et allège la configuration de sa machine locale.

  • Haute sécurité. — seules les entités autorisées ont accès aux espaces de code, empêchant tout accès non autorisé.

  • Cela permet aux développeurs de travailler efficacement avec n'importe quelle pile technologique de leur choix et différentes versions d'outils sans altérer la configuration de leur machine locale. dépendances et extensions par projet ou étendues globalement à différents espaces de code.

  • Le problème « ça fonctionne sur mon ordinateur portable » ne suffit pas en développement, car la base de code s'exécute toujours de manière cohérente pour chaque développeur.

  • L'expérience de codage basée sur un navigateur signifie que le développement peut être effectué sur n'importe quel appareil, tel que les iPad, les tablettes, etc., d'où une meilleure portabilité du code.

Fondamentalement, tous les avantages des espaces de code tournent autour de la suppression des imperfections de la machine du développeur et des obstacles à l'expédition de code de qualité, tout en offrant une excellente expérience de développement.

Configuration d'un espace de code pour votre projet

La configuration d'un espace de code implique les étapes suivantes.

  • Accédez au référentiel GitHub de votre choix.
  • Cliquez sur le bouton "Code" et sélectionnez l'option "Ouvrir avec l'espace de code" dans la liste déroulante.
  • Sélectionnez le "Nouvel espace de code".

Configuration d'un espace de code à partir d'un dépôt GitHub

Sous le capot

Avant qu'un espace de code ne soit mis à la disposition du développeur, les événements suivants se produisent, bien que cela n'inclue pas tous les petits détails, mais juste un indice des processus de base impliqués à chaque étape.

Remarque : Si vous ne le faites pas. Je ne vois pas l'option "Ouvrir avec des espaces de code", c'est parce que c'est une fonctionnalité fournie en tant que service payant sur GitHub.

  • Un clone superficiel du référentiel GitHub est d'abord exécuté, c'est-à-dire que le référentiel est cloné avec uniquement les derniers commits. Ceci est fait pour accélérer le temps de construction; le clonage complet est effectué ultérieurement.

  • Une machine virtuelle dédiée est allouée à votre projet sur un serveur distant avec toutes les ressources de stockage et de calcul nécessaires (CPU, RAM, etc.) requises.

  • Un conteneur en cours d'exécution vos fichiers de projet sont ensuite créés et exécutés sur la machine virtuelle pour vous en fonction de votre configuration, qui peut être contenue dans la racine du projet ou située sur un autre référentiel. Si aucune n'est trouvée, la configuration par défaut fournie est utilisée pour créer le conteneur de développement à l'aide de l'image Linux par défaut, qui contient la plupart des environnements d'exécution (par exemple, C++, Python, Node, PHP, Java, etc.) et des outils (par exemple, , Git, Yarn, Git CLI, etc.) requis pour votre projet.

  • Enfin, la configuration de l'espace de code et les commandes appropriées sont exécutées en fonction de la configuration de votre projet, puis rendues accessibles via l'IDE basé sur un navigateur ou installé localement. L'accès est direct pour l'IDE basé sur un navigateur ; pour y accéder sur votre IDE local, vous devez procéder comme suit :

  1. Installez l'extension « GitHub codespaces » sur votre IDE VS Code local.

Extension GitHub CodeSpaces (à installer sur l'IDE de code VS local)[19659036]Cliquez sur l'icône GitHub dans l'IDE basé sur navigateur et sélectionnez l'option « Ouvrir avec le code VS ». Lorsqu'il est accordé, il demande d'abord l'autorisation, puis crée une nouvelle fenêtre dans l'IDE VS Code installé localement et exécute le conteneur de développement comme prévu. Les dépôts Git varient en taille et, par conséquent, en temps de démarrage, des optimisations sont intégrées pour que les choses soient prêtes le plus rapidement possible. L'une de ces optimisations est l'optimisation de pré-construction, qui garantit que l'espace de code est préparé à l'avance et mis à disposition juste à temps pour que le développeur commence à travailler. Les statistiques montrent que les espaces de code GitHub peuvent créer un environnement de développement exécutant un <a href= conteneur de 35 Go en 10 secondesce qui est remarquable. et des préférences uniques quel que soit l'appareil choisi.

En général, les configurations se répartissent en deux catégories :

  • Configurations basées sur le projet
  • Configurations spécifiques à l'utilisateur

Configurations basées sur le projet

Ce sont des configurations qui sont appliqué uniquement sur l'espace de code. Certaines configurations standard incluent :

  • Extensions à installer
  • Choix d'une image utilisée pour faire tourner votre conteneur de développement, qui peut être extraite de n'importe quel registre de conteneurs, tel que Docker Hub ou Microsoft Container Registry
  • Commandes de cycle de vie, c'est-à-dire des scripts à exécuter avant et après le démarrage du conteneur de développement
  • Variables d'environnement (paramètres de l'éditeur), telles que le choix du terminal, les paramètres spécifiques à l'extension, etc. rendu accessible depuis votre ordinateur par un serveur distant), etc.
  • Autres configurations possibles listées ici

Ces configurations sont contenues dans un fichier .devcontainer.json à la racine du projet ou un devcontainer.json dans un dossier .devcontainer situé à la racine de votre projet.

Un fichier Docker peut également être inclus dans ce dossier et lié au fichier devcontainer.json pour décrire l'ima ge à utiliser pour générer le conteneur de développement. (D'autres cas d'utilisation peuvent être trouvés ici.) Ce dossier peut être créé manuellement ou à l'aide de l'extension "conteneurs distants".

Conteneurs distants sur le code VS" title="Conteneurs distants sur VS code"/></p>
<blockquote>
<p><strong>Remarque :</strong> Assurez-vous que le dossier .devcontainer est ajouté et validé dans le contrôle de version pour garantir la persistance des configurations qui y résident. De plus, une fois modifié, reconstruisez à nouveau le conteneur de développement pour appliquer les nouvelles modifications .</p>
</blockquote>
<h3 id=Configurations spécifiques à l'utilisateur

Comme les configurations basées sur le projet, celles-ci sont spécifiques au développeur et destinées à être appliquées globalement à n'importe quel espace de code sur lequel un développeur travaille, mais pas à d'autres utilisant l'espace de code. comme les préférences personnelles du développeur adaptées à son style et à son flux de travail pendant le développement.

Ces paramètres sont appliqués via les éléments suivants :

  • La fonction de synchronisation des paramètres permet l'utilisation des paramètres locaux de l'IDE VS Code et les rend disponibles pour nous e sur d'autres instances de l'éditeur de code Visual Studio. (Voir plus ici.)

  • Les fichiers dot (fichiers commençant par un point, y compris .gitignore, .eslintrc, .vscode, .zshrc, etc.) peuvent partager des paramètres lorsqu'un paramètre sur un espace de code est des scripts d'installation clonés et appropriés sont exécutés pour appliquer les configurations à l'espace de code. Cela s'applique aux fichiers dotfiles contenant des applications et des paramètres spécifiques aux outils propres à chaque développeur, tels que les paramètres de contrôle de version, les préférences de terminal, etc., contenus dans leurs fichiers respectifs sur un référentiel Git public ( nu ou fonctionnel). (En savoir plus sur la gestion des fichiers dot ici.)

Conclusion

Le développement à distance change la donne par rapport aux méthodes précédentes d'écriture de code. Avec GitHub Codespaces au premier plan, les possibilités sont illimitées pour ce qui nous attend pour une expérience de développement plus riche. Avec un peu de chance, avec ce guide, nous avons une bonne longueur d'avance sur l'utilisation des espaces de code dans nos futurs projets.




Source link