Casos de uso comunsCommon Use Cases

O objetivo principal do Visual Studio Live Share é permitir que os desenvolvedores colaborem entre si com mais facilidade, sem apresentar qualquer opinião sobre quando e como fazer isso (por exemplo, qual ferramenta de comunicação usar, a metodologia de software "correta" ou o fluxo de trabalho do 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). Dessa forma, suas ferramentas podem dar suporte a interações que ocorrem naturalmentee com a frequência necessária, mas de forma a complementar como você já prefere trabalhar.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.

Este documento realça alguns casos de uso que Visual Studio Live Share já está sendo usado para o e descreve como oferecemos suporte a eles, e como planejamos otimizá-los mais detalhadamente (com base nos comentários!).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!). Se você estiver usando Live Share para algo que ainda não esteja coberto abaixo, ou se você considerar que podemos fazer melhor para dar suporte a um caso de uso específico, informe -nos.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.

Assistência rápidaQuick assistance

Ao encontrar um problema (por exemplo, tentar resolver um bug, configurar seu ambiente), você pode usar Visual Studio Live Share para buscar instantaneamente assistência de outro ponto.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. Em muitos casos, não é preciso limpar imediatamente o contexto que a pessoa que fornece ajuda precisará e, portanto, Live Share ajuda simplificando o fornecimento de acesso a todo o seu projeto e se/conforme necessário, compartilhar incrementalmente mais (por exemplo, um servidor local, terminal somente leitura).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). Não é necessário enviar trechos de código e/ou mensagens de erro de volta e para trás!No need to send code snippets and/or error messages back-and-forth!

Além disso, como Live Share permite que você compartilhe sua sessão de depuração ativa, sem a necessidade de "convidados" instalar qualquer um dos SDKs de plataformas necessários (por exemplo, Node.js, go, .NET Core) ou extensões de ferramentas, ele pode ajudá-lo a obter a resolução mais rapidamente e evitar situações "não reproduzidas em meu computador".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 permite compartilhar o estado de depuração com outras pessoas, para qualquer linguagem de programação ou ambiente de tempo de execução (por exemplo, kubernetes, reagir ao aplicativo nativo) e, portanto, independentemente do que você precisa de ajuda, você pode compartilhar!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!

Horário comercialOffice Hours

Muitas empresas e instituições educacionais (por exemplo, escolas, cursos de treinamento online) oferecem suporte a seus clientes/funcionários/alunos em momentos predeterminados e, geralmente, em uma frequência recorrente (por exemplo, toda sexta-feira da 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). Dessa forma, "horário do escritório" é simplesmente uma forma agendada de "assistência rápida", em vez de ser totalmente ad hoc.In this way, "office hours" are simply a scheduled form of "quick assistance", as opposed to being entirely ad-hoc. Live Share facilita a obtenção de ajuda rapidamente, já que o "especialista" que fornece ajuda pode entrar imediatamente em uma sessão de colaboração e responder às suas perguntas, sem a necessidade de configurar seu computador.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.

Programação de paresPair Programming

Um dos cenários mais usados para Visual Studio Live Share é "programação de pares": dois ou mais desenvolvedores, trabalhando juntos em uma tarefa compartilhada, com o objetivo de compartilhar conhecimento, aumentar a coesão da equipe e, potencialmente, a qualidade do produto.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. A aparência exata da programação de pares pode diferir significativamente entre equipes e situações, dependendo do seguinte (entre outras):The exact look-and-feel of pair programming can differ significantly between teams and situations, depending on the following (among others):

  1. O escopo da "tarefa" que está sendo colaborável (por exemplo, um bug, uma história de usuário)The scope of the "task" being collaborated on (e.g. a bug, a user story)

  2. A duração esperada da sessão de colaboração (por exemplo, dois minutos, uma hora, tempo integral, uma vez por semana, TBD)The expected duration of the collaboration session (e.g. two minutes, an hour, full-time, once a week, TBD)

  3. O número de pessoas envolvidas (por exemplo, duas, a equipe inteira)The number of people involved (e.g. two, the entire team)

  4. A função de cada participante (por exemplo, "driver", observador/revisor, especialista no assunto)The role of each participant (e.g. "driver", observer/reviewer, subject matter expert)

  5. A proximidade dos participantes (por exemplo, colocalizado na mesma construção, em todo o mundo)The proximity of participants (e.g. co-located in the same building, across the world)

