Wat is gezamenlijk code bewerken?

Met gezamenlijk code bewerken kunnen meerdere ontwikkelaars tegelijkertijd aan dezelfde code werken, ieder in een eigen browser. Dit is handig voor pairprogrammeren, sollicitatiegesprekken, lesgeven en samen een codefragment debuggen, zonder een gedeelde IDE in te stellen of bestanden heen en weer te sturen.

Om ervoor te zorgen dat iedereen dezelfde versie heeft, worden wijzigingen als kleine bewerkingen verstuurd in plaats van als volledige bestanden. Eén server bepaalt in welke volgorde ze worden toegepast. Bewerkingen die op hetzelfde moment worden gemaakt, worden op elkaar afgestemd, zodat beide behouden blijven.

Beschrijving van de tool

Deze tool is een gedeelde TypeScript-editor met syntaxiskleuring. Open de editor en deel de link: iedereen in de ruimte bewerkt in realtime dezelfde code, ziet de cursors van anderen en kan de code met één klik voor iedereen controleren of formatteren.

De validatie controleert de syntaxis met de Babel-parser en de TypeScript-plugin, zodat typeannotaties, interfaces, generics en enums worden herkend. Voor het formatteren wordt de TypeScript-parser van Prettier gebruikt. De geformatteerde code vervangt alleen de gewijzigde regels, zodat wat anderen ondertussen typen op zijn plaats blijft.

Functies

  • Realtime bewerken - wijzigingen van iedereen verschijnen direct en worden samengevoegd wanneer mensen tegelijkertijd typen
  • Cursors en selecties - zie waar iedereen bezig is, aan de hand van de kleur naast diens naam
  • Valideren - controleert de TypeScript-syntaxis en toont de eerste fout met het regel- en kolomnummer
  • Formatteren - formatteert de code voor iedereen in de ruimte opnieuw met Prettier
  • Kopiëren en downloaden - bewaar een kopie van de code als .ts-bestand

Werking

Wanneer de pagina wordt geopend, maakt deze een ruimte aan op de synchronisatieserver en plaatst de link in de adresbalk. Iedereen die de link opent, komt in dezelfde ruimte en ziet hetzelfde document.

Elke wijziging wordt als een kleine beschrijving van wat er is veranderd naar de server gestuurd: welke tekens waar zijn ingevoegd of verwijderd, in plaats van de volledige tekst. De server zet de wijzigingen van iedereen in één volgorde, verplaatst een wijziging die op een oudere versie is gemaakt naar achter de wijzigingen die eerder zijn binnengekomen en stuurt het resultaat door naar alle anderen. Wat je zelf typt, verschijnt meteen. Wijzigingen van anderen worden eromheen samengevoegd, zodat niemands tekst verloren gaat wanneer twee mensen tegelijkertijd bewerken.

Het document wordt alleen in het geheugen van de server bewaard zolang de ruimte open is. Als je de pagina opnieuw laadt, kom je terug in de ruimte met de tekst zoals die was. Zodra iedereen de ruimte heeft verlaten, verdwijnen de ruimte en de tekst.

Beperkingen

  • Er kunnen maximaal 20 mensen deelnemen aan een ruimte en het document kan maximaal 100.000 tekens bevatten.
  • Er wordt niets bewaard nadat een ruimte is gesloten. Download de tekst voordat de laatste persoon de ruimte verlaat.
  • Zeer snelle of grote wijzigingen, zoals het meerdere keren achter elkaar plakken van het volledige document, worden geweigerd. De editor laadt dan de tekst van de ruimte opnieuw.
  • Als je een link naar een ruimte opent in een andere gezamenlijke editor (bijvoorbeeld een SQL-ruimte in de JavaScript-editor), verschijnt ‘Ruimte niet gevonden’: elke ruimte hoort bij één taal.
  • De validatie controleert alleen de syntaxis, niet de types: code die door een typefout niet zou compileren, wordt toch goedgekeurd. JSX (.tsx) wordt niet ondersteund.