Interface Otimista - O que é?
Imagine que ao desenvolver uma aplicação de gerenciamento de tarefas, uma das funcionalidades pode ser a atualização do título de uma tarefa. Nesse caso, a probabilidade de algo dar errado é mínima, já que não há restrições complexas associadas ao título da tarefa. Portanto, podemos adotar uma abordagem otimista para essa operação.
Na abordagem otimista, não é necessário aguardar pela confirmação do back-end para refletir a mudança na interface do usuário. Assim que o front-end envia uma requisição ao back-end para atualizar o título da tarefa, o novo valor é imediatamente apresentado na tela. Se ocorrer algum erro durante a requisição, simplesmente revertamos para o título anterior exibido na tela. Caso contrário, mantemos a modificação realizada.
Essa abordagem proporciona uma experiência de usuário mais fluida, eliminando a espera desnecessária e mantendo a interface responsiva, enquanto assegura a integridade dos dados.
Veja esse exemplo que encontrei na internet de um TODO utilizando essa o conceito de interface otimista para criação de novas tarefas:
Repare que no momento em que ele adiciona, o item já aparece!
Agora dá uma olhada nessa versão com loading state, que seria a maneira tradicional:
Viu a diferença?
A abordagem é chamada de "otimista" porque assume que as coisas vão dar certo desde o início, sem esperar pela confirmação do servidor. Em vez disso, ela atualiza a interface imediatamente, proporcionando uma experiência mais rápida e responsiva para o usuário.
Mas claro que essa abordagem possui seu lado bom e ruim, como tudo na vida! Então cabe a você decidir quando utilizar.