Método

Como eu trabalho

ligações 9

Regra em dado, não em código

Sempre que a regra é do negócio e muda na velocidade do negócio, ela sai do código e vira configuração. Aconteceu na política de risco dos canais de pagamento e no motor de paradas da fábrica. O custo é que a configuração vira parte crítica do sistema e precisa de cuidado próprio; o retorno é que o negócio deixa de esperar a fila de desenvolvimento.

Isso tem limite, e reconhecer o limite é parte da regra. Em comissionamento eu decidi o contrário, porque ali o que varia é a fórmula e não quais etapas se aplicam. Ver ADR 4 — Uma implementação por canal, não um motor parametrizado.

Extrair depois do terceiro caso

Abstração criada por antecipação quase sempre está errada. Só o terceiro uso mostra o que é essencial e o que era acidente do primeiro. As 8 bibliotecas das quais sou autor principal e os 5 pacotes públicos nasceram todos de código que já rodava em mais de um lugar.

Estado derivado, nunca atribuído

Quando um agregado tem estado que depende das suas partes, esse estado é calculado, não escrito. Quem escreve status = concluido cria a chance de o status mentir. Custa uma função de recálculo e elimina uma categoria inteira de bug de suporte.

Idempotência em tudo que vem de fora

Integração externa reenvia, callback chega fora de ordem, robô reprocessa fila. Toda operação que recebe chamada de terceiro precisa responder a mesma coisa se for chamada duas vezes.

Um tradutor por plataforma, não um barramento genérico

Barramento único parece economia e vira gargalo: todo time espera a fila de um time, e a incompatibilidade de uma plataforma contamina o modelo comum. Um tradutor dedicado é mais código e menos acoplamento.

Dizer o que eu não sei

Perfil sem limite declarado obriga quem lê a descobrir os limites sozinho, e a primeira descoberta contamina tudo que veio antes. Prefiro que o limite esteja escrito antes de alguém precisar perguntar.

Ver também

Projetar antes de implementar · Como eu depuro · Revisão de código e padrão

Pablo Mickael Quevedo Senior Software Engineer · autor principal de 32 sistemas · Novo Hamburgo, RS

9 notas ligadas a esta

A vizinhança desta estrela no céu do portfólio.

Explorar a galáxia →