Aggiornamenti di prodotto

Perché l'editing collaborativo basato su CRDT vince per i colloqui di live coding

ClarityHire Team(Editorial)3 min read

Due approcci alla collaborazione in tempo reale

Quando due persone modificano lo stesso file simultaneamente, l'editor deve mergerare i loro cambiamenti senza perdere dati o causare flicker strano. Esistono due approcci principali:

  • Operational Transform (OT). Ogni modifica è inviata come operazione; un server centrale trasforma le op in ingresso per applicarle nell'ordine giusto. Usato da Google Docs.
  • Conflict-free Replicated Data Types (CRDT). Ogni modifica porta abbastanza metadati (tipicamente un ID univoco e un orologio logico) perché due qualunque client convergano allo stesso stato indipendentemente dall'ordine di arrivo. Usato da Figma, Linear e la maggior parte degli strumenti collab moderni.

Per i colloqui di live coding in particolare, i CRDT vincono.

Perché i CRDT vincono per i colloqui

I colloqui avvengono su Wi-Fi d'albergo, hotspot mobili e reti aziendali con proxy aggressivi. Tre cose vanno male:

  1. Brevi disconnessioni. Un blip di rete di 4 secondi a metà digitazione.
  2. Latenza asimmetrica. I keystroke della candidata raggiungono il server in 80ms; quelli dell'intervistatrice in 400ms.
  3. Caos al reconnect. Entrambi i lati tornano online con stato divergente.

Gli editor OT-based richiedono che il server medi ogni operazione. Quando la rete fa glitch, le modifiche si accumulano, e i reconnect spesso producono flicker visibile, caratteri persi o — caso peggiore — perdita silenziosa di stato. Le candidate si innervosiscono, le intervistatrici incolpano la candidata.

I CRDT gestiscono tutti e tre gli scenari silenziosamente. Ogni client può applicare modifiche locali immediatamente; i merge avvengono al reconnect senza impatto visibile all'utente. L'editor si sente offline-first — il che conta più di quanto le persone realizzino quando stai anche girando check di integrità sopra il layer di editing.

Perché Yjs + Monaco sono diventati lo standard

Yjs è la libreria CRDT più battle-tested per il testo. Si abbina pulitamente con Monaco — l'editor che alimenta VS Code — tramite y-monaco. La combinazione ti dà:

  • L'esperienza completa dell'editor di VS Code (IntelliSense, multi-cursore, tutti i keybinding)
  • Collab in tempo reale che funziona su reti cattive
  • Cursori multipli, sharing della selezione, awareness presence
  • Battle-tested a scala

ClarityHire è costruita su Monaco + Yjs esattamente per queste ragioni. Le modifiche di codice della candidata arrivano all'intervistatrice in meno di 50ms su una connessione sana, e sopravvivono ai blip di rete che farebbero crollare un editor server-mediato. Questo conta tanto per i round di pair programming quanto per i tradizionali colloqui di live coding, dove qualunque flicker è letto come colpa della candidata.

Cosa significa nella pratica

Se stai valutando una piattaforma di live coding, simula una rete cattiva durante il tuo trial. Throttle a 3G nei DevTools, droppa la connessione per 5 secondi, guarda cosa succede. Gli strumenti CRDT-based si recuperano invisibilmente. Altri no.

yjscrdtmonaco editorediting collaborativo