A Live Share foi projetada para ser independente de todas as preocupações mencionadas anteriormente e, em vez disso, procura oferecer suporte à programação de pares que é completamente "oportunista" e atendeu à sua situação.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. Dito isso, ao contrário de dois desenvolvedores que compartilham um único teclado e uma tela, Live Share permite uma forma de programação de pares que permite que os desenvolvedores trabalhem em uma meta compartilhada, sem remover suas preferências individuais de autonomia ou ambiente.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. Você pode trabalhar de forma independente ou em conjunto, permitindo que cada participante traga seu próprio processo de pensamento para a colaboração.You can work independently, or together, allowing each participant to bring their own thought process to the collaboration.

Para interromper esse caso de uso ainda mais, os itens a seguir representam formas de programação de par que observamos pessoas usando Live Share para: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:

Programação de MobMob Programming

A programação Mob (ou a programação Swarm) é basicamente a programação de pares, mas com mais de duas pessoas.Mob programming (or swarm programming) is essentially pair programming, but with more than two people. Portanto, todos os benefícios de Live Share para a programação de par também se aplicam igualmente.Therefore, all of the benefits of Live Share for pair programming apply equally as well. Além disso, algumas equipes fazem "swarming" de acordo com a necessidade (por exemplo, a equipe rallying em uma análise de incêndio) em oposição ao tempo integral.Additionally, some teams do "swarming" on an as-needed basis (e.g. the team rallying around a fire drill) as opposed to full-time.

Atualmente, Live Share dá suporte a até 30 convidados em uma sessão.Currently, Live Share supports up to 30 guests within a session.

Dica

Para habilitar 30 convidados em uma sessão:To enable 30 guests in a session:

  • Vs Code: adicionar "LiveShare. increasedGuestLimit": "true" para settings.jsemVS Code: add "liveshare.increasedGuestLimit":"true" to settings.json
  • Vs: Definir ferramentas > opções > Live Share > maior limite de convidado para "verdadeiro"VS: Set Tools > Options > Live Share > Increased guest limit to "True"

Competições de codificação/hack-A-thonsCoding Competitions / Hack-A-Thons

As competições de codificação e os hack-a-thons são efetivamente as variações de tarefa única e de curto prazo da programação de Mob.Coding competitions and hack-a-thons are effectively short-term, single-task variations of mob programming. Os membros da equipe e sua função atual também são potencialmente dinâmicos.The members of the team, and their current role, are also potentially dynamic. Como esse caso de uso normalmente também é sensível ao tempo, a capacidade de colaborar em tempo real sem a necessidade de adotar uma ferramenta totalmente nova, e a capacidade de trabalhar juntas, sem ser restrita a uma única tela ou ao teclado, pode passar por um log para aumentar a velocidade.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.

Como os participantes nesse ambiente talvez nem sempre sejam totalmente "confiáveis", você pode remover (e bloquear) um convidado de uma sessão a qualquer momento.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. Isso fornece "hosts" com controle total sobre seu ambiente.This provides "hosts" with complete control over their environment.

Projetos de grupo escolarSchool Group Projects

Os projetos de grupo acabam olhando muito como a programação Mob, em que vários alunos estão trabalhando juntos e podem fazer a transição diretamente entre o foco em uma única tarefa ou trabalhar em tarefas separadas simultaneamente.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. Em vez de simplesmente depender do controle de versão para colaborar de forma assíncrona, eles podem usar Live Share para trabalhar em conjunto em tempo real, o que pode ajudar os benefícios sociais e educacionais de trabalhar em um grupo.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.

Streaming do desenvolvedorDeveloper Streaming

O streaming do desenvolvedor (via Twitch ou mixer) se tornou uma nova forma atraente de educação.Developer streaming (via Twitch or Mixer) has become a compelling new form of education. Embora Live Share não se destinar a substituir suas plataformas de difusão (embora tenhamos ouvido a solicitação!), ele fornece um meio para o host emparelhar o programa com um ou mais convidados e, em seguida, transmitir essa interação.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. Dessa forma, os visualizadores podem potencialmente aprender mais vendo a interação natural e o processo de pensamento de dois ou mais desenvolvedores, que poderiam até mesmo trabalhar juntos em sistemas operacionais e IDEs totalmente separados!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!

