SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
Dicas para sua carreira de
Desenvolvedor PHP
Tornando-se um profissional melhor
http://douglaspasqua.com
Senior Software Engineer
1. Dicas para sua carreira como
profissional.
2. Dicas de melhores práticas PHP.
Assuma a Responsabilidade
"Ao cometer erros, ofereça opções e não
desculpas."
Assuma a Responsabilidade
"Ao cometer erros, ofereça opções e não
desculpas."
...Linguagem de Programação, Sistema
Operacional, Outros colaboradores...
Assuma a Responsabilidade
Ofereça Opções:
● "Precisamos refatorar o código"
● "É necessário criar testes automatizados"
● "É necessário tempo para avaliar a melhor
maneira de proceder"
Para Refletir
“Como você reage quando alguém - mecânico,
encanador, balconista - lhe dá uma desculpa
esfarrapada ? O que você acha deles e de sua
empresa em decorrência disso ?”
Sua Carteira de Conhecimentos
Sua Carteira de Conhecimentos
● Invista regularmente.
● Estude/Aprenda outras linguagens.
● Leia um livro técnico a cada trimestre.
● Faça cursos periódicos / participe de eventos.
● Experimente outros ambientes.
● Mantenha-se informado e conectado.
Torne-se um Palestrante
Crie um Blog
Eventos
http://abraphp.org/calendario-de-eventos/
PHP do Jeito Certo
“Existe muita informação obsoleta na Web referente a programação em
PHP, espalhando más práticas e códigos inseguros, desnorteando novos
programadores. PHP: Do Jeito Certo é uma referência rápida e fácil de ler,
introduzindo desenvolvedores às melhores práticas, padrões de código e links
para bons tutoriais na Web.”
PHP do Jeito Certo
● Objetivo de incentivar melhores práticas no mundo PHP.
● Esforço da própria comunidade.
● Disponível em diversos idiomas (pt-Br)
● Tópicos com conteúdos curtos - referências para links com
qualidade.
PHP do Jeito Certo
● Diversos tópicos:
○ Recursos do PHP (namespaces, traits, generators, closures)
○ Gerenciandor de dependências (composer)
○ Codificação de caracteres
○ Banco de dados
○ Templates
○ Exceptions
○ Virtualização (vagrant, docker)
○ Cache
○ Dependency Injection
○ Segurança
○ Testes
PHP do Jeito Certo
● Livro digital Leanpub: https://leanpub.com/phptherightway
● Você paga o quanto acha que vale. (inclusive free)
● Destinado ao projeto EEF - Eletronic Frontier Foundation.
● Mantido pelo PHP-FIG - Framework Interop Group
Siga padrões - PSR
http://www.php-fig.org/
Autoloading
● PSR-0 Autoloading Standard
● PSR-4 Improved Autoloading
PSR-0 exemplos
● ZendMailMessage =>
<includepath_dir>/Zend/Mail/Message.php
Old Sytle (PEAR, php < 5.3)
● Zend_Mail_Message =>
<includepath_dir>/Zend/Mail/Message.php
PSR-4
● Permite uma Estrutura de diretórios mais concisa
● Obrigatório uso de Namespaces (>= php5.3)
● Recomendado para novos projetos
PSR-4 exemplos
● AcmeLogWriter => src/
○ AcmeLogWriterFile_Writer => src/File_Writer.php
○ AcmeLogWriterDb_Writer => src/Db_Writer.php
● Zend => lib/Zend/
○ ZendAcl => lib/Zend/Acl.php
Estilo de Código
● PSR-1 Basic Coding Standard
● PSR-2 Coding Style Guide
Estilo de Código
● Espaços usados para indentação.
● Quantidade máxima de caracteres por linha.
● Abertura de chaves.
● Espaçamento no uso de parênteses.
● Codificação utilizada.
● Namespaces e autoloading.
● Etc...
Estilo de Código
● Check
○ PHP Code Sniffer
● Fixer
○ php.tools
○ PHP Coding Standards Fixer
Outras PSR
● PSR-3 - Logger Interface
● PSR-7 - HTTP Message Interface
http://www.php-fig.org/psr/
Composer
● Gerenciador de dependências para PHP.
● Download e instalação automática & autoload.
● Milhares de bibliotecas e pacotes.
● Frameworks.
● Instala pacotes PEAR.
● Autoloading PSR-0 e PSR-4.
Composer - Packagist
● Principal repositório do Composer
● https://packagist.org/
●
Composer - Lock File
● composer.lock
● controle de versão
"Garante que todos que usarem o projeto estarão
usando as mesmas versões das dependências."
OOP no PHP
● classes
● interface
● herança
● traits
● exceptions
● polimorfismo
● encapsulmaneto
● etc...
Difícil
● criar classes coesas.
● extensíveis.
● fácil manutenção.
● bom design.
● refatoraçao.
Busque princípios
● S.O.L.I.D.
● Design Patterns
● Domain Driven Design (DDD)
Testes de Unidade e TDD
● + qualidade
● documentação natural do código
● erros mais facilmente identificados
● ajuda identificar códigos duplicados
● favorece a refatoração
● legibilidade do código
TDD - Justifique, Convença
"De qualquer forma você precisa testar o
código que desenvolve."
Dicas para Documentação
● Não comente fatos óbvios.
● Registre pensamentos importantes que teve.
● Coloque-se na posição de quem esta vendo
o código pela primeira vez.
● Utilize palavras que carreguem o máximo de
significado possível.
Dicas para Documentação
● Faça uso de nomenclaturas:
○ TODO:
○ FIXME:
Dicas para Documentação
● Faça uso de comentários embutidos:
<?php
$con = connect($ip, $porta, true);
Dicas para Documentação
● Faça uso de comentários embutidos:
<?php
$con = connect($ip, $porta, /* use_crypt = */ true);
DockBlocks
phpDocumentor - http://phpdoc.org
PSR-5 -> PHPDoc Standard
● Define padrões e recomendações para
Documetar elementos estruturais.
● Derivado do phpDocumentor 1.x
ZCPE (Zend Certified PHP Engineer)
● Vantagens
○ Zend Yellow Pages.
○ Diferencial em entrevistas de emprego.
○ Amplia seus conhecimentos sobre a linguagem.
○ Boa opção caso queira atuar como instrutor.
○ Reconhecimento.
○ Satisfação Pessoal.
ZCPE (Zend Certified PHP Engineer)
● ~ 420 certificados no Brasil
● voucher -> $ 195.00
● Zend PHP Certification Study Guide -> $ 19,95
Rumo a Certificação PHP:
https://groups.google.com/forum/#!forum/rumo-a-certificacao-php
Outros
● Segurança
● Frameworks
● Performance
● Deploy Automatizado (Phing)
● Integração Contínua (Jenkins)
Referências
Referências
http://www.php-fig.org/
https://getcomposer.org/
https://github.com/
http://phpdoc.org
http://abraphp.org/calendario-de-eventos/
Perguntas ?
douglas.pasqua@gmail.com
http://douglaspasqua.com
http://pt.slideshare.net/dpasqua
Twitter: @dpasqua

