一般的なユース ケースCommon Use Cases

Visual Studio Live Share の主な目的は、開発者が相互に簡単に共同作業できるようにすることです。これには、どの通信ツールを使用するか (使用する通信ツール、"適切な" ソフトウェアメソドロジ、SCM ワークフローなど) についての意見は含まれません。The primary goal of Visual Studio Live Share is to enable developers to collaborate with each other more easily, without introducing any opinion about when and how to do it (e.g. which communication tool to use, the "right" software methodology or SCM workflow). このようにすることで、ツールは自然に発生する相互作用や、必要なときには、既に作業をしているようにするための方法をサポートできます。This way, your tools can support interactions that occur naturally, and as frequently as needed, but in a way that compliments how you already prefer to work.

このドキュメントでは Visual Studio Live Share が既に使用されているいくつかのユースケースについて説明し、現在サポートされているケースと、それらをさらに最適化する方法 (フィードバックに基づく) について説明します。This document highlights some use cases that Visual Studio Live Share is already being used for, and describes how well we currently support them, and ways we plan to optimize them further (based on feedback!). まだ以下に記載されていないものに対して Live Share を使用している場合、または特定のユースケースをサポートするためにより良い方法があると思われる場合は、お知らせくださいIf you're using Live Share for something that isn't already covered below, or you think we can do better to support a specific use case, please let us know.

クイックアシスタンスQuick assistance

問題が発生した場合 (たとえば、バグを解決しようとしている場合や、環境をセットアップしている場合)、Visual Studio Live Share を使用して、別のピアからすぐにアシスタンスを検索することができます。When you run into an issue (e.g. trying to resolve a bug, setting up your environment), you can use Visual Studio Live Share to instantly seek assistance from another peer. 多くの場合、ヘルプを提供するユーザーがどのようなコンテキストを必要とするかはすぐにはわかりません。したがって、Live Share は、プロジェクト全体へのアクセスを簡単に提供できるようにするために役立ちます。また、必要に応じて、より多くの (ローカルサーバー、読み取り専用の) 共有を増やすこともできます。ターミナル)。In many cases, it isn't immediately clear what context the person providing help will need, and therefore, Live Share helps by making it simple to provide access to your entire project, and if/as needed, incrementally share more (e.g. a local server, read-only terminal). コードスニペットやエラーメッセージを前後に送信する必要はありません。No need to send code snippets and/or error messages back-and-forth!

さらに、Live Share では、必要なプラットフォーム Sdk (node.js、ゴー、.NET Core など) のいずれかをインストールする "ゲスト" を必要とせずにアクティブなデバッグセッションを共有できます。また、ツール拡張機能を使用すると、より迅速に解決できるようになり、"私のコンピューターで再現します。Additionally, since Live Share allows you to share your active debug session, without requiring "guests" to install any of the necessary platforms SDKs (e.g. Node.js, Go, .NET Core) or tooling extensions, it can help you get resolution faster, and prevent "doesn't repro on my machine" situations. Live Share を使用すると、デバッグ状態を他のユーザーと共有することができます。これには、プログラミング言語またはランタイム環境 (Kubernetes、ネイティブアプリの応答など) について、どのようなヘルプが必要かに関係なく、共有することができます。Live Share allows you to share debug state with others, for any programming language or runtime environment (e.g. Kubernetes, React Native app) and so regardless what you need help with, you can share it!

オフィス時間Office Hours

多くの企業および教育機関 (たとえば、学校やオンライントレーニングコース) は、事前に決められた時間に顧客/従業員/学生にサポートを提供します。また、通常は定期的な頻度 (たとえば、金曜日の 3-5 PM) にも対応できます。Many businesses and educational institutions (e.g. schools, online training courses) provide support to their customers/employees/students at pre-determined times, and generally on a recurring frequency (e.g. every Friday from 3-5 PM). このように、"office 時間" は、完全にアドホックではなく、単に "クイックアシスタンス" というスケジュールされた形式です。In this way, "office hours" are simply a scheduled form of "quick assistance", as opposed to being entirely ad-hoc. Live Share を使用すると、ヘルプを提供する "専門家" がすぐにコラボレーションセッションに参加し、コンピューターをセットアップしなくても質問に答えることができるため、簡単に支援を受けることができます。Live Share makes it easy to get help quickly, since the "expert" providing help can immediately join a collaboration session, and answer your question(s), without needing to setup their machine at all.

