Was ist gemeinschaftliches Bearbeiten von Code?

Beim gemeinschaftlichen Bearbeiten von Code können mehrere Entwickler gleichzeitig am selben Code arbeiten, jeder im eigenen Browser. Das ist nützlich für Pair Programming, Vorstellungsgespräche, Unterricht und gemeinsames Debuggen eines Codeausschnitts – ohne eine gemeinsame IDE einzurichten oder Dateien hin- und herzuschicken.

Damit alle dieselbe Version haben, werden Änderungen als kleine Bearbeitungen statt als ganze Dateien übertragen. Ein Server legt fest, in welcher Reihenfolge sie angewendet werden. Gleichzeitig vorgenommene Änderungen werden aufeinander abgestimmt, sodass beide erhalten bleiben.

Toolbeschreibung

Dieses Tool ist ein gemeinsam genutzter TypeScript-Editor mit Syntaxhervorhebung. Öffne ihn und teile den Link: Alle im Raum bearbeiten denselben Code in Echtzeit, sehen die Cursor der anderen und können den Code mit einem Klick für alle überprüfen oder formatieren.

Die Überprüfung kontrolliert die Syntax mit dem Babel-Parser und seinem TypeScript-Plugin, sodass Typannotationen, Schnittstellen, Generics und Enums erkannt werden. Die Formatierung verwendet den TypeScript-Parser von Prettier. Der formatierte Code ersetzt nur die geänderten Zeilen, sodass Eingaben anderer währenddessen erhalten bleiben.

Funktionen

  • Bearbeitung in Echtzeit – Änderungen aller Beteiligten erscheinen sofort und werden zusammengeführt, auch wenn mehrere gleichzeitig tippen
  • Cursor und Markierungen – Sieh, wo sich die einzelnen Personen befinden; die Farbe wird neben ihrem Namen angezeigt
  • Überprüfen – Kontrolliert die TypeScript-Syntax und zeigt den ersten Fehler mit Zeile und Spalte an
  • Formatieren – Formatiert den Code mit Prettier für alle im Raum neu
  • Kopieren und herunterladen – Sichere eine Kopie des Codes als .ts-Datei

So funktioniert es

Beim Öffnen der Seite wird auf dem Synchronisierungsserver ein Raum erstellt und der Link in die Adressleiste eingefügt. Alle, die den Link öffnen, treten demselben Raum bei und sehen dasselbe Dokument.

Jede Änderung wird als kurze Beschreibung der Änderungen an den Server gesendet – welche Zeichen an welcher Stelle eingefügt oder gelöscht wurden – statt den gesamten Text zu übertragen. Der Server ordnet die Änderungen aller Beteiligten in einer gemeinsamen Reihenfolge an, verschiebt Änderungen, die auf einer älteren Version basieren, hinter die zuvor vorgenommenen Änderungen und gibt das Ergebnis an alle anderen weiter. Deine eigenen Eingaben werden sofort angezeigt, und Änderungen anderer werden darum herum zusammengeführt. So gehen keine Eingaben verloren, wenn zwei Personen gleichzeitig bearbeiten.

Das Dokument wird nur so lange im Arbeitsspeicher des Servers gehalten, wie der Raum geöffnet ist. Wenn du die Seite neu lädst, gelangst du wieder in den Raum und siehst den Text in seinem aktuellen Stand. Sobald alle den Raum verlassen haben, werden der Raum und sein Text gelöscht.

Einschränkungen

  • Ein Raum fasst bis zu 20 Personen und 100.000 Zeichen.
  • Nach dem Schließen eines Raums werden keine Daten gespeichert. Lade den Text herunter, bevor die letzte Person den Raum verlässt.
  • Sehr schnelle oder sehr umfangreiche Änderungen, etwa wenn das gesamte Dokument mehrmals hintereinander eingefügt wird, werden abgelehnt. Der Editor lädt dann den Text des Raums erneut.
  • Wenn du einen Raumlink in einem anderen gemeinschaftlichen Editor öffnest (zum Beispiel einen SQL-Raum im JavaScript-Editor), wird „Raum nicht gefunden“ angezeigt: Jeder Raum ist an eine Sprache gebunden.
  • Die Überprüfung kontrolliert nur die Syntax, nicht die Typen: Code, der aufgrund eines Typfehlers nicht kompiliert werden kann, besteht die Überprüfung trotzdem. JSX (.tsx) wird nicht unterstützt.