GitHub nimmt Visual Studio Code online

In seiner Keynote auf GitHubs jüngstem Satellite-Event sagte CEO Nat Friedman: „Im Zeitalter der sozialen Distanzierung wenden sich die Menschen der sozialen Kodierung zu.“ Wir arbeiten von zu Hause aus und verwenden die in GitHub integrierten Tools, um die Lücken in unserem Workflow zu ersetzen, die früher mit Interaktionen mit Kollegen gefüllt waren. Tools wie GitHub sind mehr als der Ort, an dem wir Code speichern und freigeben. Sie sind jetzt unsere virtuellen Arbeitsplätze und umfassen mehr unserer Entwicklungsworkflows.

Die Beziehung zwischen GitHub und Microsoft ist interessant. Microsoft besitzt GitHub, es wird jedoch als separate Einheit mit sehr wenig Kontakt zwischen den beiden Organisationen ausgeführt. Diese Aufteilung ist sinnvoll, da GitHubs Rolle als globales Repository für proprietäre und Open Source-Software erfordert, dass es sich um einen neutralen Hub handelt - eine Software der Vereinten Nationen. Dadurch kann GitHub weiterhin auf seiner eigenen Infrastruktur ausgeführt werden, die auf eigenen Tools und Technologien basiert. In der Zwischenzeit hat Microsoft seine Abhängigkeiten von GitHub erhöht, eigene Tools auf dem Electron-Framework von GitHub erstellt und GitHub in eigenen Entwicklungsprozessen verwendet.

Erstellen Sie es in GitHub-Codespaces

Es ist interessant zu sehen, wie GitHub eine seiner neuesten Funktionen auf einer Microsoft-Technologie aufbaut (wenn auch eine mit einer starken Open-Source-Grundlage). Microsoft hat kürzlich den Namen seiner in der Cloud gehosteten Entwicklungsumgebung von Visual Studio Online in Visual Studio Codespaces geändert, und bei Satellite hat GitHub ein ähnliches Produkt mit demselben Namen auf den Markt gebracht.

Es ist wichtig zu beachten, dass sowohl Visual Studio-Codespaces als auch GitHub-Codespaces auf dem Visual Studio-Code-Editor von Microsoft basieren, es sich jedoch um sehr unterschiedliche Produkte handelt. Da Visual Studio Code GitHubs Electron verwendet, handelt es sich um eine TypeScript-Anwendung. Das macht es einfach, mit dem Open Source-Code-Editor von Monaco auf das Web und moderne Webbrowser zu portieren. Microsoft verwendet Codespaces, um Ihre Desktop-Entwicklungsumgebung in die Cloud zu erweitern und für Ad-hoc-Mitarbeiter freizugeben. GitHub behandelt Codespaces ganz anders und bietet Ihnen eine vom Browser gehostete Bearbeitungsumgebung als Teil eines Code-Repositorys.

Die Idee hinter GitHub Codespaces ist es, Mitarbeitern Zugriff auf Code zu gewähren, wenn dieser sich ändert, wo immer sie sich befinden: Überprüfen von Code, Arbeiten mit aufgeworfenen Problemen oder Überprüfen von Code, der mit einer Pull-Anforderung übermittelt wurde. Es ist eine Möglichkeit, schnell in ein Repository zu gelangen, um Code zu bearbeiten, wenn Sie eine freie Minute und einen modernen Webbrowser haben. Wenn Sie lieber einen Editor verwenden möchten, funktioniert die Visual Studio Codespaces-Erweiterung für VS Code auch mit GitHub-Codespaces.

Durch das Erstellen von Cloud-Entwicklungsumgebungen in GitHub Codespaces können Sie die Standardressourcen definieren, die der Editor als Teil eines Repositorys verwendet, und dabei vertraute Punktedateien verwenden. Benutzer können ihre eigenen Konfigurationen haben, die aus ihrem Profil geladen werden. Das vorhandene Erweiterungsmodell von VS Code und der Visual Studio Code Marketplace werden unterstützt, sodass Sie die Erweiterungen installieren können, die Sie für die Arbeit mit einem bestimmten Projekt benötigen. Wenn Sie mit einer Go-App arbeiten, können Sie die entsprechenden Go-Erweiterungen installieren. Gleiches gilt für Rust, C # und Flutter. Die GitHub Codespaces-Umgebung ist so flexibel wie Code selbst.

Um die Arbeit zu beschleunigen, bietet GitHub ein Repository mit vorkonfigurierten Versionen von Codespaces-Containern mit Instanzen für Node, Go, .NET Core, C ++ und mehr. Dazu gehören Tools zum Erstellen und Debuggen von Code, die im Codespaces-Container ausgeführt werden. Durch die Bereitstellung einer gesamten Toolchain in einem Container können Sie viel mehr als nur Code bearbeiten, z. B. Änderungen testen und überprüfen, bevor Sie eine Pull-Anforderung zusammenführen.

