AULA 15 / 61 · ACESSO GRATUITO

Fonte única de verdade

Graciliano TolentinoEngenharia Caracol · Edição 2.0
Nesta aula
  1. Autoridade por assunto
  2. Mapa preenchido da Oficina Caracol
  3. Um conflito resolvido sem esconder a mudança
  4. Dados públicos não são o arquivo inteiro
  5. Condição de avanço e exercício
  6. Referências para aprofundamento

Autoridade por assunto

Há um preço no arquivo de dados, outro numa planilha e outro escrito diretamente na página. Qual deve orientar a correção? A fonte única de verdade é uma regra de autoridade para um domínio de informação. Domínio, neste contexto, é um assunto delimitado: requisitos, registros de catálogo, decisão arquitetural ou resultado de execução.

Não se trata de reunir tudo num arquivo enorme. Requisitos explicam o que o produto deve fazer; dados fornecem os registros; código realiza transformações; evidências mostram o que foi observado. São autoridades distintas para perguntas distintas. A implementação atual não pode revogar silenciosamente um requisito só porque já funciona de outra maneira.

Cópias podem ser necessárias. O navegador recebe uma representação pública dos casos e a usa para desenhar cartões. Essa representação é derivada: não deve virar um segundo cadastro editado manualmente. Uma cópia precisa de origem reconhecível e de uma política de atualização.

Mapa preenchido da Oficina Caracol

DomínioFonte responsávelConsumidor ou derivaçãoRegra de atualização
Necessidades e aceitespratica/docs/requisitos.mdTestes e decisões de versão.Mudança aprovada pelo papel de produto antes de alterar o acordo.
Registros de exemplopratica/data/casos.jsonMódulo de catálogo.Alterar a origem, validar e rever cenários afetados.
Contrato públicoExports documentados e interface HTTP acordada.Interface do navegador e testes de integração.Rever consumidores quando mudar entrada ou saída.
Comandospratica/package.json, explicados no README.Execução local e instruções didáticas.Conferir scripts e documentação na mesma mudança.
DecisõesRegistro ADR em pratica/docs.Desenvolvimento e manutenção.Preservar histórico e explicitar a decisão que substitui outra.
Resultados observadosRegistro de evidência com revisão e ambiente.Gate e continuidade.Acrescentar nova execução; não reescrever falha antiga como sucesso.

A tabela distribui autoridade sem afirmar que cada documento está sempre atualizado. Se a documentação de um contrato diverge do código, existe uma inconsistência a resolver; o mapa aponta os responsáveis e as verificações necessárias, não elimina a investigação.

Um conflito resolvido sem esconder a mudança

Considere este cenário fornecido: data/casos.json registra Oficina de testes como ativa; a página mostra um cartão antigo marcado como indisponível. A pessoa responsável pelo conteúdo confirma que o registro oficial está correto. A correção deve remover a cópia manual da interface e fazê-la consumir a saída pública. Alterar o JSON para combinar com o cartão apenas faria a origem imitar uma cópia desatualizada.

Há outro conflito possível: o dado marca um serviço como inativo e a resposta pública o revela. Nesse caso, a origem não precisa ser corrigida para ativo. É a transformação que contradiz REQ-002. Identificar a pergunta é essencial: estamos investigando o estado do serviço ou o cumprimento da regra de publicação?

  • Liste os assuntos que precisam de uma autoridade.
  • Aponte a origem e quem pode alterá-la.
  • Identifique cópias e consumidores que dependem dela.
  • Defina como detectar inconsistências e quem decide o conflito.
  • Ao mudar a origem ou o contrato, atualize as derivações e repita as verificações afetadas.

Dados públicos não são o arquivo inteiro

O contrato real do módulo usa registros com id, titulo, descricao e ativo. A função listarAtivos devolve somente os campos públicos id, titulo e descricao dos serviços ativos. A fonte pode conter serviços inativos para manter o acervo didático, mas eles não precisam chegar ao navegador. A seleção deve acontecer antes da resposta pública; esconder cartões com CSS não protege um dado já entregue.

ErroReparo dirigido
Editar uma lista duplicada na páginaConsumir a representação produzida a partir da origem.
Escolher o arquivo mais recente como autoridadeConsultar o mapa e o histórico; data de alteração não concede autoridade.
Guardar resultado sem revisãoAssociar evidência à versão que realmente foi executada.
Resolver divergência em silêncioRegistrar causa, decisão e consumidores afetados.

Condição de avanço e exercício

Uma mudança de informação pode avançar quando a origem legítima, o responsável e as derivações afetadas estão identificados. Ao encerrar, confirme que a interface representa a fonte através da regra correta. Não basta eliminar diferenças visuais: é preciso preservar a finalidade de cada domínio.

Exercício: o JSON mantém c02 inativo; um cartão escrito no HTML mostra c02; o README afirma que a página usa a API. Indique três perguntas de investigação e a correção mais provável, sem assumir que o README já prova o funcionamento.

Ver solução comentada

Solução: perguntar de onde o cartão veio, se a resposta pública contém c02 e se o HTML conserva conteúdo manual. Se a API omite c02 e o cartão é manual, remover a duplicação e usar o consumidor previsto. Se a API revela c02, reparar também a seleção. O README precisa corresponder à execução verificada. A resposta correta não torna c02 ativo para encerrar a divergência nem chama a documentação de evidência suficiente da integração.

Referências para aprofundamento

Consulte S01, Software Configuration Management, para identificação e controle da configuração; e S07, Git Basics, para preservar o histórico das alterações. O mapa de autoridades é a decisão local desta oficina.

Fontes relacionadas

Consulte os limites e as seções de apoio de cada referência.

S01 S07
Conseguiu explicar o que aprendeu?

Tente o exercício antes de consultar a solução. Marque a aula para organizar sua leitura.

A conclusão desta leitura não equivale a certificação ou aceite de um projeto real. Teste os exemplos no escopo indicado e registre as limitações.