Grandes empresas pequenos programadores

Da mesma forma que não existe uma mulher ligeiramente grávida, ou um homem meio Padre, em computação há operações que ou ocorrem totalmente ou não ocorrem. São conhecidas como transações.

O exemplo clássico de transação é uma operação bancária onde A saca dinheiro no caixa eletrônico. As seguintes operações devem ocorrer de forma atômica ou seja indivisíveis:

– Conferir a senha e o cartão

– Aprovar o valor

– Remover o valor da conta do cliente

– Entregar o dinheiro para o cliente.

Se uma destas operações falhar todas elas tem que ser desfeitas como se nunca tivessem ocorrido. Qualquer aluno de computação ou que tenha o mínimo conhecimento de Banco de Dados sabe disto.

Bem, pelo menos deveria saber….  O Banco Santander é um dos maiores bancos do mundo, no entanto já não é a primeira vez que vejo um bug horrível no sistema deles.

Hoje fui sacar dinheiro no caixa eletrônico de uma agência do Santander: senha, código de segurança, pedi 100 paus, confirma, abençoa, autoriza de novo, tem certeza mesmo, e pimba autorizado.

Ouvi o ruído caracteristico da máquina contando dinheiro e para minha surpresa aparece uma tela do Windows XP avisando que o sistema estava sendo reiniciado.

Esperei um pouco para ver se voltava, como demorasse fui ao caixa ao lado para sacar o dinheiro. Saquei o dinheiro e ia indo embora quando tive um estalo: será que eles debitaram da minha conta os primeiros 100 paus? Minha cabeça de engenheiro de computação disse:

– Claro que não, transações são atômicas.

No entanto como sou doutor em Medicina também, meu alter ego disse: vai lá e confere. Tirei um extrato e dito e feito, dois saques de cem paus e recebi apenas um deles.

Agora tenho que ir discutir com o gerente para recuperar meu suado dinherinho.

Para quem duvida, tirei algumas fotos.

Transação Maluca

Santander #Fail

19 comentários em “Grandes empresas pequenos programadores”