Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
41
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
54
Retome o controle do seu analytics com Matomo
joubertredrat
0
52
#tbt do PHP, a evolução da linguagem nos últimos 30 anos
joubertredrat
0
55
DevBox, o meu pequeno projeto open source para o dia a dia do dev
joubertredrat
0
61
O poder do Object Calisthenics no PHP
joubertredrat
1
160
Playing with Docker and Docker Compose
joubertredrat
0
170
Why migrate your application to microservices?
joubertredrat
0
50
Por que migrar sua aplicação para Microserviços?
joubertredrat
0
44
Uso prático de fakes para mocks no Golang
joubertredrat
0
96
Other Decks in Technology
See All in Technology
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
110
自分で立ててみるLLMサービス
y_sera15
0
150
AI時代のPRレビューにどう向き合うか?
kairim0
1
110
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
3.3k
SDDの運用にめげずに向き合った話
sansantech
PRO
1
140
自律型 AI をセキュアに実装!Gemini と MIG で作る動的コード実行環境
recruitengineers
PRO
1
230
Cognition AI Japan - ウェビナー2_テストQA_運用監視
cogakira
0
110
購入ドメインでの課題と取り組み
ykagano
0
150
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
110
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
120
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
250
Deep Data Security 機能解説
oracle4engineer
PRO
2
740
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Un-Boring Meetings
codingconduct
0
450
Writing Fast Ruby
sferik
630
63k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
400
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.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