Jeder Codespaces-Editor verfügt über eine Version der VS Code GitHub-Erweiterung, mit der Sie Probleme verwalten und Anforderungen abrufen sowie mit mehreren Zweigen Ihres Codes arbeiten können. Sie können Repositorys mit dem bekannten Git-Workflow klonen. Codespaces können mit privaten Repositorys arbeiten, die Beta unterstützt jedoch nur persönliche und öffentliche Repositorys. Wenn Sie GitHub Enterprise verwenden, können Sie andere Tools verwenden, um mit Ihrem Code zu arbeiten. Vielleicht sogar Visual Studio Codespaces.

GitHub-Codespaces benötigen viele Ressourcen, um ausgeführt zu werden, und obwohl der Dienst während der Beta kostenlos ist, ist er nach dem Start wahrscheinlich eine kostenpflichtige Funktion. Für jede Instanz ist ein Container erforderlich, um die Visual Studio Code-Sprachserver zu hosten. Die Benutzeroberfläche befindet sich in Ihrem Browser, aber ein Großteil des zum Ausführen der Entwicklertools von VS Code erforderlichen hohen Aufwands muss im Codespaces-Container ausgeführt werden. Bei vielen Millionen Entwicklern, die GitHub und jeden Codespaces-Container verwenden, der zwei Kerne und 4 GB Speicher benötigt, kann sich die Nutzung sehr schnell summieren. GitHub plant jedoch, Pay-as-you-go-Preise anzubieten, um die Kosten auf ein Minimum zu beschränken.

Besprechen Sie es in GitHub Discussions 

Das Bearbeiten in der Cloud ist nur ein Teil der erweiterten Social-Coding-Story von GitHub. Viele der jüngsten Arbeiten von GitHub haben es Projektbetreuern erleichtert, mit der Community zusammenzuarbeiten, die sich um ihren Code zusammengeschlossen hat. Während es möglich ist, Slack oder andere Kollaborationsplattformen als Teil eines kombinierten Workflows zu haben, können Open Source-Projekte häufig nicht für Pläne bezahlen, mit denen sie Diskussionen archivieren können. Die Trennung von Konversation und Code macht es schwierig, direkte Links zwischen den beiden bereitzustellen, und obwohl Kommentare und Probleme in GitHub eine Möglichkeit bieten, sie zu verknüpfen, sind sie immer noch viel formeller als die meisten sozialen Medien.

Mit Satellite wurden GitHub Discussions gestartet, eine Möglichkeit, Thread-Konversationen in ein Repository einzubetten. Sie erinnern ein wenig an Usenet-Newsgroups der alten Schule und sind eine nützliche Möglichkeit, um eine kollaborative Dokumentation rund um ein Projekt zu erstellen. Der Stapelüberlauf verwendet eine solche Struktur, aber Konversationen sind freier und bieten die Möglichkeit, für Inhalte zu stimmen sowie direkte Links zu jedem Diskussionselement. Maintainer können Links verwenden, um Inhalte aus Diskussionen in andere Dokumente zu übertragen, sodass ein Diskussionselement mit einem Problem verknüpft werden kann, um weitere Konversationen zu ermöglichen.

Das Gesprächsmanagement ist wichtig, und die Betreuer haben die Möglichkeit, Diskussionen zu sperren, wenn nützliche Gespräche beendet sind. Der rollenbasierte Zugriff kann beispielsweise Konversationen steuern und eine Diskussion bereitstellen, die jeder lesen kann, aber nur von zugelassenen Mitarbeitern veröffentlicht werden kann. Wenn Discussions sein Versprechen als fokussierter, relevanter Bereich für die Zusammenarbeit in Bezug auf Code und Dokumentation erfüllen kann, sollte dies Entwicklern dabei helfen, an GitHub zu arbeiten, ohne den Kontext zwischen Anwendungen zu wechseln und den Fokus zu verlieren, und lange Gespräche über wackelige Dinge hinweg vermeiden , unsichere Videolinks.

Remote-Zusammenarbeit ist nicht einfach. Daher ist es wichtig, dass Community-orientierte Websites wie GitHub so viele verschiedene Tools und Dienste wie möglich anbieten, um die Zusammenarbeit zu vereinfachen, unabhängig davon, wo oder wie Sie arbeiten. GitHub-Codespaces und GitHub-Diskussionen scheinen wichtige Schritte auf diesem Weg zu sein, und es wird interessant sein zu sehen, wie sie verwendet werden.