A Arte do Desenvolvimento PHP v.1.5

  • Published on
    01-Sep-2014

  • View
    1.883

  • Download
    3

DESCRIPTION

Esta palestra visa realizar um paralelo entre o desenvolvimento de aplicaes e o trabalho de artistas.

Transcript

A Arte do Desenvolvimento PHP PHP Conference 2010 Duodraco... Desenvolvimento web desde 2002 Anlise, desenvolvimento, arquitetura Zend Certified Engineer 07 Certified Scrum Master Analista no TiqueImveis Evangelista PHP PHPConference Brasil 2010 - Duodraco Falaremos hoje sobre PHP Tcnicas de Desenvolvimento Boas Prticas Ferramentas Coisas para ter em mente Entre outras coisas PHPConference Brasil 2010 - Duodraco ObjetivosPHPConference Brasil 2010 - Duodraco Somos Artesos precisamos de ferramentas O que temos mo? PHPConference Brasil 2010 - Duodraco PHP Por si s j uma toolbox Suporta a maioria dos SGBDs SQLite Suporte a Orientao a Objetos Design Patterns Streams Controle sobre o HTTP XML, JSON, WSDL ... PHPConference Brasil 2010 - Duodraco NamespacesPHPConference Brasil 2010 - Duodraco Namespaces PHP5.3+ Organizao Pacotes Evita conflitos de nome namespace Framework DB; use Framework DB; Instance::conn($dsn,$user,$secret); Framework DB Instance::conn(...); PHPConference Brasil 2010 - Duodraco SPL: Standard PHP Library PHPConference Brasil 2010 - Duodraco SPL Classes, Interfaces e funes Funes para Autoload e outras Iterators Estruturas de Dados Observer Array Object SPLTypes PHPConference Brasil 2010 - Duodraco PDO: PHP Data Objects PDO Interface padro para acesso a BD $pdo->query ao invs 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 *instvel PHPConference Brasil 2010 - Duodraco Datetime PHPConference Brasil 2010 - Duodraco Datetime PHP 5.2+ Conjunto de classes para manipulao de tempo. Timezone Interval / Period PHPConference Brasil 2010 - Duodraco Command Line InterfacePHPConference Brasil 2010 - Duodraco Buscando recursos externos PHPConference Brasil 2010 - Duodraco Google Code Source Forge PHPConference Brasil 2010 - Duodraco GitHub PEAR e PECL PHPConference Brasil 2010 - Duodraco PEAR e PECL PEAR Classes e bibliotecas (PHP) PECL Extenses compiladas pear channel-discover pear.phpunit.de pear install all-deps phpunit/PHPUnit pecl install xdebug Em breve PEAR2 PHPConference Brasil 2010 - Duodraco Mos obra IDE Integrated Development Enviroment Ambiente integrado: Cdigo, Debug, Profilling... Eclipse ZendStudio | PDT | Aptana Netbeans Komodo Kdevelop Geany PHPConference Brasil 2010 - Duodraco Editores Windows VIM Notepad++ Mac Textmate Coda Linux Kate Gedit PHPConference Brasil 2010 - Duodraco Frameworks PHPConference Brasil 2010 - Duodraco Frameworks Vai te poupar tempo e evitar cabelos brancos precoces O bsico j est pronto Estrutura Conexo com o BD Segurana Comuncao (API / Email / WS / etc) Na maioria adotam o MVC PHPConference Brasil 2010 - Duodraco Frameworks Zend Framework Prado Symfony EzComponents CakePHP FuseBox CodeIgniter QCodo Kohana Seagull Yii PHPConference Brasil 2010 - Duodraco Manipulao de Dados Camada de Abstrao Prov uma interface unificada de comunicao entre a aplicao e o Banco de Dados, seja qual for. PDO MDB2 ADODB DbFacile Doctrine PHPConference Brasil 2010 - Duodraco ORM Mapeamento Objeto-Relacional Objetos como entidades Creole Propel Doctrine Outlet , RedBean PHPConference Brasil 2010 - Duodraco NoSQL Memcached [PECL] MongoDB | CouchDB JSON Extenso Doctrine PHPConference Brasil 2010 - Duodraco Acabando com os Bugs!PHPConference Brasil 2010 - Duodraco Acabando com os Bugs! NO DEBUGUE COM ECHO!!! Utilize ferramentas que: Param a execuo Permitem o avano passo-a-passo da execuo Mostram todas as variveis ativas em qualquer ponto Avaliam performance Possibilitem que voc faa tudo isso da sua IDE PHPConference Brasil 2010 - Duodraco E o nosso repelente XDebug PECL, Binrios, cdigo fonte Debugging Tracing Profilling Cachegrind Integrao com as principais IDEs PHPConference Brasil 2010 - Duodraco Alm do XDebug Webgrind PHP_Debug Dbug FirePHP *DBG* PHPConference Brasil 2010 - Duodraco Fazendo ArtePHPConference Brasil 2010 - Duodraco Integrao Contnua PHPConference Brasil 2010 - Duodraco Integrao Contnua Condio de constituir um todo pela adio ou combinao de partes ou elementos. (Michaelis) Integrao de uma mudana Sem que quebre seu projeto Regularmente Prtica de engenharia de software Metodologias geis Produzir um sistema funcional quantas vezes forem possveis PHPConference Brasil 2010 - Duodraco Integrao Contnua Hudson + Phing PHP Under Control [CruiseControl] Arbit Sismo XINC Xinc Is Not Cruise Control PHPConference Brasil 2010 - Duodraco Deployment com PhingPHPConference Brasil 2010 - Duodraco Phing Phing Is Not Gnumake Ferramenta de building, realiza tarefas que auxiliam a aplicao Configurar Empacotar Transferir entre servidores Testar Testes unitrios, padres de cdigo, documentao etc PHPConference Brasil 2010 - Duodraco Testes Unitrios Testes Unitrios Testes de Entrada e Sada para cada unidade do projeto PHPUnit Lime SimpleTest PHPConference Brasil 2010 - Duodraco Padro de CodificaoPHPConference Brasil 2010 - Duodraco Padro de Codificao Organizao Consistncia, todos programam do mesmo jeito Zend, PEAR, PHPCS, Squiz e MySource PHP_Codesniffer CodeBeautifier / PHP_Beautifier PHPConference Brasil 2010 - Duodraco Documentao Documentao PHPDocumentor Doxygen Annotations PHP2UML / UML2PHP Dia2PHP PHP2XMI PHPConference Brasil 2010 - Duodraco Replicao Replicao Duplicao: Textualmente Marcao Funcionalidade Replicao != Reutilizao Cdigo replicado evolui em separado PHPCPD Copy & Paste Detector Varre os arquivos PHP em busca de trechos duplicados PHPConference Brasil 2010 - Duodraco Baguna??? Baguna??? Pouca experincia Cdigo Legado Pressa Presso Sobrinhos... PHPConference Brasil 2010 - Duodraco PHP Mess Detector Procura por trechos que possam Ter possveis bugs Cdigo no otimizado Expresses exageradamente complexas Parmetros, mtodos e atributos no usados Indica cdigo a ser refatorado PHPConference Brasil 2010 - Duodraco Mtricas de Software Mtricas de Software PHP_Depend Indetifica pores de cdigo candidatas a refatorao. CCN: Cyclomatic Complexity LoC - > Lines of Code Totais Comentadas (CLoC) ou no (NCLoC) Executveis (EloC) etc.. PHPConference Brasil 2010 - Duodraco Gerenciando PHPConference Brasil 2010 - Duodraco Gerenciando Projetos Tarefas Bugs Equipe Workflow Verses Integrao PHPConference Brasil 2010 - Duodraco Gerenciando Projetos PHProjekt PHP-Collab Achievo Arbit Mantis PHPConference Brasil 2010 - Duodraco Objetivo e Criatividade Dvidas??? Contato http://duodra.co o@duodra.co @duodraco [twitter e identi.ca] facebook.com/duodraco linkedin.com/in/andersoncasimiro slideshare.net/duodraco PHPConference Brasil 2010 - Duodraco