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 pairprogramming, interviews, 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 doorgegeven 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 JavaScript-editor met syntaxiskleuring. Open de editor en deel de link: iedereen in de ruimte bewerkt dezelfde code in realtime, ziet de cursors van anderen en kan met één klik de code voor iedereen valideren of formatteren.

Bij het valideren controleert de Babel-parser de syntax (inclusief ES-modules en JSX). Voor het formatteren wordt Prettier gebruikt. De geformatteerde code vervangt alleen de gewijzigde regels, zodat tekst die anderen ondertussen typen op zijn plek blijft staan.

Functies

  • Realtime bewerken - wijzigingen van iedereen verschijnen direct en worden samengevoegd wanneer mensen tegelijkertijd typen
  • Cursors en selecties - zie waar iedereen bezig is, in de kleur die naast diens naam wordt weergegeven
  • Valideren - controleert de JavaScript-syntax en toont de eerste fout met de regel en kolom
  • Formatteren - formatteert de code voor iedereen in de ruimte opnieuw met Prettier
  • Kopiëren en downloaden - bewaar een kopie van de code als .js-bestand

Hoe het werkt

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

Elke wijziging wordt naar de server gestuurd als een korte beschrijving van wat er is veranderd - welke tekens waar zijn ingevoegd of verwijderd - in plaats van als de volledige tekst. De server zet de wijzigingen van iedereen in één volgorde, verplaatst een wijziging die op een oudere versie is gebaseerd naar achteren, voorbij de wijzigingen die eerder zijn gemaakt, en stuurt het resultaat door naar alle anderen. Je eigen invoer verschijnt meteen en wijzigingen van anderen worden eromheen samengevoegd, zodat niemands invoer 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 weer in de ruimte terecht met de tekst zoals die was; zodra iedereen de ruimte heeft verlaten, verdwijnen de ruimte en de tekst.

Beperkingen

  • Een ruimte biedt plaats aan maximaal 20 mensen en 100.000 tekens.
  • Er wordt niets opgeslagen nadat een ruimte is gesloten. Download de tekst voordat de laatste persoon vertrekt.
  • Zeer snelle of grote wijzigingen, zoals het document meerdere keren achter elkaar in zijn geheel plakken, worden geweigerd en de tekst in de ruimte wordt opnieuw geladen in de editor.
  • Als je een ruimtelink opent in een andere gezamenlijke editor (bijvoorbeeld een SQL-ruimte in de JavaScript-editor), verschijnt de melding "Ruimte niet gevonden": elke ruimte hoort bij één taal.
  • Bij het valideren wordt alleen de syntax gecontroleerd. De code wordt nooit uitgevoerd.