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
33
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
46
Retome o controle do seu analytics com Matomo
joubertredrat
0
46
#tbt do PHP, a evolução da linguagem nos últimos 30 anos
joubertredrat
0
47
DevBox, o meu pequeno projeto open source para o dia a dia do dev
joubertredrat
0
46
O poder do Object Calisthenics no PHP
joubertredrat
0
160
Playing with Docker and Docker Compose
joubertredrat
0
160
Why migrate your application to microservices?
joubertredrat
0
37
Por que migrar sua aplicação para Microserviços?
joubertredrat
0
39
Uso prático de fakes para mocks no Golang
joubertredrat
0
91
Other Decks in Technology
See All in Technology
Rancherの紹介&Update情報(RancherJP Online Meetup #09)
yoshiyuki_kono
0
140
運用を見据えたAIエージェント設計実践
amacbee
1
3.5k
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
330
ブロックチェーン / Blockchain
ks91
PRO
0
120
Reliability in the Age of AI: Engineering for AI Velocity
rrreeeyyy
0
120
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
360
MIERUNE JCT 発表資料「宇宙から伊能忠敬ごっこ」
syuchimu
0
200
地球に⽣きるAI —GeoAIと「中間領域」— / AI Living on Earth — GeoAI and the “Intermediate Layer” —
ykiyota
0
110
On-behalf-of Token exchange with AgentCore Identity
hironobuiga
2
120
データ基盤をDataformで整えた話 〜 開発環境を添えて 〜
takapy
0
140
MCP Appsを作ってみよう
iwamot
PRO
4
370
失敗を資産に変えるClaude Code
shinyasaita
0
180
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
247
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Code Reviewing Like a Champion
maltzj
528
40k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
Design in an AI World
tapps
1
230
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Building Applications with DynamoDB
mza
96
7.1k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
280
30 Presentation Tips
portentint
PRO
1
320
Making the Leap to Tech Lead
cromwellryan
135
9.9k
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