O que é a edição colaborativa de código?

A edição colaborativa de código permite que vários desenvolvedores trabalhem no mesmo código ao mesmo tempo, cada um no próprio navegador. É útil para programação em pares, entrevistas, ensino e depuração de um trecho em conjunto, sem precisar configurar um ambiente de desenvolvimento integrado (IDE) compartilhado nem trocar arquivos.

Para manter a cópia de todos idêntica, as alterações são enviadas como pequenas edições, em vez de arquivos inteiros, e um servidor determina a ordem em que são aplicadas. As edições feitas ao mesmo tempo são ajustadas entre si, para que ambas sejam mantidas.

Descrição da ferramenta

Esta ferramenta é um editor compartilhado de JavaScript com realce de sintaxe. Abra-o e envie o link: todos na sala editam o mesmo código em tempo real, veem os cursores uns dos outros e podem validar ou formatar o código para todos com um clique.

A validação verifica a sintaxe com o analisador Babel (incluindo módulos ES e JSX). A formatação usa o Prettier, e o código formatado substitui apenas as linhas que foram alteradas, para que o que os outros digitarem nesse meio-tempo permaneça no lugar.

Recursos

  • Edição em tempo real - as alterações de todos aparecem instantaneamente e são mescladas quando várias pessoas digitam ao mesmo tempo
  • Cursores e seleções - veja onde cada pessoa está, na cor exibida ao lado do nome
  • Validar - verifica a sintaxe de JavaScript e mostra o primeiro erro, com sua linha e coluna
  • Formatar - reformata o código com o Prettier para todos na sala
  • Copiar e baixar - guarde uma cópia do código como arquivo .js

Como funciona

Quando a página é aberta, ela cria uma sala no servidor de sincronização e coloca o link na barra de endereço. Todas as pessoas que abrem o link entram na mesma sala e veem o mesmo documento.

Cada alteração é enviada ao servidor como uma pequena descrição do que mudou - quais caracteres foram inseridos ou excluídos e em que lugar - em vez de enviar o texto inteiro. O servidor organiza as alterações de todos em uma única sequência, desloca uma alteração feita sobre uma versão anterior para depois das alterações que vieram primeiro e envia o resultado às demais pessoas. O que você digita aparece imediatamente, e as alterações dos outros são mescladas ao redor do seu texto, para que nada do que alguém digitar se perca quando duas pessoas editam ao mesmo tempo.

O documento é mantido apenas na memória do servidor enquanto a sala está aberta. Se você recarregar a página, voltará à sala com o texto tal como estava; quando todos saírem, a sala e seu texto serão apagados.

Limitações

  • Uma sala comporta até 20 pessoas e 100.000 caracteres.
  • Nada é armazenado depois que uma sala é fechada. Baixe o texto antes que a última pessoa saia.
  • Alterações muito rápidas ou muito grandes, como colar o documento inteiro várias vezes seguidas, são recusadas e o editor recarrega o texto da sala.
  • Abrir o link de uma sala em outro editor colaborativo (por exemplo, uma sala SQL no editor de JavaScript) mostra “Sala não encontrada”: cada sala pertence a uma única linguagem.
  • A validação verifica apenas a sintaxe. O código nunca é executado.