Weitere ähnliche Inhalte

Was ist angesagt?

Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
Leonardo Fernandes
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
PHP Day Curitiba
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmática
elliando dias
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
Francisco Santos
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
Augusto Pascutti
 

Was ist angesagt? (20)

Desenvolvimento web e PHP
Desenvolvimento web e PHPDesenvolvimento web e PHP
Desenvolvimento web e PHP
 
Clean code em C#
Clean code em C#Clean code em C#
Clean code em C#
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atech
 
Programe a eficácia do seu código
Programe a eficácia do seu códigoPrograme a eficácia do seu código
Programe a eficácia do seu código
 
Python tdc2019
Python tdc2019 Python tdc2019
Python tdc2019
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
 
BDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasBDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemas
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmática
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
Programação Orientada a Gambiarra
Programação Orientada a GambiarraProgramação Orientada a Gambiarra
Programação Orientada a Gambiarra
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSS
 
Clean code part 2
Clean code   part 2Clean code   part 2
Clean code part 2
 
Impacto dos frameworks PHP
Impacto dos frameworks PHPImpacto dos frameworks PHP
Impacto dos frameworks PHP
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"
 
PHP Orientado a Objetos
PHP Orientado a ObjetosPHP Orientado a Objetos
PHP Orientado a Objetos
 

Ähnlich wie Dicas para sua carreira de Desenvolvedor PHP

Treinamentos Avançados em Informática
Treinamentos Avançados em InformáticaTreinamentos Avançados em Informática
Treinamentos Avançados em Informática
Eder Carneiro
 

Ähnlich wie Dicas para sua carreira de Desenvolvedor PHP (20)

PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
PHP, Mercado e Certificações
PHP, Mercado e CertificaçõesPHP, Mercado e Certificações
PHP, Mercado e Certificações
 
Visao geralti netshoes04
Visao geralti netshoes04Visao geralti netshoes04
Visao geralti netshoes04
 
Visao geralti netshoes04
Visao geralti netshoes04Visao geralti netshoes04
Visao geralti netshoes04
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
PHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e SeguraPHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e Segura
 
It skills para rh aprender e contratar
It skills para rh  aprender e contratarIt skills para rh  aprender e contratar
It skills para rh aprender e contratar
 
Django
DjangoDjango
Django
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Treinamentos Avançados em Informática
Treinamentos Avançados em InformáticaTreinamentos Avançados em Informática
Treinamentos Avançados em Informática
 
Cursos Season
Cursos SeasonCursos Season
Cursos Season
 
Cursos Season
Cursos Season Cursos Season
Cursos Season
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHP
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
 

Mehr von Douglas V. Pasqua

Mehr von Douglas V. Pasqua (9)

Graph API - Desenvolvimento para Facebook
Graph API - Desenvolvimento para FacebookGraph API - Desenvolvimento para Facebook
Graph API - Desenvolvimento para Facebook
 
Web Services RESTful
Web Services RESTfulWeb Services RESTful
Web Services RESTful
 
Introdução APIs RESTful
Introdução APIs RESTfulIntrodução APIs RESTful
Introdução APIs RESTful
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
Unicode: Os segredos da Codificação de Caracteres
Unicode: Os segredos da Codificação de CaracteresUnicode: Os segredos da Codificação de Caracteres
Unicode: Os segredos da Codificação de Caracteres
 
The Facebook Plataform
The Facebook PlataformThe Facebook Plataform
The Facebook Plataform
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
Novas Funcionalidade no PHP 5.3
Novas Funcionalidade no PHP 5.3Novas Funcionalidade no PHP 5.3
Novas Funcionalidade no PHP 5.3
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 

Kürzlich hochgeladen

Kürzlich hochgeladen (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Dicas para sua carreira de Desenvolvedor PHP