GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Le développement à distance de Visual Studio Code peut tout changer

OK, c'est un peu clickbaity mais ça m'a sûrement impressionné. Vous pouvez en savoir plus sur le développement à distance de VS Code (au moment d'écrire ces lignes, disponible dans les versions de VS Code Insiders), mais voici un peu ma première expérience avec.

Les extensions de développement à distance nécessite Visual Studio Code Insiders .

Développement à distance de Visual Studio Code vous permet d'utiliser un conteneur, une machine distante ou le sous-système Windows pour Linux (WSL) comme environnement de développement complet. Il divise efficacement VS Code en deux et exécute la partie client sur votre machine et le "VS Code Server" essentiellement n'importe où ailleurs. Le pack d'extensions de développement à distance comprend trois extensions. Consultez les articles suivants pour commencer avec chacun d'eux :

  • Distant - SSH - Connectez-vous à n'importe quel emplacement en ouvrant des dossiers sur une machine/VM distante à l'aide de SSH.
  • Distant - Conteneurs - Travaillez avec une chaîne d'outils en bac à sable ou une application basée sur un conteneur à l'intérieur (ou montée dans) un conteneur.
  • Remote - WSL - Bénéficiez d'une expérience de développement sous Linux dans le sous-système Windows pour Linux.

Laissez-moi donner un exemple concret. Disons que je veux travailler dans l'un de ces langages, sauf que je n'ai AUCUN de ces langages/SDKS/outils sur ma machine.

À part : Vous pourriez, à ce stade, avoir déjà décidé que je réagis de manière excessive et que ce message est un non-sens. Voici la chose cependant quand il s'agit de développement à distance. Accrochez-vous.

Du côté de Windows, beaucoup de gens créent des machines virtuelles Windows dans le cloud de quelqu'un, puis ils RDP (Remote Desktop) dans cette machine et déplacent les pixels, laissant la machine virtuelle faire tout le travail pendant que vous éloignez l'écran. Du côté Linux, beaucoup de gens créent des machines virtuelles ou des conteneurs Linux, puis s'y connectent en SSH avec leur terminal préféré, exécutent vim et tmux ou autre, puis ils envoient du texte, laissant la machine virtuelle faire tout le travail pendant que vous éloignez l'écran. Dans ces deux scénarios, vous n'êtes pas vraiment client/serveur, vous êtes terminal/serveur ou client léger/serveur. VS Code est un client lourd avec des interfaces propres et claires pour les services linguistiques qui ont une transparence de localisation.

Je tape du code, peut-être une instance d'objet, puis intellisense est invoqué en appuyant sur "." - qui ça marche ? D'où vient cette liste ? Si vous exécutez du code localement ET dans le conteneur, vous devez vous assurer que les deux parties sont synchronisées, qu'il s'agit des mêmes SDK, etc. C'est difficile.

OK, je n'ai pas le langage ou la boîte à outils Rust sur ma machine.

Je vais cloner ce dépôt :

git clone https://github.com/Microsoft/vscode-remote-try-rust

Ensuite, je lancerai Code, la version Insiders :

C:\github> git clone https://github.com/Microsoft/vscode-remote-try-rust   
Cloning into 'vscode-remote-try-rust'...
Unpacking objects: 100% (38/38), done.
C:\github> cd .\vscode-remote-try-rust\
C:\github\vscode-remote-try-rust [main =]> code-insiders .

Ensuite, VS Code dit, hé, c'est un conteneur de développement, tu veux que je l'ouvre ?

Il existe un fichier devcontainer.json qui contient une liste d'extensions dont le projet a besoin. Et il installera ces extensions VS dans un conteneur Docker de développement puis y accéder à distance. Ce n'est pas une liste d'extensions dont votre système LOCAL a besoin - vous ne voulez pas salir votre système avec 100 extensions. Vous voulez avoir uniquement les extensions dont vous avez besoin pour le projet sur lequel vous travaillez. Compartimentation. Vous pourriez faire du développement et ne jamais rien installer sur votre ordinateur local, mais vous trouvez un endroit idéal qui n'implique pas de déplacer du texte ou des pixels.

Maintenant, regardez cette capture d'écran et absorbez. Bien sûr, il configure un dockerfile avec les outils de développement que vous souhaitez utiliser, puis il exécute docker exec et introduit le serveur de code VS !


Consultez la section Extensions de VS Code et consultez le coin inférieur gauche. Cette barre d'état verte indique que nous sommes dans une situation client/serveur. Les extensions spécifiques à Rust sont installées dans le Dev Container et nous les utilisons depuis VS Code.

Lorsque je tape et que je travaille sur mon code de cette manière (au fait, cela n'a pris que quelques minutes pour commencer), j'ai une expérience complète avec Intellisense, le débogage, etc.

Ici, je fais une session de débogage en direct d'une application Rust avec aucune configuration autre que VS Code Insiders, les extensions distantes et Docker (que j'avais déjà).

Comme je l'ai mentionné, vous pouvez exécuter dans WSL, Containers ou via SSH. C'est le début mais c'est extraordinairement propre. J'ai vraiment hâte de voir jusqu'où et sans effort ce style de développement peut aller. Il y a tellement moins de rasage de yak ! Il supprime efficacement toute la partie configuration de votre expérience de codage et vous y accédez directement.

Parrain : Gérez les demandes d'extraction GitHub directement depuis l'IDE avec le dernier JetBrains Rider. Un profileur de performances intégré sur Windows vient également à la rescousse.


Docker
  1. Comment installer Visual Studio Code sur Ubuntu 18.04

  2. Comment installer Visual Studio Code sur Ubuntu 20.04

  3. Comment installer Visual Studio Code sur CentOS 7 ?

  4. Comment utiliser Qt dans Visual Studio Code ?

  5. Comment changer la police de l'interface utilisateur de Visual Studio Code ?

Comment installer Visual Studio Code (VS Code) sur Fedora 34 / 35

Comment installer Visual Studio Code sur AlmaLinux 8

Comment installer Visual Studio Code sur Manjaro 20

Comment installer Visual Studio Code sur Debian 11

Comment installer Visual Studio Code sur Ubuntu 15.04

Comment modifier le code dans les conteneurs Docker avec Visual Studio Code