SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4
Carlos Santos
 
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
Fábio Rehm
 

What's hot (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
 

Viewers also liked

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
Levi Ferreira
 

Viewers also liked (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
 

Similar to 5 Maneiras de melhorar seu código PHP

Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
Impacta Eventos
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
PrinceGuru MS
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
joaocarlobarros
 

Similar to 5 Maneiras 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 Maneiras 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