Czym jest wspólna edycja kodu?

Wspólna edycja kodu pozwala kilku programistom pracować jednocześnie nad tym samym kodem, każdemu we własnej przeglądarce. Przydaje się podczas programowania w parach, rozmów kwalifikacyjnych, nauczania i wspólnego debugowania fragmentu kodu — bez konfigurowania wspólnego IDE ani przesyłania plików.

Aby kopie kodu u wszystkich były identyczne, zmiany są przesyłane jako niewielkie poprawki, a nie całe pliki, a kolejność ich zastosowania ustala jeden serwer. Zmiany wprowadzane w tym samym momencie są wzajemnie dopasowywane, dzięki czemu żadna z nich nie zostaje utracona.

Opis narzędzia

To narzędzie jest wspólnym edytorem JavaScript z podświetlaniem składni. Otwórz go i wyślij link: wszyscy uczestnicy pokoju edytują ten sam kod w czasie rzeczywistym, widzą nawzajem swoje kursory i mogą jednym kliknięciem sprawdzić poprawność lub sformatować kod dla wszystkich.

Sprawdzanie poprawności składni odbywa się za pomocą parsera Babel (w tym modułów ES i JSX). Formatowanie wykorzystuje Prettier, a sformatowany kod zastępuje tylko zmienione wiersze, więc tekst wpisywany w tym czasie przez inne osoby pozostaje na swoim miejscu.

Funkcje

  • Edycja w czasie rzeczywistym — zmiany wprowadzane przez wszystkich pojawiają się natychmiast i są łączone, gdy kilka osób pisze w tym samym momencie
  • Kursory i zaznaczenia — widać, gdzie znajduje się każda osoba; kolor kursora jest taki sam jak kolor wyświetlany obok jej nazwy
  • Sprawdź poprawność — sprawdza składnię JavaScript i pokazuje pierwszy błąd wraz z numerem wiersza i kolumny
  • Formatuj — formatuje kod za pomocą Prettier dla wszystkich uczestników pokoju
  • Kopiuj i pobierz — zachowaj kopię kodu jako plik .js

Jak to działa

Po otwarciu strony na serwerze synchronizacji tworzony jest pokój, a jego link pojawia się w pasku adresu. Każda osoba, która otworzy ten link, dołącza do tego samego pokoju i widzi ten sam dokument.

Każda zmiana jest wysyłana do serwera w postaci krótkiego opisu tego, co się zmieniło — które znaki zostały wstawione lub usunięte i w którym miejscu — zamiast całego tekstu. Serwer ustala kolejność zmian wprowadzanych przez wszystkich, przesuwa zmianę dokonaną na podstawie starszej wersji za te, które nadeszły wcześniej, a następnie przekazuje wynik pozostałym osobom. Wpisywany przez Ciebie tekst pojawia się od razu, a zmiany wprowadzane przez innych są z nim łączone, dzięki czemu tekst wpisywany przez nikogo nie ginie, gdy dwie osoby edytują dokument w tym samym momencie.

Dokument jest przechowywany w pamięci serwera tylko wtedy, gdy pokój jest otwarty. Po ponownym załadowaniu strony wracasz do pokoju i widzisz tekst w takim stanie, w jakim go pozostawiono; gdy wszyscy opuszczą pokój, pokój i jego tekst zostają usunięte.

Ograniczenia

  • W pokoju może przebywać maksymalnie 20 osób, a dokument może zawierać do 100 000 znaków.
  • Po zamknięciu pokoju nic nie jest przechowywane. Pobierz tekst, zanim ostatnia osoba opuści pokój.
  • Bardzo szybkie lub bardzo duże zmiany, takie jak wielokrotne wklejenie całego dokumentu z rzędu, są odrzucane, a edytor ponownie wczytuje tekst z pokoju.
  • Otwarcie linku do pokoju w innym edytorze współpracy (na przykład pokoju SQL w edytorze JavaScript) wyświetla komunikat „Nie znaleziono pokoju”: każdy pokój jest przypisany do jednego języka.
  • Sprawdzanie poprawności obejmuje tylko składnię. Kod nigdy nie jest uruchamiany.