ペアプログラミングPair Programming

Visual Studio Live Share で最もよく使用されるシナリオの1つは、"ペアプログラミング" です。2つ以上の開発者が共有タスクで共同作業を行い、知識を共有し、チームの凝集度を増やし、製品の品質を向上させることを目標としています。One of the most commonly used scenarios for Visual Studio Live Share is "pair programming": two or more developers, working together on a shared task, with the goal of sharing knowledge, increasing team cohesion, and potentially, product quality. ペアプログラミングの正確なルックアンドフィールは、チームと状況に応じて、次の点によって大きく異なる場合があります。The exact look-and-feel of pair programming can differ significantly between teams and situations, depending on the following (among others):

  1. 共同作業中の "タスク" のスコープ (バグ、ユーザーストーリーなど)The scope of the "task" being collaborated on (e.g. a bug, a user story)

  2. コラボレーションセッションの予想される期間 (例: 2 分、1時間、フルタイム、1週間に1回、未定)The expected duration of the collaboration session (e.g. two minutes, an hour, full-time, once a week, TBD)

  3. 関係する人の数 (例: 2、チーム全体)The number of people involved (e.g. two, the entire team)

  4. 各参加者の役割 (例: "driver"、オブザーバー/レビューアー、分野の専門家)The role of each participant (e.g. "driver", observer/reviewer, subject matter expert)

  5. 参加者の近接度 (例: 同じ建物内で、世界中に併置されている場合)The proximity of participants (e.g. co-located in the same building, across the world)

Live Share は、前述のすべての懸念事項に依存しないように設計されています。代わりに、完全に "便宜的" で、状況に応じたペアプログラミングをサポートするように努めています。Live Share was designed to be agnostic to all of the aforementioned concerns, and instead, strives to support pair programming that is completely "opportunistic" and catered to your situation. ただし、1つのキーボードと画面を共有する2つの開発者とは異なり、Live Share によって、開発者が個別の自律性または環境設定を削除することなく、共有の目標を操作できるようにするペアプログラミングの形式が可能になります。That said, unlike two developers sharing a single keyboard and screen, Live Share enables a form of pair programming that allows developers to work on a shared goal, without removing their individual autonomy or environment preferences. 個別にまたは組み合わせて作業することで、各参加者が自分の思考プロセスをコラボレーションに持ち込むことができます。You can work independently, or together, allowing each participant to bring their own thought process to the collaboration.

このユースケースをさらに細分化するために、次の項目は、の Live Share を使用していることを観察したペアプログラミングの形式を表しています。To break this use case down even further, the following items represent forms of pair programming that we've observed folks using Live Share for:

Mob プログラミングMob Programming

Mob プログラミング(または群れのプログラミング) は基本的にペアプログラミングですが、2人以上の人がいます。Mob programming (or swarm programming) is essentially pair programming, but with more than two people. したがって、ペアプログラミングの Live Share の利点もすべて同様に同様に適用されます。Therefore, all of the benefits of Live Share for pair programming apply equally as well. また、一部のチームでは、フルタイムではなく、必要に応じて "swarming" を実行しています (たとえば、チームは火災訓練をスローガンしています)。Additionally, some teams do "swarming" on an as-needed basis (e.g. the team rallying around a fire drill) as opposed to full-time.

現時点では、Live Share は、セッション内で最大で30台のゲストをサポートしています。Currently, Live Share supports up to 30 guests within a session.


セッションで30ゲストを有効にするには:To enable 30 guests in a session:

  • VS Code: liveshare に "increasedGuestLimit": "true" を追加します。VS Code: add "liveshare.increasedGuestLimit":"true" to settings.json
  • VS: ゲスト制限を "True" に > Live Share ツール > オプションを設定 >VS: Set Tools > Options > Live Share > Increased guest limit to "True"

コンペティション/ハッキングのコーディング-A ThonsCoding Competitions / Hack-A-Thons

