Τι είναι η συνεργατική επεξεργασία κώδικα;

Η συνεργατική επεξεργασία κώδικα επιτρέπει σε πολλούς προγραμματιστές να εργάζονται ταυτόχρονα στον ίδιο κώδικα, ο καθένας από το δικό του πρόγραμμα περιήγησης. Είναι χρήσιμη για τον προγραμματισμό σε ζεύγη, τις συνεντεύξεις, τη διδασκαλία και τον από κοινού εντοπισμό σφαλμάτων σε ένα απόσπασμα κώδικα, χωρίς να χρειάζεται να ρυθμίσετε ένα κοινό IDE ή να ανταλλάσσετε αρχεία.

Για να παραμένουν πανομοιότυπα τα αντίγραφα όλων, οι αλλαγές μεταδίδονται ως μικρές τροποποιήσεις και όχι ως ολόκληρα αρχεία, ενώ ένας διακομιστής καθορίζει τη σειρά με την οποία εφαρμόζονται. Οι τροποποιήσεις που γίνονται ταυτόχρονα προσαρμόζονται μεταξύ τους, ώστε να διατηρούνται και οι δύο.

Περιγραφή εργαλείου

Αυτό το εργαλείο είναι ένας κοινόχρηστος επεξεργαστής TypeScript με επισήμανση σύνταξης. Ανοίξτε τον και στείλτε τον σύνδεσμο: όλοι στον χώρο επεξεργάζονται τον ίδιο κώδικα σε πραγματικό χρόνο, βλέπουν τους δρομείς των άλλων και μπορούν με ένα κλικ να ελέγξουν ή να μορφοποιήσουν τον κώδικα για όλους.

Ο έλεγχος εγκυρότητας εξετάζει τη σύνταξη με τον αναλυτή Babel και το πρόσθετό του για TypeScript, ώστε να αναγνωρίζονται οι επισημάνσεις τύπων, οι διεπαφές, οι γενικοί τύποι και οι απαριθμήσεις. Η μορφοποίηση χρησιμοποιεί τον αναλυτή TypeScript του Prettier και ο μορφοποιημένος κώδικας αντικαθιστά μόνο τις γραμμές που άλλαξαν, ώστε ό,τι πληκτρολογούν οι άλλοι στο μεταξύ να παραμένει στη θέση του.

Δυνατότητες

  • Επεξεργασία σε πραγματικό χρόνο - οι αλλαγές όλων εμφανίζονται αμέσως και συγχωνεύονται όταν οι χρήστες πληκτρολογούν ταυτόχρονα
  • Δρομείς και επιλογές - δείτε πού βρίσκεται ο καθένας, με το χρώμα που εμφανίζεται δίπλα στο όνομά του
  • Έλεγχος εγκυρότητας - ελέγχει τη σύνταξη TypeScript και εμφανίζει το πρώτο σφάλμα, μαζί με τη γραμμή και τη στήλη του
  • Μορφοποίηση - μορφοποιεί ξανά τον κώδικα με το Prettier για όλους στον χώρο
  • Αντιγραφή και λήψη - κρατήστε ένα αντίγραφο του κώδικα ως αρχείο .ts

Πώς λειτουργεί

Όταν ανοίγει η σελίδα, δημιουργεί έναν χώρο στον διακομιστή συγχρονισμού και τοποθετεί τον σύνδεσμό του στη γραμμή διεύθυνσης. Όλοι όσοι ανοίγουν τον σύνδεσμο συμμετέχουν στον ίδιο χώρο και βλέπουν το ίδιο έγγραφο.

Κάθε αλλαγή αποστέλλεται στον διακομιστή ως σύντομη περιγραφή του τι άλλαξε - ποιοι χαρακτήρες εισήχθησαν ή διαγράφηκαν και σε ποιο σημείο - αντί για ολόκληρο το κείμενο. Ο διακομιστής ταξινομεί τις αλλαγές όλων σε μία ενιαία σειρά, μετακινεί μια αλλαγή που έγινε πάνω σε παλαιότερη έκδοση μετά από εκείνες που προηγήθηκαν και στέλνει το αποτέλεσμα σε όλους τους υπόλοιπους. Ό,τι πληκτρολογείτε εμφανίζεται αμέσως, ενώ οι αλλαγές των άλλων συγχωνεύονται γύρω του, ώστε να μη χάνεται η πληκτρολόγηση κανενός όταν δύο άτομα επεξεργάζονται το κείμενο ταυτόχρονα.

Το έγγραφο διατηρείται στη μνήμη του διακομιστή μόνο όσο ο χώρος παραμένει ανοιχτός. Αν φορτώσετε ξανά τη σελίδα, επιστρέφετε στον χώρο με το κείμενο όπως ήταν· μόλις αποχωρήσουν όλοι, ο χώρος και το κείμενό του διαγράφονται.

Περιορισμοί

  • Κάθε χώρος υποστηρίζει έως 20 άτομα και 100.000 χαρακτήρες.
  • Δεν αποθηκεύεται τίποτα μετά το κλείσιμο ενός χώρου. Κατεβάστε το κείμενο πριν αποχωρήσει το τελευταίο άτομο.
  • Οι πολύ γρήγορες ή πολύ μεγάλες αλλαγές, όπως η επικόλληση ολόκληρου του εγγράφου πολλές φορές στη σειρά, απορρίπτονται και ο επεξεργαστής φορτώνει ξανά το κείμενο του χώρου.
  • Αν ανοίξετε έναν σύνδεσμο χώρου σε διαφορετικό συνεργατικό επεξεργαστή (για παράδειγμα, έναν χώρο SQL στον επεξεργαστή JavaScript), εμφανίζεται το μήνυμα «Ο χώρος δεν βρέθηκε»: κάθε χώρος αντιστοιχεί σε μία γλώσσα.
  • Ο έλεγχος εγκυρότητας εξετάζει μόνο τη σύνταξη, όχι τους τύπους: ο κώδικας που δεν θα μεταγλωττιζόταν λόγω σφάλματος τύπου εξακολουθεί να περνά τον έλεγχο. Το JSX (.tsx) δεν υποστηρίζεται.