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   • F...
Entorno Productivo                       Sistema OperativoSunday, July 3, 2011
Entorno Productivo - sistema operativo                       Opciones disponibles                       • Mac OS X )basado...
Entorno Productivo - sistema operativo                                  Regla #1                       El entorno de desar...
Entorno Productivo - sistema operativo                                   Regla #1                       Si el servidor cor...
Entorno Productivo - sistema operativo                                  Regla #1                       En cambio, si el se...
Entorno Productivo - sistema operativo                                  Regla #1                       Todo esto es muy im...
Entorno Productivo - sistema operativo                              Regla #1      Razones:       • Falta de extensiones de...
Entorno Productivo - sistema operativo Diferencia en el sistema de archivos )case sensitive/ insensitive(          • Linux...
Entorno Productivo - sistema operativo Diferencia en el sistema de archivos )case sensitive/ insensitive(  <?php  use Symf...
Entorno Productivo - sistema operativo                       No olvidarse de los VMs      Permiten correr Linux dentro de ...
Entorno Productivo - sistema operativo             Otra alternativa es tener un servidor dedicado o            virtual apa...
Entorno Productivo - sistema operativo          Los servidores virtuales tienen la ventaja que se       pueden clonar para...
Entorno Productivo - sistema operativo          Jefes: ofrezcan al programador elegir su entorno de         desarrollo. No...
Entorno Productivo - sistema operativo                                   Regla #2                Usen lo que les sienta me...
Entorno Productivo                       StacksSunday, July 3, 2011
Entorno Productivo - Stacks                           Opciones disponibles                       • WAMP )Windows(         ...
Entorno Productivo                       Editor / IDESunday, July 3, 2011
Entorno Productivo - Editor/IDE                       Opciones disponibles        • Netbeans 7 PHP )gratis(        • phpSt...
Entorno Productivo - Editor/IDE                         ¿Por qué un IDE?        • integración con Xdebug / otros        • ...
Entorno Productivo - Editor/IDE                        ¿Por qué no un IDE?        • generalmente requieren mucha memoria  ...
Entorno Productivo - Editor/IDE          Jefes: ofrezcan al programador elegir su entorno de         desarrollo. No hay na...
Entorno Productivo                       Source ControlSunday, July 3, 2011
Entorno Productivo - source control                       No importa que tan chico sea el                       proyecto, ...
Entorno Productivo - source control                       Opciones disponibles                              Git...Sunday, ...
Entorno Productivo - source control                          Opciones disponibles                          ok... también e...
Entorno Productivo - source control                       Pero Git + github revolucionaron el mundo de                    ...
Entorno Productivo                       TestingSunday, July 3, 2011
Entorno Productivo - Testing                       Opciones disponibles - Unit Tests                                    • ...
Entorno Productivo - Testing                  Opciones disponibles - Continuous Integration                       • Cruise...
Entorno Productivo - Testing                         Opciones disponibles - Frontend                       • Symfony2     ...
Entorno Productivo                       DebuggingSunday, July 3, 2011
Entorno Productivo - debugging                               Opciones disponibles                       • Xdebug          ...
Entorno Productivo - debugging                                configuración PHP                       • display_errors = 0 ...
Entorno Productivo                       DeploymentSunday, July 3, 2011
Entorno Productivo - deployment                       Opciones disponibles                       • capistrano             ...
Entorno Productivo - deployment                                                       Capifony             • Instalar capi...
Entorno Productivo - deployment   set :application, "sg11"   set :domain,      "servergrove.com"                          ...
Entorno Productivo - deployment                                                           Capifony   `-- /var/www/vhosts/s...
Entorno Productivo                       TipsSunday, July 3, 2011
Entorno Productivo - tips                                       SSH                • ssh-keygen -t dsa                • ~/...
Entorno Productivo - tips                • El poder del archivo hosts                  • Unix: /etc/hosts                 ...
Entorno Productivo - tips  El poder del archivo hosts  127.0.0.1    localhost symfony2rc2.local rockmongo.local mysql_admi...
Entorno Productivo - tips                                        Aliases en BASH           alias phplog="tail -f /var/log/...
Entorno Productivo - tips                                 pbcopy & pbpaste )Mac(           cat archivo.txt | pbcopy       ...
Entorno Productivo                       ¿Preguntas?Sunday, July 3, 2011
Entorno Productivo                          ¡MUCHAS GRACIAS!                       Slides: http://slideshare.net/pgodel   ...
Upcoming SlideShare
Loading in...5
×

Entorno de desarrollo productivo

15,474

Published on

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

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
15,474
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
228
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Entorno de desarrollo productivo

  1. 1. Sunday, July 3, 2011
  2. 2. Sunday, July 3, 2011
  3. 3. 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
  4. 4. Entorno Productivo Sistema OperativoSunday, July 3, 2011
  5. 5. Entorno Productivo - sistema operativo Opciones disponibles • Mac OS X )basado en Unix( • Linux • WindowsSunday, July 3, 2011
  6. 6. 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
  7. 7. 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
  8. 8. Entorno Productivo - sistema operativo Regla #1 En cambio, si el servidor es Windows, idealmente el desarrollo debe ser en Windows.Sunday, July 3, 2011
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. Entorno Productivo - sistema operativo Otra alternativa es tener un servidor dedicado o virtual aparte que se pueda montar con SMB / NFSSunday, July 3, 2011
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. Entorno Productivo StacksSunday, July 3, 2011
  19. 19. 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
  20. 20. Entorno Productivo Editor / IDESunday, July 3, 2011
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. Entorno Productivo Source ControlSunday, July 3, 2011
  26. 26. Entorno Productivo - source control No importa que tan chico sea el proyecto, usen source control!Sunday, July 3, 2011
  27. 27. Entorno Productivo - source control Opciones disponibles Git...Sunday, July 3, 2011
  28. 28. Entorno Productivo - source control Opciones disponibles ok... también existen: • hg )mercurial( • SVN )subversion( • CVS )alguien se acuerda?(Sunday, July 3, 2011
  29. 29. Entorno Productivo - source control Pero Git + github revolucionaron el mundo de proyectos open sourceSunday, July 3, 2011
  30. 30. Entorno Productivo TestingSunday, July 3, 2011
  31. 31. Entorno Productivo - Testing Opciones disponibles - Unit Tests • PHPUnit • SimpleTestSunday, July 3, 2011
  32. 32. Entorno Productivo - Testing Opciones disponibles - Continuous Integration • CruiseControl • phpUnderControl • Sismo • Jenkins http://jenkins-php.org/Sunday, July 3, 2011
  33. 33. Entorno Productivo - Testing Opciones disponibles - Frontend • Symfony2 • Selenium RC • MinkSunday, July 3, 2011
  34. 34. Entorno Productivo DebuggingSunday, July 3, 2011
  35. 35. Entorno Productivo - debugging Opciones disponibles • Xdebug • breakpoints • stack traces • profiler • Zend Studio • FirePHP • print_r)( / var_dump)( / echo :-(Sunday, July 3, 2011
  36. 36. Entorno Productivo - debugging configuración PHP • display_errors = 0 • error_log = /var/log/php.log • error_reporting = -1Sunday, July 3, 2011
  37. 37. Entorno Productivo DeploymentSunday, July 3, 2011
  38. 38. Entorno Productivo - deployment Opciones disponibles • capistrano • capifony )symfony( • phing • git / svn / etc • rsync • ftpSunday, July 3, 2011
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. Entorno Productivo TipsSunday, July 3, 2011
  43. 43. 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
  44. 44. 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
  45. 45. 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
  46. 46. Entorno Productivo - tips Aliases en BASH alias phplog="tail -f /var/log/apache2/php_errors.log" $ phplogSunday, July 3, 2011
  47. 47. Entorno Productivo - tips pbcopy & pbpaste )Mac( cat archivo.txt | pbcopy pbpaste > nuevo.txtSunday, July 3, 2011
  48. 48. Entorno Productivo ¿Preguntas?Sunday, July 3, 2011
  49. 49. Entorno Productivo ¡MUCHAS GRACIAS! Slides: http://slideshare.net/pgodel Twitter: @pgodel IRC Freenode: pgodelSunday, July 3, 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×