Fast Coding

Por Daniel Archer
O que é programar em
alta velocidade?

PHP Conference 2013 - Fast Coding
Usar o framework mais rápido do
mercado!

O que é programar em
alta velocidade?

PHP Conference 2013 - Fast Coding
Usar o framework mais rápido do
mercado!

Não

O que é programar em
alta velocidade?

PHP Conference 2013 - Fast Coding
Saber usar as
suas ferramentas!

PHP Conference 2013 - Fast Coding
Saber usar as
suas ferramentas!

PHP Conference 2013 - Fast Coding

...?
Root / Sumário

Tópicos Abordados
1.

Ferramentas
1.

IDEs (Integrated Development Enviroment)
1.
2.

2.

Editores
1.
2.

2.

Emmet
Gist

Funções Nativas
1.

5.

Porque usar
Vantagens dos micro-frameworks

Plugins
1.
2.

4.

NotePad++
Sublime Text 2 & 3

Frameworks
1.
2.

3.

Eclipse PDT
PHPStorm

Strtotime / array_combine / array_map / glob / etc...

Design Patterns
PHP Conference 2013 - Fast Coding
Root / Ferramentas

IDE
Ambiente de Desenvolvimento
Integrado
(Temos tudo que você irá precisa!)

PHP Conference 2013 - Fast Coding
Root / Ferramentas / IDE

Eclipse PDT
• Ambiente de Desenvolvimento Integrado
(Temos tudo que você irá precisa!)

PHP Conference 2013 - Fast Coding
Root / Ferramentas / IDE

Eclipse PDT
Funcionalidades

•
•
•
•
•

Coloração de Sintaxe
Autocompletar para Códigos (Variáveis, Classes, Funções, ...)
“Jump to Function”
Integração com PHP Unit
Integração com Controle de Versões (GIT, SVN, ...)

PHP Conference 2013 - Fast Coding
Root / Ferramentas / IDE

PhpStorm
• Ambiente de Desenvolvimento Integrado
(Temos tudo que você irá precisa!)

PHP Conference 2013 - Fast Coding
Root / Ferramentas / IDE

PhpStorm
Funcionalidades

•
•
•
•
•

Suporte PHP 5.5
Vagrant Nativo!
Correção de Sintaxe
“Jump to Function”
PHP Doc

•
•
•
•
•

GIT
SVN
Suporte a Frameworks
Namespaces
...

PHP Conference 2013 - Fast Coding
Root / Ferramentas / IDE

Procure na
documentação!

PHP Conference 2013 - Fast Coding
Root / Ferramentas / Editores

Editores

PHP Conference 2013 - Fast Coding
Root / Ferramentas / Editores

Notepad++

PHP Conference 2013 - Fast Coding
Root / Ferramentas / Editores

Notepad++
Prós
• Leve
• Multiuso
• Grande quantidade de
Plugins
• Customizável
• Macro códigos

•
•
•
•

Contras
Incompleto
Excesso de plugins pode
causar transtornos
Alguns plugins de má
qualidade.
Lento para procura de
arquivos/funções

PHP Conference 2013 - Fast Coding
Root / Ferramentas / Editores

Sublime Text 2 & 3

PHP Conference 2013 - Fast Coding
Root / Ferramentas / Editores

Sublime Text 2 & 3
Prós
•
•
•
•

Leve / Multiuso
Package Control
Command Control
Integração com diversas
tecnologias atuais como:

Contras
• Excesso de plugins pode
causar transtornos
• É necessário ser bom em
Street Fighter.

– GIT, SVN, PHP Unit

•
•
•
•
•

Macro códigos
Interface de Busca incrível
Seleção multipla
Performance Fantástica
Muitas opções de
customização
PHP Conference 2013 - Fast Coding
Root / Frameworks

Frameworks!
Agora sim! Qual o melhor?

PHP Conference 2013 - Fast Coding
Root / Frameworks

