← voltar ao blog

Planning Poker em tempo real com Socket.IO

$ cat sumario.txt

Tempo real parece complicado até você desenhar os eventos certos. No Sprint Deck, tudo gira em torno de salas e de um punhado de mensagens bem definidas.

# Os eventos

A regra que me salvou: o servidor é a fonte da verdade. O cliente só emite intenções e reage ao estado que volta.

socket.on("vote:cast", ({ user, card }) => {
  room.votes[user] = card
  io.to(room.id).emit("room:state", serialize(room))
})

# Consenso

Quando todo mundo vota, calculo a moda e o desvio para mostrar se o time está alinhado ou se vale uma discussão.

Real-time bom é aquele que você nem percebe: a tela só está sempre certa.

O resultado é uma mesa que parece mágica, mas é só um bom contrato de eventos.

← voltar ao blog