Dê uma Constituição à sua Base de Código
Arquitetura na cabeça das pessoas não sobrevive a agentes de codificação.
Por anos, as regras da base de código existiram como conhecimento tribal. Engenheiros seniores sabiam quais camadas podiam se comunicar entre si. Eles sabiam quais dependências eram proibidas. Novos engenheiros aprendiam quebrando coisas e sendo corrigidos em revisões.
Isso funciona para humanos porque humanos constroem contexto ao longo do tempo. Agentes não constroem contexto. Eles só sabem o que conseguem ver.
Se uma regra não estiver escrita, um agente pensará que a regra não existe. Já vi agentes conectarem camadas internas a camadas externas. Eles introduzem dependências que evitamos especificamente. O código funciona, mas a arquitetura se desvia.
Você deve transformar sua arquitetura de folclore em lei.
Uma constituição não é documentação. A documentação explica como um sistema funciona hoje. Uma constituição define o que um sistema tem permissão para se tornar.
Sua constituição deve focar em coisas que sobrevivem a uma grande refatoração. Ela deve incluir:
- As leis e invariantes
- Limites do sistema
- Premissas fundamentais
As melhores constituições são curtas, restritivas e lentas para mudar.
Não vincule a arquitetura a estruturas de diretórios. Diretórios mudam. Vincule a arquitetura a responsabilidades. Um modelo de domínio continua sendo um modelo de domínio, independentemente de sua pasta.
Toda lei precisa de um motivo. Uma regra sem uma justificativa é deletada por alguém que não a entende. A regra ensina o comportamento. O motivo ensina o julgamento.
O mais importante: você deve aplicar suas leis.
Instruções são orientações. A aplicação é a realidade. Um agente ou um humano acabará ignorando uma instrução escrita.
Se uma regra for crítica, não dependa de prosa. Coloque-a no seu CI. Coloque-a em um linter. Coloque-a em um validador.
Toda regra importante precisa de duas formas:
- A versão humana: Esta explica a intenção.
- A versão de máquina: Esta garante a conformidade.
Não se trata de adicionar processos. Trata-se de adicionar alavancagem. Quando a arquitetura é aplicável, você não precisa inspecionar cada decisão. A máquina faz isso por você.
Você pode delegar mais trabalho quando pode confiar nos limites.
Como começar:
Preste atenção em suas revisões. Toda vez que você disser "nós não fazemos isso porque", você encontrou uma lei.
Comece com algumas regras:
- Direção das dependências
- Manipulação de segredos
- Contratos críticos
- Propriedade de limites
Escreva a regra. Escreva o motivo. Em seguida, adicione a verificação de código que torna impossível quebrá-la.
Uma lei sem aplicação é apenas uma sugestão.
Fonte: https://dev.to/miteshethos/give-your-codebase-a-constitution-3k4h
Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi