Callbacks do ActiveRecord: o mal secreto ou apenas mal compreendidos?
Um dos assuntos que mais levantados nas primeiras semanas de um novo desenvolvedor na Plataformatec é sobre o uso de callbacks do ActiveRecord. Neste post, vou descrever um cenário prático que oriente quando o uso de callbacks é bem-vindo ou quando eles deveriam ser evitados. A ideia é ter, ao final, um modelo mental que indique quando seguir um dos caminhos possíveis. (spoiler: o modelo mental vai ser fundamentado em uma boa prática de design de software).
Um exemplo prático
Imagine que, em um software fictício, exista uma funcionalidade "registrar pessoas" com os seguintes requisitos:
Os dados de uma pessoa devem ser persistidos no banco de dados (e-mail e CPF, ambos como String).
O CPF deve ser persistido apenas como dígitos (isto é, caso o input do usuário siga o formato "999.999.999-99", esse valor deve ser persistido como "99999999999").
FWIW: I'm not the author of the content presented here (which is an outline from Edmond Lau's book). I've just copy-pasted it from somewhere over the Internet, but I cannot remember what exactly the original source is. I was also not able to find the author's name, so I cannot give him/her the proper credits.
“Computer Science is the first engineering discipline in which the complexity
of the objects created is limited solely by the skill of the creator, and not
by the strength of raw materials.”