Cache e invalidacao por evento num site headless

Guardar a resposta e facil. Saber quando deita-la fora e o que separa um site rapido de um site errado.

  • Development
  • Alisson Machado
  • 1 min read

Etiquetar antes de guardar

Um tempo de expiracao fixo escolhe entre servir depressa e servir certo, e escolhe mal nos dois extremos.

A alternativa e etiquetar cada resposta pelo que a compoe, e deixar o CMS avisar quando algo com essa etiqueta muda.

A partir dai, publicar deixa de exigir um novo build e passa a ser um pedido que invalida o que ficou velho.

A fronteira antes da ferramenta

A escolha da stack e a decisao mais visivel e raramente a mais importante. O que decide se um projeto envelhece bem e onde estao as fronteiras: o que sabe de que, e o que acontece quando uma das pontas muda.

Uma camada de dominio que nao conhece o CMS pode trocar de CMS. Uma que o conhece nao pode — e a diferenca nao se ve no primeiro mes, ve-se no segundo ano.

Por isso o teste que fazemos a qualquer desenho e sempre o mesmo: se amanha isto mudar, quantos ficheiros tenho de abrir?

O que o teste automatico deve provar

Um teste que repete a implementacao nao prova nada: falha quando o codigo muda e passa quando o comportamento parte. Custa a escrever, custa a manter, e da uma confianca que nao existe.

O que vale a pena fixar sao invariantes — coisas que tem de ser verdade seja qual for a implementacao. Uma pagina fora de limites cai na ultima que existe. Um filtro desconhecido nao rebenta. Um bloco oferecido no editor tem renderer.

Escritos assim, os testes sobrevivem a refactorizacoes e continuam a apanhar o que interessa.

Partilhar este artigo

vamos trabalhar juntos

agendar contacto