Criação de protótipos/projetoPrototyping / Project Inception

Quando uma equipe está iniciando um novo projeto/microserviço, ou criando um protótipo/travadondo um novo recurso, muitas vezes pode ser útil colaborar para tornar o progresso rápido e explorar novas ideias.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. Como a base de código de forma mais recente talvez ainda não esteja confirmada em um repositório compartilhado, Live Share permite que todos participem do processo iterativo, independentemente de estarem no mesmo escritório ou não.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.

Educação interativaInteractive Education

Em termos gerais, Live Share busca ajudar os desenvolvedores a compartilhar conhecimento entre suas equipes.Generally speaking, Live Share seeks to assist developers in sharing knowledge amongst their team. A educação é um caso de uso fundamental para Live Share e dá suporte a isso particularmente bem, permitindo que cada participante interaja com a base de código de colaboração, em vez de simplesmente assistir a uma tela.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. Todos aprendem de maneiras diferentes e, portanto, ao fornecer independência a um "aluno", eles podem aproveitar a instrução que está sendo fornecida, sem a necessidade de sacrificar sua capacidade de explorar suas próprias ideias ao longo do caminho.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.

Aconselhamento/integração de paresPeer Mentoring / Onboarding

Ao introduzir um desenvolvedor para uma nova base de código, área de recursos, tecnologia, etc., você pode usar Live Share para orientá-los no projeto (usando Follow Mode ), de modo que eles possam acompanhar você, mas de dentro de seu próprio IDE pessoal.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. Como Live Share permite que "convidados" naveguem de forma independente o projeto (por exemplo, abrindo um arquivo, executando um Peek Definition ), eles podem seguir a permissão, mas também executar explorações rápidas, conforme necessário (por exemplo, "Hmm, o que essa função faz?").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?").

Bolsas de Brown da equipeTeam Brown Bags

Os pacotes Brown da equipe são efetivamente como o Orientador de pares, mas são apresentados a uma equipe inteira e, potencialmente, mais concentrados na social do conhecimento geralmente útil, em oposição ao suporte à integração e/ou à ajuda com uma tarefa específica.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.

Palestras em sala de aulaClassroom Lectures

Quando os instrutores estão ensinando uma lição, eles podem usar Live Share para compartilhar seus projetos com alunos, em vez de simplesmente apresentar a tela.When instructors are teaching a lesson, they can use Live Share to share their project with students, instead of simply presenting their screen. Isso permite que toda a classe acompanhe com o professor, enquanto pode interagir com o projeto por conta própria.This allows the entire class to follow along with the teacher, while being able to interact with the project on their own. Além disso, o professor pode pedir aos alunos individuais para auxiliar na resolução de uma parte específica da lição (por exemplo, "qual método devemos chamar aqui?"), que pode ajudar nos aspectos sociais da classe, sem exigir que os alunos percorram a frente da sala ou até mesmo estejam fisicamente presentes na mesma sala (por exemplo, cursos online).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).

Para auxiliar nas configurações da sala de aula, Live Share habilita o compartilhamento no modo somente leitura.To aid in classroom settings, Live Share enables sharing in read-only mode. Os instrutores podem usar o modo somente leitura para permitir que eles compartilhem seus projetos com alunos sem precisar se preocupar com edições desnecessárias ou acidentais sendo feitas.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.

Além disso, Live Share tem suporte para habilitar até 30 convidados ingressando em uma sessão de colaboração.Additionally, Live Share has support to enable up to 30 guests joining into a collaboration session. Dessa forma, os instrutores podem ter sua classe inteira unida em uma sessão e exibir código juntos.This way, instructors can have their whole class join into a session and view code together.

Para habilitar esse recurso:To enable this feature:

  • Vs Code: Adicione "LiveShare. increasedGuestLimit": "true" para settings.js.VS Code: Add "liveshare.increasedGuestLimit":"true" to settings.json.
  • Vs: Definir ferramentas > opções > Live Share > maior limite de convidado para "verdadeiro"VS: Set Tools > Options > Live Share > Increased guest limit to "True"