Frameworks!
Nenhum :(

PHP Conference 2013 - Fast Coding
Root / Frameworks / Porque usar?

Conceito
Framework é a abstração de um
problema, um conjunto de soluções
pré-estabelecidas para um domínio.

PHP Conference 2013 - Fast Coding
Root / Frameworks / Porque usar?

O quê não te contaram...
Utilizar um framework não te fará
escrever um código mais rápido.
Muito menos um código menor.

PHP Conference 2013 - Fast Coding
Root / Frameworks / Porque usar?

...porém
Te fará escrever uma vez só.

PHP Conference 2013 - Fast Coding
Root / Frameworks / Porque usar?

Conheça plenamente o seu
framework
O conhecimento te fará escrever
muito melhor e mais rápido. Não
importa o framework.

PHP Conference 2013 - Fast Coding
Root / Frameworks / Porque usar?

Apostar em Frameworks novos,
pode ser perigoso.
Cabe ao líder da equipe averiguar em cada
projeto se vale a pena correr o risco. Sempre
é bom aprender coisas novas e talvez obter
boas experiências com isso.

PHP Conference 2013 - Fast Coding
Root / Frameworks / Vantagens dos Micro-frameworks

Micro-Frameworks!
A solução do mundo está aqui!
(ou quase)

PHP Conference 2013 - Fast Coding
Root / Frameworks / Vantagens dos Micro-frameworks

Resolvem um problema
específico
Algumas vezes, não precisamos de
bolas de canhão, apenas uma boa
escopeta!

PHP Conference 2013 - Fast Coding
Root / Frameworks / Vantagens dos Micro-frameworks

A não ser a espada do Cloud

Todos precisam da espada do Cloud
PHP Conference 2013 - Fast Coding
Root / Frameworks / Vantagens dos Micro-frameworks

Slim
Silex
GluePHP
Flight
Limonade
Respect
... E muitos outros

PHP Conference 2013 - Fast Coding
Root / Plugins

Emmet
Zen-Conding

PHP Conference 2013 - Fast Coding
Root / Plugins

PHP Conference 2013 - Fast Coding
Root / Plugins

Gist
Criando um Gist de forma Rápida
com Sublime Text 3

PHP Conference 2013 - Fast Coding
Root / Plugins

Gist
Criando um Gist de forma Rápida
com PhpStorm

PHP Conference 2013 - Fast Coding
Root / Funções Nativas

Funções Nativas
Sim, porque você pode aprender a
programar mais rápido usando
recursos da própria linguagem.

PHP Conference 2013 - Fast Coding
Root / Funções Nativas

STRTOTIME();
echo date( “d/m/Y” , strtotime( “last day of next month” ) );
# imprime “31/12/2013”
echo date( “d/m/Y” , strtotime( “next Monday of 2013-11-20” ) );
# imprime “31/12/2013”

PHP Conference 2013 - Fast Coding
Root / Funções Nativas

ARRAY_COMBINE();
<?php
$clienteAtributos = [ "nome“ , "cidade“ , "telefone“ ];
$linhaExportacao = "daniel;porto alegre;51 3333.3333";
$arrayCliente =
array_combine($clienteAtributos, explode(";“,$linhaExportacao ) );
print_r( $arrayCliente );
# Array (
# [nome] => daniel
# [cidade] => porto alegre
# [telefone] => 51 3333.3333
# )
?>
PHP Conference 2013 - Fast Coding
Root / Funções Nativas

ARRAY_MAP();
<?php
function correcaoMaiusculas( $texto ) {
return ucwords( strtolower( $texto ) );
}
$arrayCliente = [ "DANIEL“ , "Jose“ , "paulo“ , “gabriel FERREIRA“ ];
$arrayCliente = array_map( 'correcaoMaiusculas‘ , $arrayCliente);
print_r( $arrayCliente );

# Array (
# [0] => Daniel
# [1] => Jose
# [2] => Paulo
# [3] => Gabriel Ferreira
#)
?>

PHP Conference 2013 - Fast Coding
Root / Funções Nativas

GLOB();
<?php
foreach ( glob("*.txt") as $arquivo ) {
echo "tamanho de $arquivo " . filesize($arquivo) . "n";
}
# tamanho de functionlist.txt 44686
# tamanho de functionsummary.txt 267625
# tamanho de quickref.txt 137820
# glob('my/dir/*.[cC][sS][vV]');
?>

PHP Conference 2013 - Fast Coding
Root / Funções Nativas

PHP Built-in WebServer
$ cd ~/public_html
$ php -S localhost:8000
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit
…

PHP Conference 2013 - Fast Coding
Root / Composer

Composer

PHP Conference 2013 - Fast Coding
• Eclipse PDT - http://www.zend.com/en/company/community/pdt/
• Eclipse PHP Unit - http://blog.loftdigital.com/running-phpunit-tests-in-eclipse-pdt
• Eclipse Egit - http://marketplace.eclipse.org/content/egit-git-team-provider
• Eclipse SVN - http://marketplace.eclipse.org/content/subclipse
• PHP Storm 7 - http://www.jetbrains.com/phpstorm/
• Vagrant - http://www.vagrantup.com/
• Notepad++ - http://notepad-plus-plus.org/
• Notepad++ Emmet - https://github.com/emmetio/npp#readme
• Sublime Text - http://www.sublimetext.com/
• Sublime Text 2 Documentação - http://www.sublimetext.com/docs/2/
• Sublime Text 3 Documentação - http://www.sublimetext.com/docs/3/
• Microframeworks – Slim – http://slimframework.com/
• Microframeworks – Silex - http://silex.sensiolabs.org/
• Microframeworks – GluePHP - http://gluephp.com/
• Microframeworks – Limonade - http://limonade-php.github.io/
• Microframeworks – Flight - http://flightphp.com/
• Microframeworks – Respect - http://respect.li/
• Emmet - http://docs.emmet.io
• Composer - http://getcomposer.org/

PHP Conference 2013 - Fast Coding

PHP Tools for Fast coding

  • 1.
  • 2.
    O que éprogramar em alta velocidade? PHP Conference 2013 - Fast Coding
  • 3.
    Usar o frameworkmais rápido do mercado! O que é programar em alta velocidade? PHP Conference 2013 - Fast Coding
  • 4.
    Usar o frameworkmais rápido do mercado! Não O que é programar em alta velocidade? PHP Conference 2013 - Fast Coding
  • 5.
    Saber usar as suasferramentas! PHP Conference 2013 - Fast Coding
  • 6.
    Saber usar as suasferramentas! PHP Conference 2013 - Fast Coding ...?
  • 7.
    Root / Sumário TópicosAbordados 1. Ferramentas 1. IDEs (Integrated Development Enviroment) 1. 2. 2. Editores 1. 2. 2. Emmet Gist Funções Nativas 1. 5. Porque usar Vantagens dos micro-frameworks Plugins 1. 2. 4. NotePad++ Sublime Text 2 & 3 Frameworks 1. 2. 3. Eclipse PDT PHPStorm Strtotime / array_combine / array_map / glob / etc... Design Patterns PHP Conference 2013 - Fast Coding
  • 8.
    Root / Ferramentas IDE Ambientede Desenvolvimento Integrado (Temos tudo que você irá precisa!) PHP Conference 2013 - Fast Coding
  • 9.
    Root / Ferramentas/ IDE Eclipse PDT • Ambiente de Desenvolvimento Integrado (Temos tudo que você irá precisa!) PHP Conference 2013 - Fast Coding
  • 10.
    Root / Ferramentas/ IDE Eclipse PDT Funcionalidades • • • • • Coloração de Sintaxe Autocompletar para Códigos (Variáveis, Classes, Funções, ...) “Jump to Function” Integração com PHP Unit Integração com Controle de Versões (GIT, SVN, ...) PHP Conference 2013 - Fast Coding
  • 11.
    Root / Ferramentas/ IDE PhpStorm • Ambiente de Desenvolvimento Integrado (Temos tudo que você irá precisa!) PHP Conference 2013 - Fast Coding
  • 12.
    Root / Ferramentas/ IDE PhpStorm Funcionalidades • • • • • Suporte PHP 5.5 Vagrant Nativo! Correção de Sintaxe “Jump to Function” PHP Doc • • • • • GIT SVN Suporte a Frameworks Namespaces ... PHP Conference 2013 - Fast Coding
  • 13.
    Root / Ferramentas/ IDE Procure na documentação! PHP Conference 2013 - Fast Coding
  • 14.
    Root / Ferramentas/ Editores Editores PHP Conference 2013 - Fast Coding
  • 15.
    Root / Ferramentas/ Editores Notepad++ PHP Conference 2013 - Fast Coding
  • 16.
    Root / Ferramentas/ Editores Notepad++ Prós • Leve • Multiuso • Grande quantidade de Plugins • Customizável • Macro códigos • • • • Contras Incompleto Excesso de plugins pode causar transtornos Alguns plugins de má qualidade. Lento para procura de arquivos/funções PHP Conference 2013 - Fast Coding
  • 17.
    Root / Ferramentas/ Editores Sublime Text 2 & 3 PHP Conference 2013 - Fast Coding
  • 18.
    Root / Ferramentas/ Editores Sublime Text 2 & 3 Prós • • • • Leve / Multiuso Package Control Command Control Integração com diversas tecnologias atuais como: Contras • Excesso de plugins pode causar transtornos • É necessário ser bom em Street Fighter. – GIT, SVN, PHP Unit • • • • • Macro códigos Interface de Busca incrível Seleção multipla Performance Fantástica Muitas opções de customização PHP Conference 2013 - Fast Coding
  • 19.
    Root / Frameworks Frameworks! Agorasim! Qual o melhor? PHP Conference 2013 - Fast Coding
  • 20.
    Root / Frameworks Frameworks! Nenhum:( PHP Conference 2013 - Fast Coding
  • 21.
    Root / Frameworks/ Porque usar? Conceito Framework é a abstração de um problema, um conjunto de soluções pré-estabelecidas para um domínio. PHP Conference 2013 - Fast Coding
  • 22.
    Root / Frameworks/ Porque usar? O quê não te contaram... Utilizar um framework não te fará escrever um código mais rápido. Muito menos um código menor. PHP Conference 2013 - Fast Coding
  • 23.
    Root / Frameworks/ Porque usar? ...porém Te fará escrever uma vez só. PHP Conference 2013 - Fast Coding
  • 24.
    Root / Frameworks/ Porque usar? Conheça plenamente o seu framework O conhecimento te fará escrever muito melhor e mais rápido. Não importa o framework. PHP Conference 2013 - Fast Coding
  • 25.
    Root / Frameworks/ Porque usar? Apostar em Frameworks novos, pode ser perigoso. Cabe ao líder da equipe averiguar em cada projeto se vale a pena correr o risco. Sempre é bom aprender coisas novas e talvez obter boas experiências com isso. PHP Conference 2013 - Fast Coding
  • 26.
    Root / Frameworks/ Vantagens dos Micro-frameworks Micro-Frameworks! A solução do mundo está aqui! (ou quase) PHP Conference 2013 - Fast Coding
  • 27.
    Root / Frameworks/ Vantagens dos Micro-frameworks Resolvem um problema específico Algumas vezes, não precisamos de bolas de canhão, apenas uma boa escopeta! PHP Conference 2013 - Fast Coding
  • 28.
    Root / Frameworks/ Vantagens dos Micro-frameworks A não ser a espada do Cloud Todos precisam da espada do Cloud PHP Conference 2013 - Fast Coding
  • 29.
    Root / Frameworks/ Vantagens dos Micro-frameworks Slim Silex GluePHP Flight Limonade Respect ... E muitos outros PHP Conference 2013 - Fast Coding
  • 30.
    Root / Plugins Emmet Zen-Conding PHPConference 2013 - Fast Coding
  • 31.
    Root / Plugins PHPConference 2013 - Fast Coding
  • 32.
    Root / Plugins Gist Criandoum Gist de forma Rápida com Sublime Text 3 PHP Conference 2013 - Fast Coding
  • 33.
    Root / Plugins Gist Criandoum Gist de forma Rápida com PhpStorm PHP Conference 2013 - Fast Coding
  • 34.
    Root / FunçõesNativas Funções Nativas Sim, porque você pode aprender a programar mais rápido usando recursos da própria linguagem. PHP Conference 2013 - Fast Coding
  • 35.
    Root / FunçõesNativas STRTOTIME(); echo date( “d/m/Y” , strtotime( “last day of next month” ) ); # imprime “31/12/2013” echo date( “d/m/Y” , strtotime( “next Monday of 2013-11-20” ) ); # imprime “31/12/2013” PHP Conference 2013 - Fast Coding
  • 36.
    Root / FunçõesNativas ARRAY_COMBINE(); <?php $clienteAtributos = [ "nome“ , "cidade“ , "telefone“ ]; $linhaExportacao = "daniel;porto alegre;51 3333.3333"; $arrayCliente = array_combine($clienteAtributos, explode(";“,$linhaExportacao ) ); print_r( $arrayCliente ); # Array ( # [nome] => daniel # [cidade] => porto alegre # [telefone] => 51 3333.3333 # ) ?> PHP Conference 2013 - Fast Coding
  • 37.
    Root / FunçõesNativas ARRAY_MAP(); <?php function correcaoMaiusculas( $texto ) { return ucwords( strtolower( $texto ) ); } $arrayCliente = [ "DANIEL“ , "Jose“ , "paulo“ , “gabriel FERREIRA“ ]; $arrayCliente = array_map( 'correcaoMaiusculas‘ , $arrayCliente); print_r( $arrayCliente ); # Array ( # [0] => Daniel # [1] => Jose # [2] => Paulo # [3] => Gabriel Ferreira #) ?> PHP Conference 2013 - Fast Coding
  • 38.
    Root / FunçõesNativas GLOB(); <?php foreach ( glob("*.txt") as $arquivo ) { echo "tamanho de $arquivo " . filesize($arquivo) . "n"; } # tamanho de functionlist.txt 44686 # tamanho de functionsummary.txt 267625 # tamanho de quickref.txt 137820 # glob('my/dir/*.[cC][sS][vV]'); ?> PHP Conference 2013 - Fast Coding
  • 39.
    Root / FunçõesNativas PHP Built-in WebServer $ cd ~/public_html $ php -S localhost:8000 PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011 Listening on localhost:8000 Document root is /home/me/public_html Press Ctrl-C to quit … PHP Conference 2013 - Fast Coding
  • 40.
    Root / Composer Composer PHPConference 2013 - Fast Coding
  • 41.
    • Eclipse PDT- http://www.zend.com/en/company/community/pdt/ • Eclipse PHP Unit - http://blog.loftdigital.com/running-phpunit-tests-in-eclipse-pdt • Eclipse Egit - http://marketplace.eclipse.org/content/egit-git-team-provider • Eclipse SVN - http://marketplace.eclipse.org/content/subclipse • PHP Storm 7 - http://www.jetbrains.com/phpstorm/ • Vagrant - http://www.vagrantup.com/ • Notepad++ - http://notepad-plus-plus.org/ • Notepad++ Emmet - https://github.com/emmetio/npp#readme • Sublime Text - http://www.sublimetext.com/ • Sublime Text 2 Documentação - http://www.sublimetext.com/docs/2/ • Sublime Text 3 Documentação - http://www.sublimetext.com/docs/3/ • Microframeworks – Slim – http://slimframework.com/ • Microframeworks – Silex - http://silex.sensiolabs.org/ • Microframeworks – GluePHP - http://gluephp.com/ • Microframeworks – Limonade - http://limonade-php.github.io/ • Microframeworks – Flight - http://flightphp.com/ • Microframeworks – Respect - http://respect.li/ • Emmet - http://docs.emmet.io • Composer - http://getcomposer.org/ PHP Conference 2013 - Fast Coding