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

Dicas para sua carreira de Desenvolvedor PHP

  • 1.
    Dicas para suacarreira de Desenvolvedor PHP Tornando-se um profissional melhor http://douglaspasqua.com
  • 2.
  • 3.
    1. Dicas parasua carreira como profissional. 2. Dicas de melhores práticas PHP.
  • 4.
    Assuma a Responsabilidade "Aocometer erros, ofereça opções e não desculpas."
  • 5.
    Assuma a Responsabilidade "Aocometer erros, ofereça opções e não desculpas." ...Linguagem de Programação, Sistema Operacional, Outros colaboradores...
  • 6.
    Assuma a Responsabilidade OfereçaOpções: ● "Precisamos refatorar o código" ● "É necessário criar testes automatizados" ● "É necessário tempo para avaliar a melhor maneira de proceder"
  • 7.
    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 ?”
  • 8.
    Sua Carteira deConhecimentos
  • 9.
    Sua Carteira deConhecimentos ● 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.
  • 10.
  • 11.
  • 13.
  • 15.
    PHP do JeitoCerto “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.”
  • 16.
    PHP do JeitoCerto ● 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.
  • 17.
    PHP do JeitoCerto ● 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
  • 18.
    PHP do JeitoCerto ● Livro digital Leanpub: https://leanpub.com/phptherightway ● Você paga o quanto acha que vale. (inclusive free) ● Destinado ao projeto EEF - Eletronic Frontier Foundation.
  • 19.
    ● Mantido peloPHP-FIG - Framework Interop Group Siga padrões - PSR http://www.php-fig.org/
  • 20.
    Autoloading ● PSR-0 AutoloadingStandard ● PSR-4 Improved Autoloading
  • 21.
    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
  • 22.
    PSR-4 ● Permite umaEstrutura de diretórios mais concisa ● Obrigatório uso de Namespaces (>= php5.3) ● Recomendado para novos projetos
  • 23.
    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
  • 24.
    Estilo de Código ●PSR-1 Basic Coding Standard ● PSR-2 Coding Style Guide
  • 25.
    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...
  • 26.
    Estilo de Código ●Check ○ PHP Code Sniffer ● Fixer ○ php.tools ○ PHP Coding Standards Fixer
  • 27.
    Outras PSR ● PSR-3- Logger Interface ● PSR-7 - HTTP Message Interface http://www.php-fig.org/psr/
  • 29.
    Composer ● Gerenciador dedependê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.
  • 30.
    Composer - Packagist ●Principal repositório do Composer ● https://packagist.org/ ●
  • 31.
    Composer - LockFile ● composer.lock ● controle de versão "Garante que todos que usarem o projeto estarão usando as mesmas versões das dependências."
  • 33.
    OOP no PHP ●classes ● interface ● herança ● traits ● exceptions ● polimorfismo ● encapsulmaneto ● etc...
  • 34.
    Difícil ● criar classescoesas. ● extensíveis. ● fácil manutenção. ● bom design. ● refatoraçao.
  • 35.
    Busque princípios ● S.O.L.I.D. ●Design Patterns ● Domain Driven Design (DDD)
  • 36.
    Testes de Unidadee 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
  • 37.
    TDD - Justifique,Convença "De qualquer forma você precisa testar o código que desenvolve."
  • 38.
    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.
  • 39.
    Dicas para Documentação ●Faça uso de nomenclaturas: ○ TODO: ○ FIXME:
  • 40.
    Dicas para Documentação ●Faça uso de comentários embutidos: <?php $con = connect($ip, $porta, true);
  • 41.
    Dicas para Documentação ●Faça uso de comentários embutidos: <?php $con = connect($ip, $porta, /* use_crypt = */ true);
  • 42.
  • 43.
    PSR-5 -> PHPDocStandard ● Define padrões e recomendações para Documetar elementos estruturais. ● Derivado do phpDocumentor 1.x
  • 44.
    ZCPE (Zend CertifiedPHP 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.
  • 45.
    ZCPE (Zend CertifiedPHP 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
  • 46.
    Outros ● Segurança ● Frameworks ●Performance ● Deploy Automatizado (Phing) ● Integração Contínua (Jenkins)
  • 47.
  • 48.
  • 49.