GitHubはVisualStudioCodeをオンラインにします

GitHubの最近のSatelliteイベントでの基調講演で、CEOのNat Friedmanは、「社会的距離の時代に、人々はソーシャルコーディングに目を向けています」と述べています。私たちは自宅で仕事をしており、GitHubに組み込まれているツールを使用して、同僚とのやり取りで埋められていたワークフローのギャップを埋めています。GitHubなどのツールは、コードを保存および共有する場所以上のものになっています。それらは現在、私たちの仮想ワークプレイスであり、より多くの開発ワークフローを網羅しています。

GitHubとMicrosoftの関係は興味深いものです。MicrosoftはGitHubを所有していますが、GitHubは別個のエンティティとして実行されており、2つの組織間の連絡はほとんどありません。プロプライエタリおよびオープンソースソフトウェアのグローバルリポジトリとしてのGitHubの役割には、中立的なハブ、つまり国連のソフトウェアである必要があるため、これは理にかなっている部門です。これにより、GitHubは、独自のツールとテクノロジーに基づいて構築された独自のインフラストラクチャで実行し続けることができます。一方、MicrosoftはGitHubへの依存度を高め、GitHubのElectronフレームワーク上に独自のツールを構築し、独自の開発プロセスでGitHubを使用しています。

GitHubコードスペースでビルドする

GitHubがMicrosoftテクノロジの上に最新機能の1つを構築しているのを見るのは興味深いことです(強力なオープンソース基盤を備えていますが)。 Microsoftは最近、Visual StudioOnlineクラウドでホストされる開発環境の名前をVisualStudio Codespacesに変更し、SatelliteはGitHubが同じ名前を使用して同様の製品をリリースするのを見ました。

Visual StudioCodespacesとGitHubCodespacesはどちらもMicrosoftのVisualStudio Codeエディター上に構築されていますが、これらは非常に異なる製品であることに注意することが重要です。 Visual Studio CodeはGitHubのElectronを使用しているため、TypeScriptアプリケーションです。これにより、Monacoコードエディターのオープンソースを使用して、Webおよび最新のWebブラウザーに簡単に移植できます。マイクロソフトは、デスクトップ開発環境をクラウドに拡張し、アドホックコラボレーターと共有する方法としてコードスペースを使用しています。 GitHubはコードスペースをまったく異なる方法で処理し、コードリポジトリの一部としてブラウザでホストされる編集環境を提供します。

GitHub Codespacesの背後にある考え方は、コードのレビュー、発生した問題の処理、プルリクエストで送信されたコードのレビューなど、どこにいてもコードが変更されたときに共同編集者がコードにアクセスできるようにすることです。これは、無料の分と最新のWebブラウザーがある場合に、リポジトリにすばやく立ち寄ってコードを編集する方法です。エディターを使用する場合は、VSCode用のVisualStudioCodespaces拡張機能もGitHubコードスペースで機能します。

GitHubコードスペースでクラウド開発環境を構築すると、使い慣れたドットファイルを使用して、エディターがリポジトリの一部として使用するデフォルトのリソースを定義するオプションが提供されます。ユーザーは、プロファイルからロードする独自の構成を持つことができます。 VSCodeの既存の拡張モデルとVisualStudio Code Marketplaceがサポートされているため、特定のプロジェクトで作業するために必要な拡張機能をインストールできます。 Goアプリを使用している場合は、適切なGo拡張機能をインストールできます。 Rust、C#、Flutterについても同じです。 GitHub Codespaces環境は、Code自体と同じくらい柔軟性があります。

処理を高速化するために、GitHubは、Node、Go、.NET Core、C ++などのインスタンスを含む、事前構成されたバージョンのCodespacesコンテナーのリポジトリを提供します。これらには、Codespacesコンテナで実行されるコードをビルドおよびデバッグするためのツールが含まれます。ツールチェーン全体をコンテナで配信することにより、コードを編集するだけでなく、プルリクエストをマージする前に変更をテストおよび検証するなど、多くのことを実行できます。

各Codespacesエディターには、VS Code GitHub拡張機能のバージョンがあり、問題の管理やリクエストのプル、およびコードの複数のブランチの操作に役立ちます。おなじみのGitワークフローを使用して、リポジトリのクローンを作成できます。コードスペースがプライベートリポジトリで機能する余地はありますが、ベータ版は個人リポジトリとパブリックリポジトリのみをサポートします。 GitHub Enterpriseを使用している場合は、他のツールを使用してコードを操作できます。たぶんVisualStudioコードスペースですら。

GitHubコードスペースを実行するには多くのリソースが必要です。このサービスはベータ期間中は無料ですが、起動すると有料の機能になる可能性があります。各インスタンスには、Visual StudioCode言語サーバーをホストするためのコンテナーが必要です。UIはブラウザーにありますが、VSCodeの開発ツールを実行するために必要な手間のかかる作業の多くはCodespacesコンテナーで実行する必要があります。何百万もの開発者がGitHubを使用しており、各Codespacesコンテナには2つのコアと4 GBのメモリが必要であるため、使用量はすぐに増える可能性があります。ただし、GitHubは従量課金制を提供することを計画しており、これによりコストを最小限に抑えることができます。

GitHubディスカッションで議論する 

クラウドでの編集は、GitHubの拡張されたソーシャルコーディングストーリーの一部にすぎません。 GitHubの最近の作業の多くは、プロジェクトのメンテナーがコードを中心に融合したコミュニティとの連携を容易にしている。結合されたワークフローの一部としてSlackまたは他のコラボレーションプラットフォームを使用することは可能ですが、オープンソースプロジェクトは、ディスカッションをアーカイブできるようにする計画にお金を払えないことがよくあります。会話とコードを分離すると、2つの間に直接リンクを提供することが難しくなります。また、GitHub内のコメントや問題は、それらをリンクする1つの方法を提供しますが、それでもほとんどのソーシャルメディアよりもはるかに正式です。

サテライトは、スレッド化された会話をリポジトリ内に埋め込む方法であるGitHubディスカッションの立ち上げを見ました。古い学校のUsenetニュースグループをいくらか思い出させますが、プロジェクトに関する共同ドキュメントを作成するのに便利な方法です。 Stack Overflowはそのような構造を使用しますが、会話はより自由な形式であり、コンテンツに投票するオプションと、各ディスカッション要素への直接リンクがあります。メンテナはリンクを使用して、ディスカッションのコンテンツを他のドキュメントに取り込むことができるため、ディスカッション要素を問題にリンクして、さらに会話できるようにすることができます。

会話の管理は重要であり、メンテナは有用な会話が終わったときにディスカッションをロックダウンするオプションがあります。ロールベースのアクセスは会話を制御できます。たとえば、誰もが読むことができるが、承認された共同編集者だけが投稿できるディスカッションを提供できます。ディスカッションが、コードとドキュメントを中心にコラボレーションするための焦点を絞った関連スペースとしての約束を果たすことができれば、アプリケーション間でコンテキストを切り替えたり焦点を失ったりすることなく、開発者がGitHubで作業できるようにし、不安定な状況での長い会話を回避するのに大いに役立つはずです。 、安全でないビデオリンク。

リモートコラボレーションは簡単ではないため、GitHubなどのコミュニティ指向のサイトでは、どこでどのように作業しても簡単に共同作業できるようにするために、できるだけ多くの異なるツールやサービスを提供することが重要です。GitHubコードスペースとGitHubディスカッションは、その旅の重要なステップのように見えます。それらがどのように使用されているかを見るのは興味深いことです。