Transcript
Page 1: A Arte do Desenvolvimento PHP v.1.5

A Arte do Desenvolvimento PHPA Arte do Desenvolvimento PHPPHP Conference 2010PHP Conference 2010

Page 2: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Duodraco...Duodraco...

● Desenvolvimento web desde 2002● Análise, desenvolvimento, arquitetura

● Zend Certified Engineer '07● Certified Scrum Master● Analista no TiqueImóveis● Evangelista PHP

Page 3: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Falaremos hoje sobreFalaremos hoje sobre

● PHP● Técnicas de Desenvolvimento● Boas Práticas● Ferramentas● Coisas para ter em mente● Entre outras coisas

Page 4: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

ObjetivosObjetivos

Page 5: A Arte do Desenvolvimento PHP v.1.5

Somos ArtesãosSomos Artesãos

Page 6: A Arte do Desenvolvimento PHP v.1.5

precisamos de ferramentasprecisamos de ferramentas

Page 7: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

O que temos à mão?O que temos à mão?

Page 8: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

PHPPHP

● Por si só já é uma toolbox● Suporta a maioria dos SGBDs● SQLite● Suporte a Orientação a Objetos

● Design Patterns

● Streams● Controle sobre o HTTP● XML, JSON, WSDL ...

Page 9: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

NamespacesNamespaces

Page 10: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

● PHP5.3+● Organização● Pacotes● Evita conflitos de nome

namespace Framework \ DB;use Framework \ DB;Instance::conn($dsn,$user,$secret);Framework \ DB \ Instance::conn(...);

NamespacesNamespaces

Page 11: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

SPL: Standard PHP LibrarySPL: Standard PHP Library

Page 12: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

SPLSPL

● Classes, Interfaces e funções● Funções para Autoload e outras● Iterators● Estruturas de Dados● Observer● Array Object● SPLTypes

Page 13: A Arte do Desenvolvimento PHP v.1.5

PDO: PHP Data ObjectsPDO: PHP Data Objects

Page 14: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

PDOPDO

● Interface padrão para acesso a BD● $pdo->query ao invés de xpto_query

● Drivers● MSSql, MySQL, PostgreSQL, Firebird, Oracle*,

PDO 4D (experimental), ODBC

● Utiliza-se da SPL● Iterators reduzem a carga

● Processamento e Transporte de dados

*instável

Page 15: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

DatetimeDatetime

Page 16: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

DatetimeDatetime

● PHP 5.2+● Conjunto de classes para manipulação de

tempo.● Timezone● Interval / Period

Page 17: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Command Line InterfaceCommand Line Interface

Page 18: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Buscando recursos externosBuscando recursos externos

Page 19: A Arte do Desenvolvimento PHP v.1.5

Google CodeGoogle Code

Page 20: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Source ForgeSource Forge

Page 21: A Arte do Desenvolvimento PHP v.1.5

GitHubGitHub

Page 22: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

PEAR e PECLPEAR e PECL

Page 23: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

PEAR e PECLPEAR e PECL

● PEAR – Classes e bibliotecas (PHP)● PECL – Extensões compiladas

● pear channel-discover pear.phpunit.de

● pear install –all-deps phpunit/PHPUnit

● pecl install xdebug

● Em breve PEAR2

Page 24: A Arte do Desenvolvimento PHP v.1.5

Mãos à obraMãos à obra

Page 25: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

IDEIDE

● Integrated Development Enviroment● Ambiente integrado: Código, Debug, Profilling...

● Eclipse● ZendStudio | PDT | Aptana

● Netbeans● Komodo● Kdevelop● Geany

Page 26: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

EditoresEditores

● Windows● Notepad++

● Mac● Textmate● Coda

● Linux● Kate● Gedit

● VIM

Page 27: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

FrameworksFrameworks

Page 28: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

FrameworksFrameworks

● Vai te poupar tempo ● e evitar cabelos brancos precoces

● O básico já está pronto● Estrutura● Conexão com o BD● Segurança● Comuncação (API / Email / WS / etc)

● Na maioria adotam o MVC

Page 29: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

FrameworksFrameworks

● Zend Framework● Symfony● CakePHP● CodeIgniter● Kohana● Seagull● Yii

● Prado● EzComponents● FuseBox● QCodo

Page 30: A Arte do Desenvolvimento PHP v.1.5

Manipulação de DadosManipulação de Dados

Page 31: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Camada de AbstraçãoCamada de Abstração

● Provê uma interface unificada de comunicação entre a aplicação e o Banco de Dados, seja qual for.● PDO● MDB2● ADODB● DbFacile● Doctrine

Page 32: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

ORMORM

● Mapeamento Objeto-Relacional● Objetos como entidades

● Creole● Propel● Doctrine● Outlet , RedBean

Page 33: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

NoSQLNoSQL

● Memcached [PECL]● MongoDB | CouchDB

● JSON● Extensão● Doctrine

