[EXEMPLO] Agenda de Salas
This content is not available in English yet. It is shown in Portuguese.
![[EXEMPLO] Tela de reservas](/_astro/capa.BNK6EPp-_mVYnp.webp)
Problema
[EXEMPLO] O laboratório reservava salas por planilha compartilhada. Duas pessoas marcavam o mesmo horário e ninguém sabia quem tinha prioridade.
[INSERIR: problema real do projeto, em duas ou três frases]
Restrições
- [EXEMPLO] Um único servidor pequeno, sem orçamento para serviços pagos.
- [EXEMPLO] Usuários acostumados à planilha; a interface não podia exigir treinamento.
- [INSERIR: restrições reais]
Decisões e alternativas descartadas
[EXEMPLO] Fila de espera com bloqueio otimista no banco, em vez de travar a linha da reserva. A alternativa com fila de mensagens foi descartada por exigir mais um serviço rodando.
-- [EXEMPLO]
UPDATE reservas SET versao = versao + 1
WHERE id = $1 AND versao = $2;
[INSERIR: decisões reais e o que foi descartado]
O que deu errado
[EXEMPLO] Os avisos por e-mail caíam no spam nas primeiras semanas, porque o domínio não tinha SPF configurado.
[INSERIR: o que deu errado de verdade]
Resultado
[EXEMPLO] Conflitos de horário deixaram de acontecer. O número exato não foi medido.
[INSERIR: resultado real; números só se tiverem sido medidos]
O que faria diferente
[EXEMPLO] Configuraria o e-mail antes do lançamento e escreveria testes para a fila de espera desde o início.
[INSERIR: o que faria diferente]