14-nif-validate-locally

Validar o NIF antes da rede.

14-nif-validate-locally

Validar o NIF antes da rede.

A maioria dos SDKs de faturação envia o NIF à API, espera, e deixa o servidor decidir. A ida e volta custa centenas de milissegundos e um spinner no ecrã do utilizador. O resultado, na maioria das vezes, é "NIF inválido" — algo que eu podia saber localmente.

O NIF português tem um checksum. O CPF brasileiro também. A maioria dos identificadores nacionais também. A validação é um pequeno cálculo módulo 11 — microssegundos em qualquer máquina.

No vendus-python corro essa verificação antes da chamada à API. Três consequências:

→ Input inválido falha em microssegundos, não em latência de rede.
→ A mensagem de erro é precisa — "checksum inválido, posição 8" — em vez de um 400 vago do gateway.
→ Menos chamadas à API no total. Conta mais barata à escala.

Este é o padrão de validar barato antes de validar caro, e aplica-se muito além de NIFs. IBAN, ISBN, MAC, UUID, schemas JSON. Tudo o que pode falhar localmente deve falhar localmente.

O princípio numa linha: validar barato antes de validar caro.

Qual é a ida-e-volta de rede mais inútil no teu código?

Repo: github.com/bilouro/vendus-python

P.S. Novo post tech toda a quarta-feira aqui no LinkedIn.

#OpenSource #Python #SoftwareArchitecture

Comentários