[Conceito] – Idempotência

Conteúdo original nessa thread to twitter.

Se sua mãe te mandasse tomar banho mais de uma vez, vc ia mesmo tendo acabado de tomar?

Não né?

Então pq suas aplicações não são idempotentes? Ou são?

Dá uma olhada aqui pra alguns exemplos simples.

Pr…


This content originally appeared on DEV Community and was authored by Francisco Zanfranceschi

Conteúdo original nessa thread to twitter.

Se sua mãe te mandasse tomar banho mais de uma vez, vc ia mesmo tendo acabado de tomar?

Não né?

Então pq suas aplicações não são idempotentes? Ou são?

Dá uma olhada aqui pra alguns exemplos simples.

Processamento de arquivos:

Colocar o mesmo arquivo pra processar mais de uma vez, sem cagar tudo (duplicar coisas, por exemplo). A idempotência pode ser do arquivo como um todo ou linha a linha.

Banco de dados:

UPDATE saldo SET valor = 200 WHERE valor = 100 and id = 1;

Assim você garante que o saldo vai sair do estado que você sabia pra outro estado também conhecido. Se 'valor' mudou no meio do caminho, não vai dar ruim.

Processamentos de mensagens (APIs HTTP, mensagens de filas, etc.)

Isso pode ser mais chato, mas você pode exigir uma identificação de correlação (correlation id) de quem produz a mensagem ou faz a chamada.

Faz um exercício mental de como evitar um pagamento duplicado, p. ex.

Agora aquela parte que eu sei que você curte: decorar coisas buzinísticas pra arrasar nas festas.

Mostra isso pros amigos, ó:

f(x) = f(f(x))

10 * 1 = 10

34 + 0 = 34

Tudo isso aí são exemplos de idempotência na matemática (* 1, + 0).

Inventa uma cantada com isso, inventa. 💙

"Acabei de observar uma propriedade idempotente em ti, ó! bela mulher: sua beleza somada ao tempo, continua apenas sua beleza! Este – que é tão imperdoável – nada lhe afeta."

(Sério, eu não falaria isso. Sei lá, talvez bêbado.)


This content originally appeared on DEV Community and was authored by Francisco Zanfranceschi


Print Share Comment Cite Upload Translate Updates
APA

Francisco Zanfranceschi | Sciencx (2022-03-31T15:03:36+00:00) [Conceito] – Idempotência. Retrieved from https://www.scien.cx/2022/03/31/conceito-idempotencia/

MLA
" » [Conceito] – Idempotência." Francisco Zanfranceschi | Sciencx - Thursday March 31, 2022, https://www.scien.cx/2022/03/31/conceito-idempotencia/
HARVARD
Francisco Zanfranceschi | Sciencx Thursday March 31, 2022 » [Conceito] – Idempotência., viewed ,<https://www.scien.cx/2022/03/31/conceito-idempotencia/>
VANCOUVER
Francisco Zanfranceschi | Sciencx - » [Conceito] – Idempotência. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/03/31/conceito-idempotencia/
CHICAGO
" » [Conceito] – Idempotência." Francisco Zanfranceschi | Sciencx - Accessed . https://www.scien.cx/2022/03/31/conceito-idempotencia/
IEEE
" » [Conceito] – Idempotência." Francisco Zanfranceschi | Sciencx [Online]. Available: https://www.scien.cx/2022/03/31/conceito-idempotencia/. [Accessed: ]
rf:citation
» [Conceito] – Idempotência | Francisco Zanfranceschi | Sciencx | https://www.scien.cx/2022/03/31/conceito-idempotencia/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.