Capítulo 4 — Laboratório guiado e plano de ação
Mapa da aula
Aula 04 publicada. Mapa, exemplo, EX057.
flowchart TD
N0["4.1 A lista de inscrições"]
N1["4.2 O que o laboratório encontra"]
N2["4.3 Decidindo para quem enviar"]
N3["4.4 O plano de ação"]
N4["4.5 Depois do curso"]
N5["Conceitos — uma linha não é uma permissão"]
N6["Dados — as cinco ações e a que escorregou"]
N7["Fluxo de decisão — este endereço pode receber o bole"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX057"]
Desenho lógico
flowchart LR
N0["4.1 A lista de inscrições"]
N1["4.2 O que o laboratório encontra"]
N2["4.3 Decidindo para quem enviar"]
N3["4.4 O plano de ação"]
N4["4.5 Depois do curso"]
N5["Conceitos — uma linha não é uma permissão"]
N6["Dados — as cinco ações e a que escorregou"]
N7["Fluxo de decisão — este endereço pode receber o bole"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX057"]
[4.1 A lista de inscrições]
|
v
[4.2 O que o laboratório encontra]
|
v
[4.3 Decidindo para quem enviar]
|
v
[4.4 O plano de ação]
|
v
[4.5 Depois do curso]
|
v
[Conceitos — uma linha não é uma permissão]
|
v
[Dados — as cinco ações e a que escorregou]
|
v
[Fluxo de decisão — este endereço pode receber o bole]
|
v
[Exemplo resolvido] --> [Exercício EX057]
Objetivos de aprendizagem
Você vai (1) conferir uma lista sintética de inscrições com um script curto; (2) decidir quem pode receber o boletim; (3) escrever um plano de ação de um mês.
4.1 A lista de inscrições
A lista do boletim da Copperleaf foi digitada a partir das folhas de papel por funcionários diferentes. Algumas linhas têm e-mail em branco, algumas têm o mesmo endereço digitado duas vezes com maiúsculas ou espaços diferentes e algumas não têm marcação na caixa de consentimento. Kwame quer saber para quantos endereços o café pode de fato enviar e-mails. A Sra. Fischer o ajuda a escrever um script curto em Python usando só a biblioteca padrão, executado sobre uma lista sintética de doze linhas que reproduz esses problemas sem usar nenhum dado real de cliente. Kwame o executa.
"""Check a synthetic cafe newsletter sign-up list: blanks, duplicates and consent ticks (stdlib only)."""
rows = [("ana@example.org", "yes"), ("Ana@Example.org ", "yes"), ("", "yes"), ("ben@example.org", ""),
("cai@example.org", "yes"), ("dee@example", "yes"), ("eli@example.org", "no"), ("fay@example.org", "yes"),
("cai@example.org", "yes"), ("gus@example.org", "yes"), ("", ""), ("hal@example.org", "yes")]
clean = [(e.strip().lower(), c) for e, c in rows]
blank = sum(1 for e, _ in clean if not e)
bad = sum(1 for e, _ in clean if e and ("@" not in e or "." not in e.split("@")[-1]))
seen, dup = set(), 0
for e, _ in clean:
if e and e in seen: dup += 1
seen.add(e)
ok = {e for e, c in clean if e and c == "yes" and "." in e.split("@")[-1]}
print(f"rows {len(rows)}; blank email {blank}; malformed {bad}; duplicates {dup}")
print(f"unique valid addresses with a yes tick: {len(ok)}")
Execute com python3 lab_signups.py. Saída verificada:
rows 12; blank email 2; malformed 1; duplicates 2
unique valid addresses with a yes tick: 5
4.2 O que o laboratório encontra
O script remove os espaços e converte cada endereço para minúsculas antes de conferi-lo. Das doze linhas, duas têm e-mail em branco, um endereço está malformado porque não tem uma terminação adequada depois da arroba e duas linhas duplicam endereços já listados. Depois de retirados os problemas, só cinco endereços únicos e válidos têm um sim na caixa de consentimento. Kwame se surpreende: doze linhas no papel viram cinco pessoas a quem o café pode mandar e-mails com segurança. Ele mostra o resultado à Sra. Adeyemi, que esperava uma lista muito maior e pede que ele explique cada problema encontrado.
4.3 Decidindo para quem enviar
A Sra. Fischer explica que os e-mails de marketing exigem o consentimento do cliente, e que o café precisa conseguir demonstrá-lo; na LGPD, o consentimento deve ser livre, informado e inequívoco (art. 5º, XII), e cabe ao controlador provar que o obteve (art. 8º, § 2º). As linhas com marcação em branco ou com não ficam de fora. O endereço malformado não pode ser usado de qualquer forma. Kwame e a Sra. Adeyemi decidem enviar e-mails aos cinco endereços confirmados e convidar pessoalmente os outros clientes a assinar a nova folha, se quiserem o boletim. Ele registra a decisão e a data no caderno.
4.4 O plano de ação
Kwame escreve um plano de um mês com cinco ações: trocar a folha de inscrição pela versão mais curta, com uma caixa de consentimento clara e a data; executar a verificação do laboratório todo mês na lista digitada; eliminar a planilha esquecida; concluir a mudança para o aplicativo de mensagens pago; e explicar as regras na reunião seguinte da equipe. Cada ação tem um responsável e uma data. A Sra. Adeyemi o aprova, e Kwame o afixa ao lado das regras. Ele mantém o plano curto para que possa de fato ser concluído em um mês, sem competir com o trabalho do café.
4.5 Depois do curso
No fim do mês, Kwame revisa o andamento. Quatro ações estão concluídas; a reunião da equipe foi adiada para a semana seguinte. Ele reflete que decisões pequenas e claras mudaram mais do que esperava, e que conferir os dados com um script curto tornou o problema visível para todos. A Sra. Fischer sugere que ele continue com privacidade e proteção de dados, já que os dados de clientes e funcionários são centrais para o café. O próximo curso desta área faz exatamente isso. Kwame agradece à Sra. Fischer e se inscreve no mês seguinte, levando o caderno do curso.
Exemplo resolvido
Kwame confere doze linhas sintéticas de inscrição e encontra dois e-mails em branco, um endereço malformado e duas duplicatas, restando cinco endereços únicos e válidos com consentimento; ele decide enviar e-mails só a esses e conclui quatro das cinco ações de seu plano de um mês.
Caso sintético. A lista é sintética; as saídas vêm de lab_signups.py; o GDPR e a LGPD são reais. Isto não é aconselhamento jurídico.
Erros e limites
Contar linhas em vez de endereços únicos, válidos e com consentimento superestima quem pode receber e-mails.
Conceitos — uma linha não é uma permissão
O script não pergunta quantas linhas há no papel. Ele pergunta quais endereços são únicos, válidos e marcados com yes depois de o endereço ser aparado e posto em minúsculas. A marca em si não é posta em minúsculas. Yes não é yes.
| Resultado do laboratório em 12 linhas sintéticas | Contagem | Essa linha pode receber e-mail? |
|---|---|---|
| E-mail em branco | 2 | Não. Não há endereço |
| Endereço malformado | 1 | Não. dee@example não tem um fim adequado depois de @ |
| Linhas duplicadas | 2 | A repetição não é uma segunda pessoa |
Endereço único e válido com marca yes |
5 | Sim. Esta é a única lista de envio |
Marca em branco ou no, inclusive eli@example.org |
Fora dos 5 | Não. Não houve consentimento |
Doze linhas viraram cinco pessoas. Enviar às outras sete porque aparecem no papel superestima a lista. Esse é o erro deste capítulo.
Dados — as cinco ações e a que escorregou
| Ação | Pessoa | Feita quando Kwame revisou o mês? |
|---|---|---|
| Folha curta com caixa clara de consentimento e a data | Kwame | Sim |
| Rodar esta verificação todo mês na lista digitada | Kwame | Sim |
| Apagar a planilha esquecida depois da conferência | Kwame | Sim |
| Concluir o aplicativo pago de mensagens | Sra. Adeyemi e Kwame | Sim |
| Explicar as regras na reunião da equipe | Kwame | Não. A reunião foi para a semana seguinte |
O plano continua com cinco ações. Uma data que escorrega é anotada. Ela não sai do plano para o mês parecer concluído.
Fluxo de decisão — este endereço pode receber o boletim?
flowchart TD
A["Uma linha digitada"] --> B["Apare espaços e ponha o endereço em minúsculas. Não altere a marca"]
B --> C{"O endereço está em branco ou malformado?"}
C -->|Sim| D["Não envie"]
C -->|Não| E{"Este endereço já está na lista de envio?"}
E -->|Sim| F["Duplicata. Não conte uma segunda pessoa"]
E -->|Não| G{"A marca é exatamente yes?"}
G -->|Não| H["Não envie. Peça à pessoa que assine a folha nova"]
G -->|Sim| I["Inclua este único endereço"]
I --> J["Registre a decisão e a data no caderno"]
H --> J
Exemplo resolvido — um Yes maiúsculo e um habitual que marcou não
Uma linha traz Ina@Example.org com a marca Yes. O script põe o endereço em minúsculas, ina@example.org, que é válido, e deixa a marca como Yes. A regra de envio aceita só yes, então Ina não está entre as cinco. Kwame não "corrige" a marca no script para aumentar a contagem. Ele pede a Ina que assine a folha nova. Na mesma semana a Sra. Adeyemi quer escrever a eli@example.org, um habitual que marcou no. Kwame recusa. Ser habitual não substitui a marca. Eli pode entrar assinando a folha nova pessoalmente. As duas decisões vão para o caderno, com a data.
Caso sintético. A linha de Ina e o pedido de escrever a Eli são inventados. A regra da marca é a de lab_signups.py. Isto não é aconselhamento jurídico.
Aplicar
- EX057 — Yes maiúsculo. O que o script faz com
Ina@Example.orge com a marcaYes, e essa linha recebe e-mail? Rubrica: 3 = o endereço é aparado e posto em minúsculas; a marca continuaYes; a linha não recebe e-mail porque sóyesconta;; 2 = o endereço é limpo e a linha não recebe e-mail;; 1 = um desses;; 0 = nenhuma. - EX058 — Habitual que marcou não.
eli@example.orgpode receber e-mail por Eli ser habitual, e o que se oferece a Eli? Rubrica: 3 = não; Eli pode assinar a folha nova pessoalmente; a recusa fica datada no caderno;; 2 = não, sem a folha;; 1 = sim;; 0 = nenhuma.
Exercícios
- EX039 — Linhas do laboratório. Quantas linhas tem a lista sintética? Rubrica: 3 = doze;; 2 = parcialmente correto;; 1 = errado;; 0 = nenhuma.
- EX040 — E-mails em branco. Quantas linhas têm e-mail em branco? Rubrica: 3 = duas;; 2 = parcialmente correto;; 1 = errado;; 0 = nenhuma.
- EX041 — Malformados. Quantos endereços estão malformados? Rubrica: 3 = um;; 2 = parcialmente correto;; 1 = errado;; 0 = nenhuma.
- EX042 — Linhas duplicadas. Quantas linhas duplicadas o script encontra? Rubrica: 3 = duas;; 2 = parcialmente correto;; 1 = errado;; 0 = nenhuma.
- EX043 — Total que pode receber. Quantos endereços únicos e válidos têm um sim? Rubrica: 3 = cinco;; 2 = parcialmente correto;; 1 = errado;; 0 = nenhuma.
- EX044 — Etapas de normalização. O que o script faz antes de conferir cada endereço? Rubrica: 3 = remove espaços e converte para minúsculas;; 2 = ambos;; 1 = um;; 0 = nenhuma.
- EX045 — Marcação em branco. As linhas com marcação em branco recebem e-mails? Rubrica: 3 = não;; 2 = parcialmente correto;; 1 = sim;; 0 = nenhuma.
- EX046 — Outros clientes. Como os outros clientes vão entrar no boletim? Rubrica: 3 = assinando pessoalmente a nova folha;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
- EX047 — Ações do plano. Quantas ações tem o plano de um mês? Rubrica: 3 = cinco;; 2 = parcialmente correto;; 1 = errado;; 0 = nenhuma.
- EX048 — Itens da nova folha. O que a nova folha inclui? Rubrica: 3 = uma caixa de consentimento clara e a data;; 2 = ambos;; 1 = um;; 0 = nenhuma.
- EX049 — Ação atrasada. Que ação atrasou? Rubrica: 3 = a explicação das regras na reunião da equipe;; 2 = parcialmente correto;; 1 = outra;; 0 = nenhuma.
- EX050 — Próximo tema. O que a Sra. Fischer sugere em seguida? Rubrica: 3 = privacidade e proteção de dados;; 2 = parcialmente correto;; 1 = outro;; 0 = nenhuma.
Continue estudando — aula 04 (capítulo 04 de 04)
← Capítulo 03 · Índice das aulas · Próximo curso pelo índice →
O índice aponta para o próximo curso do percurso de estudos.
Resoluções
Respostas-modelo para EX001–EX058. Kwame Boateng, a Sra. Lena Fischer, o Riverside Adult Learning Centre, o Copperleaf Café e todos os números são sintéticos. Qualquer resposta que atenda à rubrica recebe a mesma pontuação.
EX001. Dois.
EX002. Gerente de dados de uma prefeitura.
EX003. Combinar quem é responsável, que regras valem e como elas são conferidas.
EX004. Não; responsáveis, regras e verificações bastam para começar.
EX005. São informações de saúde, uma categoria especial no GDPR e dado sensível na LGPD.
EX006. As escalas da equipe.
EX007. Pagar duas vezes a um fornecedor porque existem duas cópias da nota.
EX008. Servir a um cliente uma comida que lhe faz mal.
EX009. A Sra. Adeyemi, a dona.
EX010. Kwame.
EX011. O subgerente.
EX012. Os dados de clientes e funcionários ficam dentro dos sistemas aprovados.
EX013. Em uma única página aprovada pela Sra. Adeyemi.
EX014. Apenas o boletim.
EX015. Apenas quem prepara o pedido daquele cliente.
EX016. Pelo grupo de mensagens pago da equipe do café.
EX017. Primeiro nome e e-mail.
EX018. Há menos a proteger, perder ou explicar.
EX019. Logins separados para cada pessoa.
EX020. No mesmo dia, a Kwame.
EX021. São eliminados logo depois.
EX022. A cada seis meses, com o cliente.
EX023. Um ano, salvo se as pessoas concordaram com um uso mais longo.
EX024. Pelo grupo de mensagens pago, que mantém os números em sigilo.
EX025. Afixadas na sala da equipe.
EX026. As pessoas entenderem por que as regras existem.
EX027. Está completo, é válido e é exato?
EX028. Se a mesma pessoa aparece duas vezes.
EX029. Uma planilha antiga de e-mails de clientes.
EX030. Que não continha nada de que o café ainda precisasse.
EX031. Três.
EX032. Segurança, uso apenas para a Copperleaf e eliminação no fim.
EX033. A Copperleaf passou para a versão empresarial paga.
EX034. A mesma nota existia como cópia por e-mail e em papel.
EX035. A cópia recebida por e-mail, com a de papel marcada como recebida.
EX036. Que só funcionários atuais estão no grupo.
EX037. Em um caderno guardado com as regras.
EX038. Poucos minutos.
EX039. Doze.
EX040. Dois e-mails em branco.
EX041. Um endereço malformado.
EX042. Duas linhas duplicadas.
EX043. Cinco.
EX044. Remove os espaços e converte para minúsculas.
EX045. Não; marcações em branco não valem como consentimento.
EX046. Assinando pessoalmente a nova folha, se quiserem.
EX047. Cinco ações.
EX048. Uma caixa de consentimento clara e a data.
EX049. A explicação das regras na reunião da equipe, adiada em uma semana.
EX050. Privacidade e proteção de dados.
EX051. Um celular pessoal não é um sistema aprovado, e a nota é informação de saúde. A Sra. Adeyemi precisa ser avisada no mesmo dia porque é a responsável.
EX052. A segunda decisão está incompleta. Nomeie a pessoa do dia a dia na página antes de copiar a escala para qualquer lugar.
EX053. O boletim não precisa do aniversário. Uma oferta posterior precisaria de regra própria, pessoa nomeada, prazo e canal aprovado antes de qualquer data ser coletada.
EX054. As trocas de turno passam pelo grupo pago, para os telefones continuarem reservados.
EX055. O provedor usaria os dados da Copperleaf para ofertas próprias, não só para a Copperleaf. O caderno registra a recusa e a data.
EX056. Lance uma vez a cópia enviada por e-mail, marque o papel como recebido e não pague o papel como segunda conta.
EX057. O script apara o endereço e o põe em minúsculas. A marca continua Yes. A linha não recebe e-mail, porque só um yes exato conta.
EX058. Não. Eli pode assinar a folha nova pessoalmente. A recusa fica datada no caderno.