Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Programação defensiva com PHP
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Joubert RedRat
September 15, 2025
Technology
29
0
Share
Programação defensiva com PHP
Joubert RedRat
September 15, 2025
More Decks by Joubert RedRat
See All by Joubert RedRat
Testes de integração com Testcontainers
joubertredrat
0
39
Retome o controle do seu analytics com Matomo
joubertredrat
0
39
#tbt do PHP, a evolução da linguagem nos últimos 30 anos
joubertredrat
0
39
DevBox, o meu pequeno projeto open source para o dia a dia do dev
joubertredrat
0
40
O poder do Object Calisthenics no PHP
joubertredrat
0
150
Playing with Docker and Docker Compose
joubertredrat
0
150
Why migrate your application to microservices?
joubertredrat
0
32
Por que migrar sua aplicação para Microserviços?
joubertredrat
0
34
Uso prático de fakes para mocks no Golang
joubertredrat
0
87
Other Decks in Technology
See All in Technology
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
4
14k
New CBs New Challenges
ysuzuki
1
170
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
2
570
Cortex Codeでデータの仕事を全部Agenticにやりきろう!
gappy50
0
350
AIエージェントを構築して感じた、AI時代のCDKとの向き合い方
smt7174
1
130
Hooks, Filters & Now Context: Why MCPs Are the “Hooks” of the AI Era
miriamschwab
0
130
CC Workflow Studio
seiyakobayashi
0
260
今年60歳のおっさんCBになる
kentapapa
1
360
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
6
2.4k
Proxmox超入門
devops_vtj
0
160
建設的な現実逃避のしかた / How to practice constructive escapism
pauli
4
300
Strands Agents × Amazon Bedrock AgentCoreで パーソナルAIエージェントを作ろう
yokomachi
2
260
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
340
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
180
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
Chasing Engaging Ingredients in Design
codingconduct
0
160
Color Theory Basics | Prateek | Gurzu
gurzu
0
280
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
The Limits of Empathy - UXLibs8
cassininazir
1
290
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Balancing Empowerment & Direction
lara
5
1k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
330
Transcript
Programação defensiva com PHP
Quem sou eu? Sou este ai https://creativecommons.org/licenses/by-sa/4.0/ https://redrat.com.br
Eu não sou uma entidade divina O que eu falo
não é uma verdade absoluta, não tenha medo de questionar
Programação defensiva O que deve ser?
Programação defensiva
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
None
None
Esse trecho de código funciona?
Sim, mas pode ser melhor
None
None
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
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
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
Técnicas Comuns
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)
Tratamento de Exceções • Capturar exceções • Lidar com falhas
de rede • Registrar exceções inesperadas
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
Segurança • Sanitizar entradas (SQL Injection) • Escapar saídas (XSS)
• Validar permissões de usuário • Criptografar dados sensíveis
Robustez de Funções e Métodos • Checar argumentos nulos •
Validar estado do objeto • Garantir pré-condições • Verificar pós-condições
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
Perguntas?
Esta e outras palestras https://bit.ly/joubertredrat-palestras
Obrigado