Capítulo 25 — Ateliê de projeto I
Mapa da aula
Aula 25 publicada. Mapa, exemplo, EX073.
flowchart TD
N0["25.1 Enunciado do ateliê"]
N1["25.2 ADRs"]
N2["25.3 Revisão da banca"]
N3["25.4 Iterando"]
N4["25.5 Entregáveis"]
N5["Nota de prática — Disciplina na demonstração"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX073"]
Desenho lógico
flowchart LR
N0["25.1 Enunciado do ateliê"]
N1["25.2 ADRs"]
N2["25.3 Revisão da banca"]
N3["25.4 Iterando"]
N4["25.5 Entregáveis"]
N5["Nota de prática — Disciplina na demonstração"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX073"]
[25.1 Enunciado do ateliê]
|
v
[25.2 ADRs]
|
v
[25.3 Revisão da banca]
|
v
[25.4 Iterando]
|
v
[25.5 Entregáveis]
|
v
[Nota de prática — Disciplina na demonstração]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX073]
Objetivos de aprendizagem
Você vai (1) produzir um primeiro projeto de ponta a ponta para o caminho de ingestão do Lantern; (2) apresentá-lo a uma banca de revisão; (3) registrar as decisões em registros de decisão de arquitetura (ADRs); (4) responder às críticas com mudanças no projeto.
25.1 Enunciado do ateliê
Projete o caminho das coleções TAXII 2.1 dos parceiros até um armazenamento pronto para os analistas: consulta periódica, validação, normalização, eliminação de duplicatas, procedência, aplicação do TLP e monitoramento. Restrições: protótipos só com a biblioteca padrão, dados sintéticos, modelo de zonas da BEN. A equipe de Kofi começou desenhando as zonas e colocando cada componente em uma delas antes de escrever qualquer código. A restrição de usar só a biblioteca padrão forçou projetos simples, que a banca conseguia ler por inteiro. Os dados sintéticos permitiram que cada teste fosse compartilhado com a banca e repetido exatamente, o que dados reais de parceiros, sob limites de compartilhamento, não permitiriam.
25.2 ADRs
Um registro de decisão de arquitetura expõe contexto, decisão, alternativas e consequências em uma página. "Consultar a cada 15 minutos em vez de assinar envio ativo" — contexto: o TAXII 2.1 é baseado em consulta para coleções; consequências: até 15 minutos de latência. A equipe de Kofi escreveu um registro para cada escolha que alguém poderia questionar depois. O intervalo de consulta foi uma delas; a escolha de rejeitar, e não consertar, carimbos de tempo malformados foi outra. Cada registro lista as opções consideradas e por que perderam. Quando a banca contestava uma escolha, a equipe podia apontar o registro em vez de reconstruir o raciocínio de memória.
25.3 Revisão da banca
A banca inclui um analista, um engenheiro de OT e um encarregado de privacidade. Cada um pergunta a partir de seu papel: É oportuno? A OT está protegida? Os dados pessoais estão minimizados? Cada revisor lê o projeto a partir de suas próprias preocupações, e suas perguntas raramente se sobrepõem. O analista perguntou quanto tempo um indicador de alta confiança levaria para chegar ao DNS. O engenheiro de OT perguntou se algo no projeto poderia enviar regras aos firewalls das subestações sem aprovação. A pergunta do encarregado de privacidade levou à mudança descrita no exemplo resolvido. Kofi registrou cada pergunta com a resposta dada.
25.4 Iterando
A crítica vira itens de backlog. Os projetos melhoram quando os estudantes os mudam em resposta, não quando defendem cada escolha. A equipe de Kofi registrou cada comentário da banca como item de backlog com responsável e decisão. A maioria dos comentários levou a mudanças pequenas; dois levaram a novos registros de decisão; um foi recusado com um motivo escrito que a banca aceitou. A equipe descobriu que aceitar depressa uma crítica justa rendia mais confiança do que uma defesa engenhosa. A segunda revisão da banca foi mais curta porque os comentários anteriores tinham sido visivelmente atendidos.
25.5 Entregáveis
Um diagrama, cinco ADRs, uma lista de interfaces, um plano de monitoramento e uma demonstração do pipeline com dados sintéticos. Cada item tem um propósito. O diagrama mostra a estrutura, os registros mostram o raciocínio, a lista de interfaces mostra o que precisa ser acordado com outros e o plano de monitoramento mostra como as falhas serão percebidas. A demonstração prova que o pipeline roda de ponta a ponta com o feed sintético. A equipe de Kofi entregou os cinco juntos, para que a banca pudesse verificar se a demonstração correspondia ao diagrama e aos registros.
Nota de prática — Disciplina na demonstração
A demonstração do ateliê roda com dados sintéticos a partir de um ambiente limpo, com os comandos roteirizados de antemão. Improvisar ao vivo diante de uma banca esconde defeitos e desperdiça tempo; uma execução roteirizada mostra o que o projeto realmente faz. Os estudantes ensaiam a execução roteirizada duas vezes antes da banca, uma delas em uma máquina nova, para que as surpresas de ambiente apareçam no ensaio e não diante dos revisores. Depois, os comentários da banca e as respostas da equipe são arquivados com os ADRs como registro do ateliê.
Exemplo resolvido
O encarregado de privacidade pergunta por que o projeto armazena os cabeçalhos completos dos e-mails dos relatos de phishing. O ADR de Kofi não tinha motivo. Ele muda o projeto para armazenar apenas o domínio do remetente, um hash do assunto e os campos de indicador, e escreve um novo ADR registrando a mudança.
Caso sintético. A banca do ateliê é inventada.
Erros e limites
Ateliês recompensam a clareza, não o volume. Um projeto sem monitoramento está incompleto.
Exercícios
- EX073 — Partes do ADR. Liste as quatro seções de um ADR. Rubrica: 3 = contexto, decisão, alternativas, consequências; 2 = três; 1 = uma; 0 = nenhuma.
- EX074 — Consequência da consulta. Indique uma consequência da consulta a cada 15 minutos. Rubrica: 3 = até 15 min de latência (mais a troca com a carga); 2 = latência, de forma vaga; 1 = vago; 0 = nenhuma.
- EX075 — Minimização dos cabeçalhos. Quais campos substituem os cabeçalhos completos de e-mail no projeto revisado? Rubrica: 3 = domínio do remetente, hash do assunto, campos de indicador; 2 = dois; 1 = manter os cabeçalhos completos; 0 = nenhuma.
Síntese
Projete de ponta a ponta, registre as decisões, convide críticas baseadas em papéis e mude o projeto quando a crítica estiver certa.
Continue estudando — capítulo 25 de 50
← Capítulo 24 (rascunho) · Índice de capítulos do curso · Capítulo 26 (rascunho) →