OpenCyber Academy
Tecnólogo · Capítulo 6 · Português
Código do curso: OCA-072Capítulo 06: OCA-072-C006

Capítulo 6 — Formatos e troca de dados

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Mapa da aula

Aula 06 publicada. Mapa, exemplo, EX016.

flowchart TD
  N0["6.1 Formatos comuns"]
  N1["6.2 Especificações de troca"]
  N2["6.3 Validando arquivos"]
  N3["6.4 Mudanças de versão"]
  N0 --> N1 --> N2 --> N3
  N3 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX016"]

Desenho lógico

flowchart LR
  N0["6.1 Formatos comuns"]
  N1["6.2 Especificações de troca"]
  N2["6.3 Validando arquivos"]
  N3["6.4 Mudanças de versão"]
  N0 --> N1 --> N2 --> N3 --> Q["EX016"]
[6.1 Formatos comuns]
    |
    v
[6.2 Especificações de troca]
    |
    v
[6.3 Validando arquivos]
    |
    v
[6.4 Mudanças de versão]
    |
    v
[Exemplo resolvido] --> [Exercício EX016]

Objetivos de aprendizagem

Você vai (1) comparar formatos de dados comuns; (2) definir especificações de troca; (3) validar arquivos recebidos.

6.1 Formatos comuns

Ravi compara os formatos usados na Calder Valley: CSV nas exportações das prestadoras, JSON vindo do portal dos inquilinos, arquivos de largura fixa do antigo sistema de aluguéis e planilhas dos gestores. O CSV é simples, mas não tem tipos; o JSON carrega estrutura, mas pode variar de um registro para outro; os arquivos de largura fixa exigem posições exatas de coluna. Ele usa os módulos csv e json do Python para ler cada um, anotando os problemas típicos de cada formato. Escreve uma nota curta por formato, descrevendo esses problemas e como seus scripts os tratam, para que os colegas reaproveitem a abordagem.

6.2 Especificações de troca

Para reduzir problemas, Ravi ajuda a escrever uma especificação de troca para os arquivos das prestadoras: padrão de nome do arquivo, codificação, delimitador, nomes e ordem das colunas, tipos de dados, datas no formato ano-mês-dia, valores permitidos para situação e prioridade e o que fazer quando uma ordem é cancelada. O curador de reparos a aprova e a envia a todas as prestadoras. Ele observa que uma especificação transforma suposições em acordos e permite rejeitar arquivos que não a cumprem. A especificação é publicada com um arquivo de exemplo contra o qual as prestadoras podem testar.

6.3 Validando arquivos

Ravi escreve um validador que confere cada arquivo recebido de uma prestadora com a especificação antes da carga. Arquivos que passam em todas as verificações são carregados automaticamente; os que falham ficam retidos, e a prestadora recebe por e-mail um relatório com os problemas. No primeiro mês, duas prestadoras enviam arquivos fora da especificação, e as duas os corrigem em poucos dias. Ele observa que a validação automática transfere o trabalho de correção para a origem, onde os erros podem ser corrigidos de verdade. As prestadoras passam a testar seus arquivos antes do envio, e as retenções ficam raras depois dos dois primeiros meses.

6.4 Mudanças de versão

Quando uma prestadora atualiza seu sistema, surge uma coluna nova, e o validador retém o arquivo. Ravi consulta o curador, que conclui que a coluna é inofensiva e atualiza a especificação para a versão dois, permitindo uma coluna extra opcional. A Sra. Moreau observa que as especificações precisam de controle de versão como o código, para que todos saibam qual versão vale e para que as mudanças sejam deliberadas, e não acidentais, com registro de quem aprovou cada uma. O histórico da especificação fica no repositório ao lado do código do validador, de modo que cada versão possa ser associada ao validador que a aplicou.

Exemplo resolvido

Ravi compara os formatos CSV, JSON, largura fixa e planilha, ajuda a escrever uma especificação de troca para as prestadoras, constrói um validador que retém arquivos fora da especificação e conduz uma mudança de versão da especificação.

Caso sintético. Os arquivos e as especificações são sintéticos.

Erros e limites

Aceitar arquivos sem validação leva os erros da origem para os relatórios.

Exercícios

  • EX016 — Fraqueza do CSV. Qual é a principal fraqueza do CSV?
    Mostrar critérios de avaliação
    Rubrica: 3 = não ter tipos de dados;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
  • EX017 — Arquivos reprovados. O que acontece com os arquivos que falham na validação?
    Mostrar critérios de avaliação
    Rubrica: 3 = ficam retidos e a prestadora recebe um relatório por e-mail;; 2 = parcialmente correto;; 1 = parcial;; 0 = nenhuma.
  • EX018 — Mudança da versão dois. O que a versão dois da especificação passou a permitir?
    Mostrar critérios de avaliação
    Rubrica: 3 = uma coluna extra opcional;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
Respostas comentadas

EX016. Não carrega tipos de dados.

EX017. Ficam retidos, e a prestadora recebe um relatório com os problemas.

EX018. Uma coluna extra opcional.