SlideShare uma empresa Scribd logo
1 de 24
$maneirasDeMelhorarSeuCodigo


     Aplicando 5S no seu código
2
3
4
PHPDEPEND


PHPCSD               PHPMD




                             5
QA TOOLS
• PHP QA TOOLS - http://phpqatools.org/

• PHPUnit
• PHP_Depend
• PHP Dead Code Detector
• PHP_CodeSniffer
• PHP Mess Detector
Entre outros...


                                          6
Linha Guia




             7
Convenção de Código
• Zend Coding Standards -
  http://framework.zend.com/manual/1.12/en/
  coding-standard.html



• PEAR -
  http://pear.php.net/manual/en/standards.php


                                              8
<?php
  foreach($consulta as $valor):
?>
    <tr>
      <td><?php echo $valor->id; ?></td>
      <td><?php echo $valor->nome; ?></td>
      <td><?php echo $valor->email; ?></td>
    <tr>
<?php
  endforeach;
?>




                                              9
Criado para resolver o problema de escopo
entre bibliotecas.
*Namespace pode conter definições de classes,
constantes e funções, mas não código livre. (A
partir da versão 5.3)
           <?php
             namespace coreControllerHello;

             class World {
                function __construct() {
                  echo "Helloworld";
                }
             }
           ?>
                                                 10
Qual é a ideia?

Core
         DB
        URL
                     11
Paradigma?




• Estude-os (objetos,aspectos,eventos)
• Há projetos?

                                         12
• Gere sua documentação automaticamente
• Gerencie suas tarefas através do seu código




                                                13
14
15
Isso é justificável hoje?
  <?php
  function require_path($path) {
    $root = scandir($path);
    $files = array();
    foreach($root as $value)
    {
       if($value === '.' || $value === '..') {continue;}
          if(is_file("$path/$value")) {
             $pInfo = pathinfo($value);
             if ($pInfo['extension'] == "php") {
                require_once("$path/$value");
                echo "$path/$value<br>";
             }
          } else {
             require_path($path);
          }
    }
  }
  ?>


                                                           16
Como podemos modificar isso?
           scandir($dir)


       __autoload($classname)


               use




                                17
O que é util?


  Refatore




                18
Refatoração
• Maioria das técnicas associadas ao oop!
           Extrair Método (Extract Method)
           Mover Método (Move Method)
           Mover Atributo (Move Field')
           Extrair Classe (Extract Class)
           Encapsular Atributo (Encapsulate Field)
           Renomear Método (Rename Method)
           Subir Método (Pull Up Method)
           Subir Atributo (Pull Up Field)
           Descer Método (Push Down Method)
           Descer Atributo (Push Down Field)
           Extrair Sub-classe (Extract Subclass)
           Extrair Super-classe (Extract Superclass)



                                                       19
Coca-Cola   Café?




                    20
Disciplina




             21
Considerações Finais
DRY(Do not repeat yourself) – (Já Falamos)
KISS(Keep it simple, stupid) – Menos é mais


                  Php.net
                   GUIA




                                              22
Perguntas


            23
Obrigado




           24

Mais conteúdo relacionado

Mais procurados

Iniciando com javaScript 2017
Iniciando com javaScript 2017Iniciando com javaScript 2017
Iniciando com javaScript 2017Romualdo Andre
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Carlos Santos
 
Introdução ao Ruby
Introdução ao RubyIntrodução ao Ruby
Introdução ao RubyMilton Moura
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsGuilherme Blanco
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMFábio Rehm
 
Geolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e RoutesGeolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e RoutesLuis Gustavo Almeida
 
Programando Melhor - Flisol
Programando Melhor - FlisolProgramando Melhor - Flisol
Programando Melhor - FlisolLeonn Leite
 

Mais procurados (17)

Php
PhpPhp
Php
 
Pdo do PHP Palestra
Pdo do PHP PalestraPdo do PHP Palestra
Pdo do PHP Palestra
 
Php curl - Coleta de dados na web
Php curl - Coleta de dados na webPhp curl - Coleta de dados na web
Php curl - Coleta de dados na web
 
PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
Iniciando com javaScript 2017
Iniciando com javaScript 2017Iniciando com javaScript 2017
Iniciando com javaScript 2017
 
Resources no XAML
Resources no XAMLResources no XAML
Resources no XAML
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4
 
Introdução ao Ruby
Introdução ao RubyIntrodução ao Ruby
Introdução ao Ruby
 
JasperReports
JasperReportsJasperReports
JasperReports
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object Calisthenics
 
Poo com php
Poo com phpPoo com php
Poo com php
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
 
Palestra de PDO
Palestra de PDOPalestra de PDO
Palestra de PDO
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
 
Geolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e RoutesGeolocalização em PHP - Google Places, Maps e Routes
Geolocalização em PHP - Google Places, Maps e Routes
 
Programando Melhor - Flisol
Programando Melhor - FlisolProgramando Melhor - Flisol
Programando Melhor - Flisol
 

Destaque

Refatorando Códigos PHP - PHP Conference 2013
Refatorando Códigos PHP - PHP Conference 2013Refatorando Códigos PHP - PHP Conference 2013
Refatorando Códigos PHP - PHP Conference 2013Levi Ferreira
 
Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)maditabalnco
 
