Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programação defensiva com PHP

Programação defensiva com PHP

Avatar for Joubert RedRat

Joubert RedRat

September 15, 2025
Tweet

More Decks by Joubert RedRat

Other Decks in Technology

Transcript

  1. Eu não sou uma entidade divina O que eu falo

    não é uma verdade absoluta, não tenha medo de questionar
  2. Programação defensiva • Antecipação e resolução de possíveis problemas •

    Prevenção de travamentos • Maior garantia de estabilidade e segurança • Confiabilidade e robustez
  3. Técnicas usadas Validação no Construtor Validação do e-mail imediatamente na

    criação do objeto Type Hinting Tipagem do $email como uma string
  4. Técnicas usadas Imutabilidade Propriedade readonly impede alterações após criação Validação

    de Formato Uso do FILTER_VALIDATE_EMAIL para verificar string como formato válido
  5. Técnicas usadas Fail Fast Lançamento de exceção por dados inválidos

    DTO Pattern Separação da validação de dados da lógica de negócio
  6. Validação de entrada de dados • Verificar campos obrigatórios •

    Validar formato (e-mail, CPF) • Limitar tamanho de strings • Garantir tipo de dado (número)
  7. Tratamento de Exceções • Capturar exceções • Lidar com falhas

    de rede • Registrar exceções inesperadas
  8. Fail-first / Fail-early • Detectar entradas incorretas rapidamente • Interromper

    a execução imediatamente • Evitar propagação de dados inválidos • Garantir maior confiabilidade do sistema
  9. Segurança • Sanitizar entradas (SQL Injection) • Escapar saídas (XSS)

    • Validar permissões de usuário • Criptografar dados sensíveis
  10. Robustez de Funções e Métodos • Checar argumentos nulos •

    Validar estado do objeto • Garantir pré-condições • Verificar pós-condições
  11. Benefícios • Reduzir erros e falhas • Aumentar a estabilidade

    do software • Reforçar a segurança da aplicação • Facilitar a manutenção e melhorar a coesão • Otimizar a experiência do usuário