• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Entorno de desarrollo productivo
 

Entorno de desarrollo productivo

on

  • 15,295 views

Colección de tips para incrementar la productividad del desarrollador PHP/Symfony.

Colección de tips para incrementar la productividad del desarrollador PHP/Symfony.

Statistics

Views

Total Views
15,295
Views on SlideShare
4,098
Embed Views
11,197

Actions

Likes
4
Downloads
222
Comments
0

7 Embeds 11,197

http://www.symfony.es 10996
http://symfony.es 146
http://comunidadcodificada.com 31
http://translate.googleusercontent.com 8
http://facultia.com 7
http://webcache.googleusercontent.com 5
http://twitter.com 4
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

Entorno de desarrollo productivo Entorno de desarrollo productivo Presentation Transcript

  • Sunday, July 3, 2011
  • Sunday, July 3, 2011
  • Quién es Pablo Godel?" • Argentino, viviendo en Miami desde 1999, EE.UU. • Programador PHP, Symfony, entre otros • Fundador de la lista de PHP en español http:// news.php.net/php.general.es/3 )antes de Julio 2000( • Pasé el control a php.net con más de 1000 subscriptos • Co-fundador de ServerGrove Networks ⁃ fundada en 2005  ⁃ servicios de hosting especializado en PHP y SymfonySunday, July 3, 2011
  • Entorno Productivo Sistema OperativoSunday, July 3, 2011
  • Entorno Productivo - sistema operativo Opciones disponibles • Mac OS X )basado en Unix( • Linux • WindowsSunday, July 3, 2011
  • Entorno Productivo - sistema operativo Regla #1 El entorno de desarrollo idealmente tiene que ser lo más cercano posible al servidor de producción.Sunday, July 3, 2011
  • Entorno Productivo - sistema operativo Regla #1 Si el servidor corre Linux, el desarrollo debería ser Linux o algún Unix, incluso Mac OS X.Sunday, July 3, 2011
  • Entorno Productivo - sistema operativo Regla #1 En cambio, si el servidor es Windows, idealmente el desarrollo debe ser en Windows.Sunday, July 3, 2011
  • Entorno Productivo - sistema operativo Regla #1 Todo esto es muy importante para evitar sorpresas )que generalmente son malas porque son problemas(Sunday, July 3, 2011
  • Entorno Productivo - sistema operativo Regla #1 Razones: • Falta de extensiones de PHP • Diferencia en versiones de PHP y extensions • Diferencia en configuración de Apache y PHP )php.ini( • Diferencia en el sistema de archivos )case sensitive/ insensitive(Sunday, July 3, 2011
  • Entorno Productivo - sistema operativo Diferencia en el sistema de archivos )case sensitive/ insensitive( • Linux )case sensitve( • Windows )case insensitive( • Mac OS X )por defecto, case insensitive, se puede cambiar pero trae problemas(Sunday, July 3, 2011
  • Entorno Productivo - sistema operativo Diferencia en el sistema de archivos )case sensitive/ insensitive( <?php use SymfonyComponentClassLoaderUniversalClassLoader; $loader = new UniversalClassLoader(); $loader->registerNamespaces(array( Symfony => array(__DIR__./../vendor/symfony/src, __DIR__./../vendor/ bundles), Application => __DIR__./../src, Sensio => __DIR__./../vendor/bundles, Archivo: src/Application/miBundle/clase.php $clase = new Application/MiBundle/Clase()Sunday, July 3, 2011
  • Entorno Productivo - sistema operativo No olvidarse de los VMs Permiten correr Linux dentro de Windows o Mac OS X • VirtualBox )gratis( • VMware Player )gratis( • VMWare Fusion • Parallels DesktopSunday, July 3, 2011
  • Entorno Productivo - sistema operativo Otra alternativa es tener un servidor dedicado o virtual aparte que se pueda montar con SMB / NFSSunday, July 3, 2011
  • Entorno Productivo - sistema operativo Los servidores virtuales tienen la ventaja que se pueden clonar para cuando se agrega un programador al equipo.Sunday, July 3, 2011
  • Entorno Productivo - sistema operativo Jefes: ofrezcan al programador elegir su entorno de desarrollo. No hay nada más importante que sentirse cómodo y manejar bien las herramientas.Sunday, July 3, 2011
  • Entorno Productivo - sistema operativo Regla #2 Usen lo que les sienta mejor y donde sean más productivos, pero prueben cosas nuevas.Sunday, July 3, 2011
  • Entorno Productivo StacksSunday, July 3, 2011
  • Entorno Productivo - Stacks Opciones disponibles • WAMP )Windows( • XAMP )Mac( • Zend Server CE )Win,Mac,Linux( • Liip PHP )Mac( http://php-osx.liip.ch/Sunday, July 3, 2011
  • Entorno Productivo Editor / IDESunday, July 3, 2011
  • Entorno Productivo - Editor/IDE Opciones disponibles • Netbeans 7 PHP )gratis( • phpStorm 2.1 )$84 personal, $168 comercial, gratis para proyectos OS( • Eclipse )gratis( • Zend Studio 8 )$299( • Komodo IDE 6 )$295 sin soporte/upgrades( Textmate (Mac), vi/vim, emacs, notepad, etc.Sunday, July 3, 2011
  • Entorno Productivo - Editor/IDE ¿Por qué un IDE? • integración con Xdebug / otros • breakpoints y watches • code completion • syntax highligher • PHPDoc • Twig! )phpStorm( • muchas más!Sunday, July 3, 2011
  • Entorno Productivo - Editor/IDE ¿Por qué no un IDE? • generalmente requieren mucha memoria • curva de aprendizaje • familiarización con herramientas ya conocidas y dominadas • costoSunday, July 3, 2011
  • Entorno Productivo - Editor/IDE Jefes: ofrezcan al programador elegir su entorno de desarrollo. No hay nada más importante que sentirse cómodo y manejar bien las herramientas.Sunday, July 3, 2011
  • Entorno Productivo Source ControlSunday, July 3, 2011
  • Entorno Productivo - source control No importa que tan chico sea el proyecto, usen source control!Sunday, July 3, 2011
  • Entorno Productivo - source control Opciones disponibles Git...Sunday, July 3, 2011
  • Entorno Productivo - source control Opciones disponibles ok... también existen: • hg )mercurial( • SVN )subversion( • CVS )alguien se acuerda?(Sunday, July 3, 2011
  • Entorno Productivo - source control Pero Git + github revolucionaron el mundo de proyectos open sourceSunday, July 3, 2011
  • Entorno Productivo TestingSunday, July 3, 2011
  • Entorno Productivo - Testing Opciones disponibles - Unit Tests • PHPUnit • SimpleTestSunday, July 3, 2011
  • Entorno Productivo - Testing Opciones disponibles - Continuous Integration • CruiseControl • phpUnderControl • Sismo • Jenkins http://jenkins-php.org/Sunday, July 3, 2011
  • Entorno Productivo - Testing Opciones disponibles - Frontend • Symfony2 • Selenium RC • MinkSunday, July 3, 2011
  • Entorno Productivo DebuggingSunday, July 3, 2011
  • Entorno Productivo - debugging Opciones disponibles • Xdebug • breakpoints • stack traces • profiler • Zend Studio • FirePHP • print_r)( / var_dump)( / echo :-(Sunday, July 3, 2011
  • Entorno Productivo - debugging configuración PHP • display_errors = 0 • error_log = /var/log/php.log • error_reporting = -1Sunday, July 3, 2011
  • Entorno Productivo DeploymentSunday, July 3, 2011
  • Entorno Productivo - deployment Opciones disponibles • capistrano • capifony )symfony( • phing • git / svn / etc • rsync • ftpSunday, July 3, 2011
  • Entorno Productivo - deployment Capifony • Instalar capistrano ⁃ gem install capifony • Inicializamos el proyecto ⁃ capifony . • Configuramos el deployment con config/deploy.rb • Seteamos el servidor ⁃ cap deploy:setup • Hacemos el deployment ⁃ cap deploy • Y la próxima vez y la otra y la otra…: ⁃ cap deploySunday, July 3, 2011
  • Entorno Productivo - deployment set :application, "sg11" set :domain, "servergrove.com" Capifony set :deploy_to, "/var/www/vhosts/sg11.servergrove.com" set :repository, "git@github.com:servergrove/sg11.git" set :scm, :git set :branch, "master" set :user, "deployer" ssh_options[:port] = 22123 ssh_options[:forward_agent] = true set :use_sudo, false role :web, "sg100.servergrove.com" # Your HTTP server, Apache/etc # directories that will be shared between all deployments set :shared_children, [app_path + "/logs", web_path + "/uploads"] set :update_vendors, false set :dump_assetic_assets, trueSunday, July 3, 2011
  • Entorno Productivo - deployment Capifony `-- /var/www/vhosts/sg11.servergrove.com |-- current ! /var/www/vhosts/sg11.servergrove.com/releases/ 20100512131539 |-- releases |-- 20100512131539 |-- 20100509150741 `-- 20100509145325 `-- shared |-- log |-- config `-- databases.yml `-- web `-- uploadsSunday, July 3, 2011
  • Entorno Productivo TipsSunday, July 3, 2011
  • Entorno Productivo - tips SSH • ssh-keygen -t dsa • ~/.ssh/config Host * ForwardAgent yes • ssh-add Ahora, cuando nos conectemos al servidor remoto y ejecutemos git pull, utilizará el key de nuestra computadora.Sunday, July 3, 2011
  • Entorno Productivo - tips • El poder del archivo hosts • Unix: /etc/hosts • Windows: /Windows/System32/etc/hosts Permite acceder a un IP sin tener que cambiar el DNS Permite crear virtual hosts en el servidor local de desarrollo, ej: desymfony.localSunday, July 3, 2011
  • Entorno Productivo - tips El poder del archivo hosts 127.0.0.1 localhost symfony2rc2.local rockmongo.local mysql_admin.local maestro.local desymfony.local sg11.local sgcontrol2.local Apache Virtual Document Root UseCanonicalName Off VirtualDocumentRoot /Users/pgodel/Sites/%0/web <Location /> AllowOverride All Options +FollowSymLinks </Location> • ~/Sites/desymfony.local • ~/Sites/sg11.local •…Sunday, July 3, 2011
  • Entorno Productivo - tips Aliases en BASH alias phplog="tail -f /var/log/apache2/php_errors.log" $ phplogSunday, July 3, 2011
  • Entorno Productivo - tips pbcopy & pbpaste )Mac( cat archivo.txt | pbcopy pbpaste > nuevo.txtSunday, July 3, 2011
  • Entorno Productivo ¿Preguntas?Sunday, July 3, 2011
  • Entorno Productivo ¡MUCHAS GRACIAS! Slides: http://slideshare.net/pgodel Twitter: @pgodel IRC Freenode: pgodelSunday, July 3, 2011