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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Joubert RedRat
September 15, 2025
Technology
0
27
Programação defensiva com PHP
Joubert RedRat
September 15, 2025
Tweet
Share
More Decks by Joubert RedRat
See All by Joubert RedRat
Testes de integração com Testcontainers
joubertredrat
0
36
Retome o controle do seu analytics com Matomo
joubertredrat
0
36
#tbt do PHP, a evolução da linguagem nos últimos 30 anos
joubertredrat
0
38
DevBox, o meu pequeno projeto open source para o dia a dia do dev
joubertredrat
0
38
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
30
Por que migrar sua aplicação para Microserviços?
joubertredrat
0
31
Uso prático de fakes para mocks no Golang
joubertredrat
0
86
Other Decks in Technology
See All in Technology
最速で価値を出すための プロダクトエンジニアのツッコミ術
kaacun
1
520
Amazon ElastiCacheのコスト最適化を考える/Elasticache Cost Optimization
quiver
0
390
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
180
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
260
入社1ヶ月でデータパイプライン講座を作った話
waiwai2111
1
210
ゼロから始めたFindy初のモバイルアプリ開発
grandbig
2
640
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
120
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
410
Databricks Free Edition講座 データサイエンス編
taka_aki
0
280
Amazon Bedrock AgentCore 認証・認可入門
hironobuiga
2
490
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
150
GCASアップデート(202510-202601)
techniczna
0
240
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
130
My Coaching Mixtape
mlcsv
0
45
Git: the NoSQL Database
bkeepers
PRO
432
66k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.5k
Crafting Experiences
bethany
1
45
Navigating Weather and Climate Data
rabernat
0
93
Ruling the World: When Life Gets Gamed
codingconduct
0
130
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
How to Ace a Technical Interview
jacobian
281
24k
Amusing Abliteration
ianozsvald
0
92
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