5 maneiras de melhorar seu código php
TRANSCRIPT
$maneirasDeMelhorarSeuCodigo
Aplicando 5S no seu código
AUGUSTO DAS NEVES@AUGUSTO_DAS
2
Agenda
Origem
Conceitos
Considerações
3
ORIGEM5S
4
5
$Limpeza = $Seiso = 清掃 PHPCSD PHPMD
PHPDEPEND
X
6
QA TOOLS• PHP QA TOOLS - http://phpqatools.org/
• PHPUnit• PHP_Depend• PHP Dead Code Detector• PHP_CodeSniffer• PHP Mess DetectorEntre outros...
7
$organizacao[] = $seiton = 整頓 Linha Guia
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
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; ?>
Servido?
10
$organizacao[] =$namespacesCriado 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 core\Controller\Hello;
class World { function __construct() { echo "Helloworld"; } } ?>
11
Qual é a ideia?
Core
DB
URL
12
Paradigma?
• Estude-os (objetos,aspectos,eventos)• Há projetos?
13
• Gere sua documentação automaticamente• Gerencie suas tarefas através do seu código
$organizacao[] =$phpdocumentor
14
15
Exemplo
16
Isso é justificável hoje?<?phpfunction 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); } }}?>
17
Como podemos modificar isso?
scandir($dir)
__autoload($classname)
use
18
$utilidade= $seiri = 整理 O que é util?
Refatore
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)
20
清潔 , Seiketsu
Café?Coca-Cola
21
躾 , Shitsuke
Disciplina
22
Considerações Finais
DRY(Do not repeat yourself) – (Já Falamos)KISS(Keep it simple, stupid) – Menos é mais
Php.netGUIA
23
Perguntas
24
Obrigado