Visão Geral
A platafoma Latromi conta com um recurso de controle de versão e bloqueio de objetos que mantém a integridade e o histórico das alterações. Assim evitamos que um desenvolvedor “mate” as alterações um do outro, ao mesmo tempo que nos permite restaurar estados anteriores de um objeto.
É comum o desenvolvedor iniciar uma alteração e só liberar ela quando terminá-la. Ao final deste processo, é gerada uma revisão, que é uma espécie de “foto” do objeto naquele momento, sendo possível restaurar este estado a qualquer momento.
No entanto, durante este ciclo de desenvolvimento, pode ser necessário restaurar estados intermediários do objeto — alguma alteração feita após o bloqueio e antes da geração da revisão.
Solução
Para proporcionar a restauração destes estados intermediários do objeto, vamos criar os Checkpoints Locais, que são cópias do estado do objeto, geradas toda vez que o objeto for salvo.
Gerando o checkpoint
O processo de geração dos checkpoints será invisível ao desenvolvedor. Eles serão salvos automaticamente, nos formatos de serialização de cada tipo de objeto (json ou xml) na pasta %AppData%\..\Local\LATROMI\Client - {Instância}
.
Uma estrutura semelhante a esta deve ser utilizada:
Nome do usuário
Código de atualização do objeto
Data e Hora da alteração
Estado serializado do objeto
Antes de cada objeto ser salvo (CTRL+S), o estado deste atual deve ser armazenado na estrutura supracitada.
Restaurando um checkpoint
No cabeçalho de cada tipo de Objeto, deve ser adicionado um botão com ícone que remeta à histórico ou ponto de checagem
.
Ao clicar no botão, deve exibir uma listagem de todos os checkpoints locais, permitindo ao desenvolvedor selecionar 1 deles. Ao confirmar, o estado do objeto associado ao checkpoint deve ser carregado em tela. O estado só será salvo no banco de dados se o desenvolvedor chamar a rotina de salvamento.