コンペティションとハッキングをコーディングすることは、mob プログラミングの効率が非常に短い、単一タスクのバリエーションです。Coding competitions and hack-a-thons are effectively short-term, single-task variations of mob programming. チームのメンバーとその現在のロールも、動的な可能性があります。The members of the team, and their current role, are also potentially dynamic. このユースケースは通常、時間に依存しているため、まったく新しいツールを導入しなくても、リアルタイムで共同作業を行うことができます。また、1つの画面やキーボードに限定されずに連携することもできます。報酬.Since this use case is typically also time-sensitive, the ability to collaborate in real-time without needing to adopt an entirely new tool, and the ability to work together, without being restricted to a single screen or keyboard, can go a log way in increasing velocity.

この環境の参加者は常に完全に "信頼されている" とは限りません。そのため、セッションからゲストをいつでも削除 (およびブロック) できます。Since the participants in this environment might not always be fully "trusted", you can remove (and block) a guest from a session at any time. これにより、環境を完全に制御できる "ホスト" が提供されます。This provides "hosts" with complete control over their environment.

学校グループのプロジェクトSchool Group Projects

グループプロジェクトは、複数の学生が連携している mob プログラミングとよく似ています。また、1つのタスクに焦点を合わせてシームレスに移行したり、個別のタスクを同時に作業したりすることができます。Group projects ends up looking a lot like mob programming, where multiple students are working together, and can transition seamlessly between focusing on a single task, or working on separate tasks concurrently. 非同期的に共同作業するためにバージョン管理に依存するのではなく、Live Share を使用してリアルタイムで連携させることができます。これは、グループで作業することによるソーシャルと教育上の利点に役立ちます。Instead of simply relying on version control to collaborate asynchronously, they can use Live Share to work together in real-time, which can help the social and educational benefits of working in a group.

開発者向けストリーミングDeveloper Streaming

Developer streaming (Twitch または Mixer を使用) は、新しい形式の教育になりました。Developer streaming (via Twitch or Mixer) has become a compelling new form of education. Live Share はブロードキャストプラットフォームを置き換えることを意図したものではありませんが (要求を聞きましたが)、ホストがプログラムを1人以上のゲストとペアリングし、その相互作用をストリームする手段を提供します。While Live Share isn't meant to replace their broadcasting platforms (though we've heard the request!), it does provide a means for the host to pair program with one or more guests, and then stream that interaction. このように、ビューアーでは、2人以上の開発者の自然な対話処理と思考プロセスを確認することで、より多くの情報を得ることができます。これは、完全に独立したオペレーティングシステムと Ide で連携して作業することさえあります。This way, viewers can potentially learn more by seeing the natural interaction and thought process of two or more developers, who could even be working together in entirely separate operating systems and IDEs!

プロトタイプ/プロジェクトの開始Prototyping / Project Inception

チームが新しいプロジェクト/マイクロサービスを開始する場合、または新しい機能をプロトタイプ化/急上昇する場合、多くの場合、迅速な進行と新しいアイデアの探索を行うために共同作業を行うと便利です。When a team is starting a new project/microservice, or prototyping/spiking a new feature, it can often be helpful to collaborate together in order to make rapid progress and explore new ideas. 新しく形成されたコードベースは共有リポジトリにまだコミットされていない可能性があるため、Live Share では、すべてのユーザーが同じオフィスにいるかどうかに関係なく、反復的なプロセスに参加できます。Since the newly forming codebase might not be committed to a shared repository yet, Live Share allows everyone to participate in the iterative process, regardless if they're in the same office or not.

対話型教育Interactive Education

一般に、チーム間でナレッジを共有する開発者を支援するために、Live Share シークを行います。Generally speaking, Live Share seeks to assist developers in sharing knowledge amongst their team. 教育は Live Share の基本的なユースケースであり、各参加者が、画面を見るだけではなく、コラボレーションされているコードベースと対話できるようにすることで、特に便利です。Education is a fundamental use case for Live Share, and it supports this particularly well by allowing each participant to interact with the codebase being collaborated on, as opposed to simply watching a screen. 誰もがさまざまな方法で学習しているため、"student" に対して独立性を提供することによって、特定の命令を利用することができます。これにより、独自のアイデアをはらみに調査する能力を犠牲にする必要がなくなります。Everyone learns in subtlety different ways, and therefore, by providing independence to a "student", they are able to take advantage of the instruction being given, without needing to sacrifice their ability to explore their own ideas along the way.

ピアの指導/オンボードPeer Mentoring / Onboarding

