Pular para conteúdo

Aula 08 - Boas Práticas e Validação ✅

Qualidade e Segurança no Backend


Agenda 📅

  1. Por que Validar Tudo?
  2. Validação vs Sanitização
  3. Schema Validation (Ex: Zod)
  4. Clean Code (Código Limpo)
  5. Tratamento de Erros Profissional
  6. Middlewares Globais

1. Regra de Ouro: Desconfiança 🛡️

  • O cliente é o "lado perigoso" da aplicação.
  • Validações evitam dados corrompidos.
  • Defesa em Profundidade: Garanta a regra no banco E no código.

2. Validar vs Sanitizar 🧼

  • Validar: Checar (Idade > 18?).
  • Sanitizar: Limpar (Remover <script>).

3. Schema Validation 📐

  • Crie "moldes" para seus dados.
  • Validação centralizada e reutilizável.
const userSchema = {
    nome: string().min(3),
    email: string().email()
};

4. O Backend Elegante (Clean Code) ✨

  • DRY: Don't Repeat Yourself (Não repita lógica).
  • KISS: Keep It Simple, Stupid (Mantenha o simples).
  • Nomes de funções que explicam o que está acontecendo.

5. Tratamento de Erros 🚨

  • Controller trata o fluxo, não o detalhe técnico.
  • Try/Catch Global: Evite crashes.
  • Mensagens amigáveis para o cliente.

6. Logs vs Mensagens 📜

  • Terminal/Log: Detalhe técnico completo.
  • Cliente (JSON): Apenas o que ele precisa saber.

"Ocorreu um erro interno" (Cliente) ✅ "Query failed at line 42 due to NULL constraint" (Logs) ✅


7. Prática: O Schema Perfeito 💻

  • Validando um produto complexo.
  • Tratando erros de tipo (String no lugar de Number).

Desafio: Limpeza ⚡

Se você recebe um texto de um post com muitos espaços em branco no final, você deve Validar ou Sanitizar?


Resumo ✅

  • Backend robusto exige validação rigorosa.
  • Limpe os dados antes de salvar (Sanitize).
  • Middleware Global centraliza a gestão de falhas.
  • Código limpo economiza meses de manutenção.

Próxima Aula: Módulo 3! 🔐

Segurança e Autenticação

  • Quem é você? (Authentication).
  • O que você pode fazer? (Authorization).

Dúvidas? ✅