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
Joubert RedRat
September 15, 2025
Technology
0
1
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
24
Retome o controle do seu analytics com Matomo
joubertredrat
0
28
#tbt do PHP, a evolução da linguagem nos últimos 30 anos
joubertredrat
0
33
DevBox, o meu pequeno projeto open source para o dia a dia do dev
joubertredrat
0
33
O poder do Object Calisthenics no PHP
joubertredrat
0
130
Playing with Docker and Docker Compose
joubertredrat
0
130
Why migrate your application to microservices?
joubertredrat
0
26
Por que migrar sua aplicação para Microserviços?
joubertredrat
0
26
Uso prático de fakes para mocks no Golang
joubertredrat
0
82
Other Decks in Technology
See All in Technology
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
240
2つのフロントエンドと状態管理
mixi_engineers
PRO
3
110
ハードウェアとソフトウェアをつなぐ全てを内製している企業の E2E テストの作り方 / How to create E2E tests for a company that builds everything connecting hardware and software in-house
bitkey
PRO
1
130
いま注目のAIエージェントを作ってみよう
supermarimobros
0
200
DroidKaigi 2025 Androidエンジニアとしてのキャリア
mhidaka
2
190
2025年夏 コーディングエージェントを統べる者
nwiizo
0
170
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
250
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
260
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
10k
AWSで始める実践Dagster入門
kitagawaz
1
620
AI開発ツールCreateがAnythingになったよ
tendasato
0
130
Agile PBL at New Grads Trainings
kawaguti
PRO
1
430
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Become a Pro
speakerdeck
PRO
29
5.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Agile that works and the tools we love
rasmusluckow
330
21k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Code Reviewing Like a Champion
maltzj
525
40k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
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