What's Next in Growth? 2016
What's Next in Growth? 2016What's Next in Growth? 2016
What's Next in Growth? 2016Andrew Chen
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsBarry Feldman
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome EconomyHelge Tennø
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your BusinessBarry Feldman
 

Destaque (6)

Refatorando Códigos PHP - PHP Conference 2013
Refatorando Códigos PHP - PHP Conference 2013Refatorando Códigos PHP - PHP Conference 2013
Refatorando Códigos PHP - PHP Conference 2013
 
Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)
 
What's Next in Growth? 2016
What's Next in Growth? 2016What's Next in Growth? 2016
What's Next in Growth? 2016
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
 

Semelhante a 5 formas de melhorar seu código PHP

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 UVAThiago Cifani
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkMarcelo Rodrigo
 
PHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHPPHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHPiMasters
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que pareceImpacta Eventos
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineOtávio Calaça Xavier
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Thyago Maia
 
PHP - Programação para seres humanos
PHP - Programação para seres humanosPHP - Programação para seres humanos
PHP - Programação para seres humanosCaike Souza
 
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Luís Cobucci
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e SphinxElton Minetto
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01joaocarlobarros
 
Clean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHPClean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHPRafael Neris
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopAlexei Znamensky
 

Semelhante a 5 formas de melhorar seu código PHP (20)

Modern PHP
Modern PHPModern PHP
Modern PHP
 
Solid
SolidSolid
Solid
 
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
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana framework
 
TDC 2016 - PHP7
TDC 2016 - PHP7TDC 2016 - PHP7
TDC 2016 - PHP7
 
PHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHPPHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHP
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3
 
PHP - Programação para seres humanos
PHP - Programação para seres humanosPHP - Programação para seres humanos
PHP - Programação para seres humanos
 
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
 
Dev Ext PHP
Dev Ext PHPDev Ext PHP
Dev Ext PHP
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e Sphinx
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
Clean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHPClean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHP
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
PHP, Mercado e Certificações
PHP, Mercado e CertificaçõesPHP, Mercado e Certificações
PHP, Mercado e Certificações
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 

5 formas de melhorar seu código PHP

  • 1. $maneirasDeMelhorarSeuCodigo Aplicando 5S no seu código
  • 2. 2
  • 3. 3
  • 4. 4
  • 6. QA TOOLS • PHP QA TOOLS - http://phpqatools.org/ • PHPUnit • PHP_Depend • PHP Dead Code Detector • PHP_CodeSniffer • PHP Mess Detector Entre outros... 6
  • 8. Convenção de Código • Zend Coding Standards - http://framework.zend.com/manual/1.12/en/ coding-standard.html • PEAR - http://pear.php.net/manual/en/standards.php 8
  • 9. <?php foreach($consulta as $valor): ?> <tr> <td><?php echo $valor->id; ?></td> <td><?php echo $valor->nome; ?></td> <td><?php echo $valor->email; ?></td> <tr> <?php endforeach; ?> 9
  • 10. Criado para resolver o problema de escopo entre bibliotecas. *Namespace pode conter definições de classes, constantes e funções, mas não código livre. (A partir da versão 5.3) <?php namespace coreControllerHello; class World { function __construct() { echo "Helloworld"; } } ?> 10
  • 11. Qual é a ideia? Core DB URL 11
  • 13. • Gere sua documentação automaticamente • Gerencie suas tarefas através do seu código 13
  • 14. 14
  • 15. 15
  • 16. Isso é justificável hoje? <?php function require_path($path) { $root = scandir($path); $files = array(); foreach($root as $value) { if($value === '.' || $value === '..') {continue;} if(is_file("$path/$value")) { $pInfo = pathinfo($value); if ($pInfo['extension'] == "php") { require_once("$path/$value"); echo "$path/$value<br>"; } } else { require_path($path); } } } ?> 16
  • 17. Como podemos modificar isso? scandir($dir) __autoload($classname) use 17
  • 18. O que é util? Refatore 18
  • 19. Refatoração • Maioria das técnicas associadas ao oop! Extrair Método (Extract Method) Mover Método (Move Method) Mover Atributo (Move Field') Extrair Classe (Extract Class) Encapsular Atributo (Encapsulate Field) Renomear Método (Rename Method) Subir Método (Pull Up Method) Subir Atributo (Pull Up Field) Descer Método (Push Down Method) Descer Atributo (Push Down Field) Extrair Sub-classe (Extract Subclass) Extrair Super-classe (Extract Superclass) 19
  • 20. Coca-Cola Café? 20
  • 22. Considerações Finais DRY(Do not repeat yourself) – (Já Falamos) KISS(Keep it simple, stupid) – Menos é mais Php.net GUIA 22
  • 23. Perguntas 23
  • 24. Obrigado 24