開発者を新しいコードベース、機能領域、テクノロジなどに導入する場合は、Live Share を使用してプロジェクト (Follow Modeを使用) でそれらを操作できます。このような操作は、自分のパーソナル IDE 内から実行できます。When introducing a developer to a new codebase, feature area, technology, etc. you can use Live Share to walk them through the project (using Follow Mode), such that they can follow along with you, but from within their own personal IDE. Live Share により、"guests" はプロジェクト内を個別に移動することができます (ファイルを開く、Peek Definitionを実行するなど)。そのため、必要に応じてクイック探索を実行することもできます (例: "Within、この関数が実行する操作")。Since Live Share allows "guests" to independently navigate the project (e.g. opening a file, performing a Peek Definition), they can follow allow, but also, perform quick explorations as needed (e.g. "Hmm, what does this function do?").

チーム Brown バッグTeam Brown Bags

チーム brown のバッグは、実質的にはピアの指導に似ていますが、チーム全体に提示されます。また、socializing のサポートや特定のタスクに対する支援ではなく、一般に役立つ知識を持つ可能性があります。Team brown bags are effectively like peer mentoring, but presented to an entire team, and potentially, more focused on socializing generally useful knowledge, as opposed to on-boarding support and/or helping with a specific task.

クラスルームの講義Classroom Lectures

インストラクターが教訓を示すときは、単に画面を表示するのではなく、Live Share を使用してプロジェクトを学生と共有できます。When instructors are teaching a lesson, they can use Live Share to share their project with students, instead of simply presenting their screen. これにより、クラス全体が教師と一緒にフォローできるようになりますが、プロジェクトを独自に操作することができます。This allows the entire class to follow along with the teacher, while being able to interact with the project on their own. さらに、教師は、レッスンの特定の部分の解決に役立つように個々の学生に依頼することができます (例: "どのメソッドを呼び出す必要があるか")。学生が部屋の前に入る必要はありません。または、物理的に同じ部屋 (オンラインコースなど) に存在することもあります。Additionally, the teacher can ask individual students to assist in solving a particular portion of the lesson (e.g. "Which method should we call here?"), which can help in the social aspects of the class, without requiring students to walk up to the front of the room, or even be physically present in the same room (e.g. online courses).

クラスルーム設定を支援するために、Live Share は読み取り専用モードでの共有を有効にします。To aid in classroom settings, Live Share enables sharing in read-only mode. インストラクターは読み取り専用モードを使用して、不要な編集や偶発的な編集を気にすることなく、プロジェクトを学生と共有できます。Instructors can use read-only mode to enable them to share their projects with students without having to worry about unnecessary or accidental edits being made.

さらに、Live Share は、最大30台のゲストをコラボレーションセッションに参加させることができます。Additionally, Live Share has support to enable up to 30 guests joining into a collaboration session. これにより、インストラクターはクラス全体をセッションに参加させ、コードをまとめて表示することができます。This way, instructors can have their whole class join into a session and view code together.

この機能を有効にするには:To enable this feature:

  • VS Code: "Liveshare": "true" を increasedGuestLimit に追加します。VS Code: Add "liveshare.increasedGuestLimit":"true" to settings.json.
  • VS: ゲスト制限を "True" に > Live Share ツール > オプションを設定 >VS: Set Tools > Options > Live Share > Increased guest limit to "True"