Page 34: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Acabando com os Bugs!Acabando com os Bugs!

Page 35: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Acabando com os Bugs! Acabando com os Bugs!

● NÃO “DEBUGUE” COM ECHO!!!● Utilize ferramentas que:

● Param a execução● Permitem o avanço passo-a-passo da execução● Mostram todas as variáveis ativas em qualquer

ponto● Avaliam performance● Possibilitem que você faça tudo isso da sua IDE

Page 36: A Arte do Desenvolvimento PHP v.1.5

E o nosso repelente é …E o nosso repelente é …

Page 37: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

XDebugXDebug

● PECL, Binários, código fonte● Debugging● Tracing● Profilling

● Cachegrind

● Integração com as principais IDEs

Page 38: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Além do XDebugAlém do XDebug

● Webgrind● PHP_Debug● Dbug● FirePHP● *DBG*

Page 39: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Fazendo ArteFazendo Arte

Page 40: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Integração ContínuaIntegração Contínua

Page 41: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Integração ContínuaIntegração Contínua

● “² Condição de constituir um todo pela adição ou combinação de partes ou elementos.” (Michaelis)

● Integração de uma mudança

● Sem que “quebre” seu projeto● Regularmente

● Prática de engenharia de software

● Metodologias ágeis● Produzir um sistema funcional quantas vezes forem

possíveis

Page 42: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Integração ContínuaIntegração Contínua

● Hudson + Phing● PHP Under Control [CruiseControl]● Arbit● Sismo● XINC – Xinc Is Not Cruise Control

Page 43: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Deployment com PhingDeployment com Phing

Page 44: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

PhingPhing

● Phing Is Not Gnumake● Ferramenta de building, realiza tarefas que

auxiliam a aplicação● Configurar● Empacotar● Transferir entre servidores● Testar

– Testes unitários, padrões de código, documentação● etc

Page 45: A Arte do Desenvolvimento PHP v.1.5

Testes UnitáriosTestes Unitários

Page 46: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Testes UnitáriosTestes Unitários

● Testes de Entrada e Saída para cada unidade do projeto

● PHPUnit● Lime● SimpleTest

Page 47: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Padrão de CodificaçãoPadrão de Codificação

Page 48: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Padrão de CodificaçãoPadrão de Codificação

● Organização● Consistência, todos programam do mesmo

jeito● Zend, PEAR, PHPCS, Squiz e MySource

● PHP_Codesniffer ● CodeBeautifier / PHP_Beautifier

Page 49: A Arte do Desenvolvimento PHP v.1.5

DocumentaçãoDocumentação

Page 50: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

DocumentaçãoDocumentação

● PHPDocumentor● Doxygen● Annotations

● PHP2UML / UML2PHP● Dia2PHP● PHP2XMI

Page 51: A Arte do Desenvolvimento PHP v.1.5

ReplicaçãoReplicação

Page 52: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

ReplicaçãoReplicação

● Duplicação:

● Textualmente● Marcação● Funcionalidade

● Replicação != Reutilização

● Código replicado “evolui” em separado

● PHPCPD – Copy & Paste Detector

● Varre os arquivos PHP em busca de trechos duplicados

Page 53: A Arte do Desenvolvimento PHP v.1.5

Bagunça???Bagunça???

Page 54: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Bagunça???Bagunça???

● Pouca experiência● Código Legado● Pressa● Pressão

● Sobrinhos...

Page 55: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

PHP Mess DetectorPHP Mess Detector

● Procura por trechos que possam● Ter possíveis bugs● Código não otimizado● Expressões exageradamente complexas● Parâmetros, métodos e atributos não usados

● Indica código a ser refatorado

Page 56: A Arte do Desenvolvimento PHP v.1.5

Métricas de SoftwareMétricas de Software

Page 57: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Métricas de SoftwareMétricas de Software

● PHP_Depend● Indetifica porções de código candidatas a

refatoração.● CCN: Cyclomatic Complexity● LoC - > Lines of Code

– Totais– Comentadas (CLoC) ou não (NCLoC)– Executáveis (EloC)

● etc..

Page 58: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

GerenciandoGerenciando

Page 59: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

GerenciandoGerenciando

● Projetos● Tarefas● Bugs● Equipe● Workflow● Versões● Integração

Page 60: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

Gerenciando ProjetosGerenciando Projetos

● PHProjekt● PHP-Collab● Achievo● Arbit● Mantis

Page 61: A Arte do Desenvolvimento PHP v.1.5

Objetivo e CriatividadeObjetivo e Criatividade

Page 62: A Arte do Desenvolvimento PHP v.1.5

Dúvidas???Dúvidas???

Page 63: A Arte do Desenvolvimento PHP v.1.5

PHPConference Brasil 2010 - Duodraco

● http://duodra.co● [email protected]

● @duodraco [twitter e identi.ca]

● facebook.com/duodraco● linkedin.com/in/andersoncasimiro● slideshare.net/duodraco

ContatoContato


Top Related