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
Joubert RedRat
September 15, 2025
Technology
40
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
53
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
60
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
47
Por que migrar sua aplicação para Microserviços?
joubertredrat
0
43
Uso prático de fakes para mocks no Golang
joubertredrat
0
95
Other Decks in Technology
See All in Technology
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
400
Claude Designがめちゃくちゃ便利なので使ってほしい
diggymo
0
170
「大丈夫そう?」をObservabilityで確かめる
mrmtsu
0
240
Argo CDとAtlantisで実現するインフラ管理のセルフサービス化──小規模SREチームで支えるプラットフォーム
cassius7
0
250
Swap and Memory Reclaim - Squeezing Out More RAM
ennael
PRO
1
1.4k
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
sanghyuk
0
250
Claude起点の仕様駆動開発
tanakaseiya
0
230
KanaAI
shreyas1009
0
130
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
320
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
6
1.5k
AI臭い文章とは何なのか
nasuvitz
36
75k
音声コミュニティを守るAI監視基盤_ 90%以上の入力削減を支えたServerless設計と運用判断
shuheioka123
0
120
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
480
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
420
So, you think you're a good person
axbom
PRO
2
2.2k
Exploring anti-patterns in Rails
aemeredith
4
520
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
430
Writing Fast Ruby
sferik
630
63k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
Odyssey Design
rkendrick25
PRO
2
840
Chasing Engaging Ingredients in Design
codingconduct
0
340
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
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