このシナリオで Live Share を完全に最適化するには、セッションの開始方法を簡略化する必要があります (#422)。To fully optimize Live Share for this scenario, we need to simplify the way that sessions are initiated (#422).

コードレビューCode Reviews

Pr は、他のユーザーと共同作業を行う強力な方法ですが、通常はタスクの完了 ("WIP" Pr を除く)、およびそれをマージする必要があることを表します。PRs are a powerful way to collaborate with others, but typically represent the completion of a task (excluding "WIP" PRs), and the desire to merged it in. 多くの場合、PR に記載されているフィードバックは、簡単に指定できます。したがって、チームが要求するタスクを "完了" まで待機するのではなく、同僚からのアドバイスを簡単かつ継続的に探すことができる可能性があります。Many times, the feedback that is given in a PR could easily have been given earlier, and therefore, there's potentially value for teams to easily and continuously seek advice from their peers, as opposed to waiting until they "complete" a task to ask.

Live Share では、プロジェクトを他のユーザーと瞬時に共有できるため、"非公式な" コードレビューを可能にするために使用できます。ヘルプを要求する代わりに、単に入力を求めて、方向や方法を他のユーザーと揃えることができます。Since Live Share allows you to instantly share your project with others, it can be used to enable "informal"/ad-hoc code reviews, where instead of asking for help, you're simply seeking input to ensure your direction and/or approach aligns with others. これにより、後続の Pr の完了に役立つ可能性があり、チーム全体の知識を socialize ことができます。This can potentially help subsequent PRs complete quicker, and definitely helps socialize knowledge across the team.

また、Live Share では、任意のディレクトリを共有することができます。これにより、現在バージョンコントロールを使用していない場合 (ただし、)、またはチームが Pr を使用していない場合 (場合によっては) でも、このディレクトリを使用してコードレビューを実行できます (例:Additionally, since Live Share allows you to share an arbitrary directory, you can use it to perform code reviews, even if you're not currently using version control (though you should!), or if your team doesn't use PRs (E.g. トランクベースの開発)。you do trunk-based development).

Live Share は、現在、ソース管理の相違点を共有していません。これは、コードレビューに使用する場合のコンテキストの重要な部分です。Live Share doesn't currently share source control diffs, which is a critical piece of context when using it for code reviews. これはロードマップにあります。優先度に関するフィードバックはかなり感謝します (ここに投票 👍)。This is on our roadmap, and any feedback on priority is greatly appreciated (Vote 👍 Here).

技術インタビューTechnical Interviews

開発者が面接を行う場合は、多くの場合、ホワイトボードディスカッションを超えて、実際の IDE 内からコードの問題を解決することをお勧めします (特に、チームまたは組織が、使用することを確認してください)。When interviewing candidates for a developer position, it can often be helpful to go beyond whiteboard discussions, and instead, observe them solving a coding problem from within an actual IDE (especially if your team/organization has "standardized" on a tool that you'd like to see them use). これにより、より自然で快適な方法で作業できるだけでなく (ほとんどの開発者がホワイトボードをコーディングすることはできません)、作業中にすぐにフィードバックや支援を提供します (ビルドエラー、intellisense など)。This not only gives them the benefit of working in a way that is potentially more natural/comfortable (most developers don't code on whiteboards!), but also, gives them immediate feedback/assistance while working (e.g. build errors, intellisense). 多くの場合、正確な構文や API 名を記憶する機能ではなく、候補の思考プロセスを理解することが重要です。Many times, it's more important to understand a candidate's thought process, as opposed to their ability to memorize exact syntax and/or API names. このようにして、Live Share はペアプログラミングセッションを実行するのと同様のエクスペリエンスを提供しますが、参加者は独自の環境 (アクセシビリティなどの OS 設定を含む) にすることができ、ローカルまたはリモートのインタビューでも同様に機能します。In this way, Live Share provides an experience that is similar to doing a pair programming session, but allows the participant to be in their own environment (including OS settings, such as accessibility), and would work equally as well for local or remote interviews.

さらに、実際の開発はコードを記述するだけではありません。Additionally, real-world development is more than simply writing code. Live Share は共有デバッグ、タスク、および端末もサポートしているので、問題を診断する際に interviewers が候補を観察し、それを解決するために必要な適切なツールを提供できるようになります (たとえば、デバッグのステップ実行、テストの実行など)。Because Live Share also supports shared debugging, tasks and terminals, it allows interviewers to observe candidates while diagnosing an issue, and provide them the appropriate tools needed to solve it (e.g. step debug, run tests). すべてのコンテキストはホストのコンピューターからリモート処理されるので、候補者は、(Live Share をインストールする以外に) コンピューターをセットアップしなくても、"インタビュー環境" にすばやく移動できます。Since all context is remoted from the host's machine, candidates can quickly jump into the "interview environment" without needing to setup their machine (beyond installing Live Share). チームは、各インタビューの前にセッション URL を送信するだけで、共有された面接アプリのリポジトリ (または実際の製品コードベースを使用します) を管理して、複製して候補と共有することができます。Teams could then maintain a repository of shared interviewing apps (or use their actual product codebase), that could be cloned and shared with candidates, by simply sending them the session URL before each interview.

関連項目See also

問題が発生していますか?Having problems? トラブルシューティングまたはフィードバックの送信に関するページをご覧ください。See troubleshooting or provide feedback.