Para otimizar totalmente Live Share para esse cenário, precisamos simplificar a maneira como as sessões são iniciadas (#422).To fully optimize Live Share for this scenario, we need to simplify the way that sessions are initiated (#422).

Revisões de códigoCode Reviews

PRs são uma maneira eficiente de colaborar com outras pessoas, mas normalmente representam a conclusão de uma tarefa (excluindo "WIP" PRs) e o desejo de mesclá-las.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. Muitas vezes, os comentários fornecidos em uma PR poderiam ser facilmente fornecidos anteriormente e, portanto, há um valor potencialmente para que as equipes busquem conselhos de seus colegas de forma fácil e contínua, em vez de esperar até que eles "concluam" uma tarefa a perguntar.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.

Como Live Share permite que você compartilhe instantaneamente seu projeto com outras pessoas, ele pode ser usado para habilitar revisões de código "informais"/ad-hoc, em que, em vez de pedir ajuda, você está simplesmente procurando entrada para garantir que sua direção e/ou abordagem se alinhe com outras pessoas.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. Isso pode potencialmente ajudar a PRs subsequentes a concluir e, definitivamente, ajuda a proteger o conhecimento em toda a equipe.This can potentially help subsequent PRs complete quicker, and definitely helps socialize knowledge across the team.

Além disso, como Live Share permite que você compartilhe um diretório arbitrário, você pode usá-lo para executar revisões de código, mesmo que você não esteja usando o controle de versão no momento (embora você deva!) ou se sua equipe não usar PRs (por exemplo,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. Você faz o desenvolvimento baseado em troncos).you do trunk-based development).

No momento, o Live Share não compartilha diferenças de controle do código-fonte, o que é uma parte crítica do contexto ao usá-lo para revisões de código.Live Share doesn't currently share source control diffs, which is a critical piece of context when using it for code reviews. Isso está em nosso roteiro, e todos os comentários sobre a prioridade são muito apreciados (vote 👍 aqui).This is on our roadmap, and any feedback on priority is greatly appreciated (Vote 👍 Here).

Entrevistas técnicasTechnical Interviews

Ao diexibir os candidatos para uma posição de desenvolvedor, muitas vezes pode ser útil ir além das discussões do quadro de comunicações e, em vez disso, observar que resolvem um problema de codificação de dentro de um IDE real (especialmente se a sua equipe/organização tiver "padronizado" em uma ferramenta que você gostaria de vê-los usar).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). Isso não só oferece a eles o benefício de trabalhar de forma potencialmente mais natural/confortável (a maioria dos desenvolvedores não codificam em quadros de comunicações!), mas também fornece comentários/assistência imediatas enquanto trabalha (por exemplo, erros de compilação, 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). Muitas vezes, é mais importante entender o processo de pensamento de um candidato, em oposição à sua capacidade de memorizar a sintaxe exata e/ou nomes de 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. Dessa forma, Live Share fornece uma experiência semelhante a fazer uma sessão de programação de par, mas permite que o participante esteja em seu próprio ambiente (incluindo as configurações do sistema operacional, como acessibilidade) e também funcionaria igualmente para entrevistas locais ou remotas.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. Ingressar em uma sessão da Web permite que o candidato use o ambiente de desenvolvimento e a base de código da equipe sem baixar nada.Joining a session from the web allows the candidate to use the team's development environment and code base without downloading anything.

Além disso, o desenvolvimento do mundo real é mais do que simplesmente escrever código.Additionally, real-world development is more than simply writing code. Como o Live Share também dá suporte à depuração, às tarefas e aos terminais compartilhados, ele permite aos covisores observar os candidatos ao diagnosticar um problema e fornecer a eles as ferramentas apropriadas necessárias para solucioná-lo (por exemplo, depuração de etapa, executar testes).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). Como todo o contexto é remoto no computador do host, os candidatos podem rapidamente ir para a "ambiente de entrevista" sem a necessidade de configurar seu computador (além de instalar 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). As equipes poderiam manter um repositório de aplicativos de interexibição compartilhados (ou usar sua base de código de produto real), que poderiam ser clonados e compartilhados com candidatos, simplesmente enviando-os à URL da sessão antes de cada entrevista.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.

Confira tambémSee also

Está tendo problemas?Having problems? Confira Solução de problemas ou envie comentários.See troubleshooting or provide feedback.