Herramientas del
Desarrollador
Moderno
Andrés Villarreal
andrezrv.com
@andrezrv_hq
Andrés Villarreal
Programador & Consultor Web
En web desde 2003. Ex UTN FRBA y AVG.
Technologies. Plugins y themes publica...
Herramientas del
Desarrollador Moderno
En ocasiones nuestras herramientas de desarrollo retrasan nuestro trabajo y
nuestro...
• Desarrollador: toda persona
encargada de llevar a cabo un
proyecto web. Programadores,
diseñadores, implementadores,
enc...
El Desarrollador
Moderno o Profesional
Aquel que siempre está
dispuesto a probar y dominar
nuevas herramientas, acordes
a ...
¿CUÁNDO SE VUELVE
OBSOLETA UNA
HERRAMIENTA DE TRABAJO?
CUANDO YA NO TE DEJA
TRABAJAR.
Una herramienta deja de
ser útil cuando:
• Invertimos más tiempo en ella que en nuestro
trabajo puntual.
• Repercute negat...
¿O SEA QUE SI NO ME PASA
NINGUNA DE ESAS COSAS,
YA ME PUEDO IR?
SÍ :D
Un Caso Común
O “¡Extra, extra, XAMPP apesta!”
Requisitos para

Desarrollo con PHP
• Servidor web (Apache o NGINX).
• Intérprete de PHP (Apache o PHP-FPM).
• MySQL (más ...
Gestores de Servicios
Populares
• XAMPP (Windows, Linux)
• WAMPServer (Windows)
• MAMP (Mac OS X)
• EasyPHP (Windows)
Problemas de los

Gestores de Servicios
• Por defecto, estoy obligado a que todos mis sitios locales estén en el mismo dir...
El Problema de Windows
O “El misterio de por qué nada anda como debería”.
–Sócrates, 397 AC.
“Podríamos decir que, con el correr del tiempo,
un interrogante que se presenta tan complejo
como el mi...
Qué Onda con el

Desarrollo Local en Windows
• PHP,Apache y MySQL están pensados para
UNIX.
• MS-DOS es ineficiente para ta...
¿O SEA QUE TENGO QUE
CORRER A INSTALAR
UBUNTU?
NO EXACTAMENTE.
OK, YA MISMO ME ESTOY
COMPRANDO UNA MAC…
NO, AGUANTÁ.
O sea, sí, pero no es indispensable.
Líneas de Comando
O “Aprendiendo a ser re hacker”.
Terminales UNIX
• UNIX es el framework sobre el
que están construidos Linux y
Mac OS X, en todas sus versiones
y distribuc...
Control de Versiones
O “La desaparición de 72 carpetas con el mismo prefijo”.
Caso Común de

Versiones no Controladas
Estado inicial de carpeta htdocs:
nosoyunesclavodelsistema-backup-20150202

nosoyu...
Problemas de la Falta de

Control de Versiones
• Consume bastante tiempo y es muy susceptible
de errores.
• La posibilidad...
Ventajas del Software de

Control de Versiones
• Con unas pocas líneas de comando puedo
registrar cambios en mi código y v...
Prácticas de Deployment
O “Se cortó internet mientras actualizaba el sitio y se rompió todo”.
Problemas del

Deployment Vía FTP
• Los datos que se envían no
están encriptados.
• No está pensado para subir
grandes can...
Alternativas al

Deployment Vía FTP
• SCP y SFTP: más seguros, con encriptación de
datos.
• FTP + zip/gzip/tarball: más efi...
Coding Standards
O “¿Por qué ponen tantos espacios?”
–San Ambrosio de Milán, Siglo IV.
“Cuando estés en Roma, vive al modo romano. En
cualquier parte vive como allí se viva”.
CUANTO MÁS COMPRENSIBLE
SEA TU CÓDIGO, MÁS FÁCIL VA
A SER MANTENERLO EN EL
FUTURO.
WordPress

Coding Standards
• PHP Coding Standards
• HTML Coding Standards
• CSS Coding Standards
• JavaScript Coding Stan...
–Gente cuyo código suele ser incomprensible para las formas de vida
basadas en carbono.
“Pero esas guidelines son feas, la...
MADUREN.
Virtualización
O “La respuesta a cuántos
pares son tres botas”.
Beneficios del

Software de Virtualización
• Conglomera muchas posibles soluciones a los
problemas anteriores, ofreciendo u...
Vagrant
• RequiereVirtualBox o
VMWare.
• Construido sobre Ruby.
• Permite crear ambientes de
desarrollo diferenciados,
ext...
Varying Vagrant Vagrants (VVV)
• Ubuntu 14.04 LTS.
• NGINX, PHP-FPM, MySQL, phpMyAdmin.
• xDebug (debugging)
• PHPUnit (te...
¿Cómo Empiezo?
1. InstalarVirtualBox
2. Instalar GIT
3. InstalarVagrant
4. Descargar instancia deVVV:

git clone git@githu...
20 minutos después…
¿Qué Resuelve

la Virtualización?
• Permite usar versiones oficiales y actualizadas de Apache/NGINX, MySQL y PHP.
• Facilit...
IDEs y Editores de Texto
O “Yo uso Notepad++, es re groso”.
IDEs y Editores Copados

para Trabajar con WordPress
• PHPStorm
• SublimeText
• Coda
• Aptana
• Komodo Edit
• Komodo IDE
¿Consultas?
MUCHAS GRACIAS
Herramientas del
Desarrollador
Moderno
Andrés Villarreal
andrezrv.com
@andrezrv_hq
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
Upcoming SlideShare
Loading in …5
×

03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno

570 views

Published on

En ocasiones nuestras herramientas de desarrollo retrasan nuestro trabajo y nuestro crecimiento profesional sin que siquiera nos demos cuenta. Vamos a detectar esos casos y a explorar distintas opciones para construir un ambiente de desarrollo local moderno, ágil, portable y adecuado a las tecnologías más actuales del desarrollo web, y cómo acoplarlo a nuestro trabajo con WordPress.

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

  • Be the first to like this

No Downloads
Views
Total views
570
On SlideShare
0
From Embeds
0
Number of Embeds
220
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno

  1. 1. Herramientas del Desarrollador Moderno Andrés Villarreal andrezrv.com @andrezrv_hq
  2. 2. Andrés Villarreal Programador & Consultor Web En web desde 2003. Ex UTN FRBA y AVG. Technologies. Plugins y themes publicados en wordpress.org. Core Contributor en 3.9 y 4.0.
  3. 3. Herramientas del Desarrollador Moderno En ocasiones nuestras herramientas de desarrollo retrasan nuestro trabajo y nuestro crecimiento profesional sin que siquiera nos demos cuenta.Vamos a detectar esos casos y a explorar distintas opciones para construir un ambiente de desarrollo local moderno, ágil, portable y adecuado a las tecnologías más actuales del desarrollo web, y cómo acoplarlo a nuestro trabajo con WordPress.
  4. 4. • Desarrollador: toda persona encargada de llevar a cabo un proyecto web. Programadores, diseñadores, implementadores, encargados de contenidos, etc. • Herramienta: todo aquello que un desarrollador utiliza para llevar a cabo su trabajo. Software, documentación, conocimientos, etc. Terminología
  5. 5. El Desarrollador Moderno o Profesional Aquel que siempre está dispuesto a probar y dominar nuevas herramientas, acordes a la evolución de distintas tecnologías, para mejorar tanto el proceso como los resultados de su trabajo.
  6. 6. ¿CUÁNDO SE VUELVE OBSOLETA UNA HERRAMIENTA DE TRABAJO?
  7. 7. CUANDO YA NO TE DEJA TRABAJAR.
  8. 8. Una herramienta deja de ser útil cuando: • Invertimos más tiempo en ella que en nuestro trabajo puntual. • Repercute negativamente en la calidad de lo que hacemos.
  9. 9. ¿O SEA QUE SI NO ME PASA NINGUNA DE ESAS COSAS, YA ME PUEDO IR?
  10. 10. SÍ :D
  11. 11. Un Caso Común O “¡Extra, extra, XAMPP apesta!”
  12. 12. Requisitos para
 Desarrollo con PHP • Servidor web (Apache o NGINX). • Intérprete de PHP (Apache o PHP-FPM). • MySQL (más phpMyAdmin, tal vez).
  13. 13. Gestores de Servicios Populares • XAMPP (Windows, Linux) • WAMPServer (Windows) • MAMP (Mac OS X) • EasyPHP (Windows)
  14. 14. Problemas de los
 Gestores de Servicios • Por defecto, estoy obligado a que todos mis sitios locales estén en el mismo directorio (www o htdocs). • Por defecto, todos mis sitios locales están bajo el mismo dominio:
 http://localhost/capodelmondongo en vez www.capodelmondongo.com
 http://localhost/nosoyunesclavodelsistema. en vez de www.nosoyunesclavodelsistema.com • Si quiero usar un dominio propio para mi sitio, tengo que editar manualmente los archivos hosts y httpd.conf. • Si quiero usar varios dominios propios simultáneamente, tengo que crear virtual hosts adicionales. • Si instalo una actualización del gestor, mis configuraciones modificadas se sobreescriben. • Mi ambiente no es fácil de mover de una máquina a otra. • Mi ambiente no está controlado: puede entrar en conflicto con programas que corren en mi máquina de escritorio. • Mi ambiente local no es similar a mi ambiente de producción, y mi sitio puede no comportarse de la misma forma en ambos. • Las versiones instaladas de Apache y MySQL no siempre son exactamente iguales a las oficiales. • Si el gestor se vuelve inestable, también se vuelven inestables los servicios.
  15. 15. El Problema de Windows O “El misterio de por qué nada anda como debería”.
  16. 16. –Sócrates, 397 AC. “Podríamos decir que, con el correr del tiempo, un interrogante que se presenta tan complejo como el mismísimo problema del sentido de la vida es por qué los desarrolladores siguen usando Windows para trabajar.”
  17. 17. Qué Onda con el
 Desarrollo Local en Windows • PHP,Apache y MySQL están pensados para UNIX. • MS-DOS es ineficiente para tareas complejas. • Los avances en Windows llevan mucho más tiempo en aparecer que en sistemas UNIX. • La portabilidad de los ambientes de desarrollo es inherentemente complicada. • Los programas de escritorio pueden interferir con nuestras aplicaciones de desarrollo. • La mayoría de los desarrolladores profesionales experimentados trabajan con sistemas UNIX.
  18. 18. ¿O SEA QUE TENGO QUE CORRER A INSTALAR UBUNTU?
  19. 19. NO EXACTAMENTE.
  20. 20. OK, YA MISMO ME ESTOY COMPRANDO UNA MAC…
  21. 21. NO, AGUANTÁ. O sea, sí, pero no es indispensable.
  22. 22. Líneas de Comando O “Aprendiendo a ser re hacker”.
  23. 23. Terminales UNIX • UNIX es el framework sobre el que están construidos Linux y Mac OS X, en todas sus versiones y distribuciones. • A través de la línea de comandos podemos ejecutar procesos automatizados muy potentes y abarcativos, los cuales no suelen ser accesibles desde la interfaz gráfica. • Existen emuladores de terminal (limitados) para Windows, como MINGW32 y CYGWIN.
  24. 24. Control de Versiones O “La desaparición de 72 carpetas con el mismo prefijo”.
  25. 25. Caso Común de
 Versiones no Controladas Estado inicial de carpeta htdocs: nosoyunesclavodelsistema-backup-20150202
 nosoyunesclavodelsistema Estado de carpeta htdocs una semana después: nosoyunesclavodelsistema-backup-20150202
 nosoyunesclavodelsistema-backup-20150203
 nosoyunesclavodelsistema-backup-20150204
 nosoyunesclavodelsistema-backup-20150205
 nosoyunesclavodelsistema
  26. 26. Problemas de la Falta de
 Control de Versiones • Consume bastante tiempo y es muy susceptible de errores. • La posibilidad de ver estadíos intermedios de nuestro código queda descartada por completo.
  27. 27. Ventajas del Software de
 Control de Versiones • Con unas pocas líneas de comando puedo registrar cambios en mi código y volver a cualquier punto de mi proyecto. • Puedo cerrar versiones. • Puedo crear ramas de desarrollo separadas para features, bugs y otras tareas. • Puedo ver detalles de diferencias entre un punto y otro del desarrollo. • Puedo centralizar mi proyecto en un servidor remoto, a manera de repositorio, para que mis colaboradores y yo podamos acceder a él desde cualquier lugar.
  28. 28. Prácticas de Deployment O “Se cortó internet mientras actualizaba el sitio y se rompió todo”.
  29. 29. Problemas del
 Deployment Vía FTP • Los datos que se envían no están encriptados. • No está pensado para subir grandes cantidades de archivos. • No está pensado para trabajar con diferencias entre archivos.
  30. 30. Alternativas al
 Deployment Vía FTP • SCP y SFTP: más seguros, con encriptación de datos. • FTP + zip/gzip/tarball: más eficiente - se sube un solo archivo y se lo descomprime en producción. • VCS: más eficiente - solamente se actualizan las diferencias de archivos. • Capistrano: más seguro y más eficiente - permite deployar usando distintos protocolos (SFTP, SCP) oVCS (GIT, SVN, Mercurial) y ejecutar tareas adicionales en el servidor de destino. • rsync: más seguro y más eficiente - con encriptación de datos y actualización limitada a diferencias de archivos.
  31. 31. Coding Standards O “¿Por qué ponen tantos espacios?”
  32. 32. –San Ambrosio de Milán, Siglo IV. “Cuando estés en Roma, vive al modo romano. En cualquier parte vive como allí se viva”.
  33. 33. CUANTO MÁS COMPRENSIBLE SEA TU CÓDIGO, MÁS FÁCIL VA A SER MANTENERLO EN EL FUTURO.
  34. 34. WordPress
 Coding Standards • PHP Coding Standards • HTML Coding Standards • CSS Coding Standards • JavaScript Coding Standards
  35. 35. –Gente cuyo código suele ser incomprensible para las formas de vida basadas en carbono. “Pero esas guidelines son feas, las de Java son más lindas, y si las uso voy a perder espontaneidad y blablablasmlasdlkd (…)”
  36. 36. MADUREN.
  37. 37. Virtualización O “La respuesta a cuántos pares son tres botas”.
  38. 38. Beneficios del
 Software de Virtualización • Conglomera muchas posibles soluciones a los problemas anteriores, ofreciendo un ambiente de desarrollo integral. • Permite instalar un nuevo sistema operativo “encapsulado” y trabajar en un entorno 100% controlado y portable.
  39. 39. Vagrant • RequiereVirtualBox o VMWare. • Construido sobre Ruby. • Permite crear ambientes de desarrollo diferenciados, extensibles, livianos y portables. • Gestiona sincronización y compartición de carpetas de forma automática.
  40. 40. Varying Vagrant Vagrants (VVV) • Ubuntu 14.04 LTS. • NGINX, PHP-FPM, MySQL, phpMyAdmin. • xDebug (debugging) • PHPUnit (testing) • GIT (control de versiones) • Composer (control de dependencias) • NodeJS (framework JS) • Grunt (JS task runner) • WP-CLI (línea de comando para WordPress) • Tres instalaciones de WordPress: stable (última versión pública), develop (última versión sin compilaciones de archivos) y trunk (última versión beta).
  41. 41. ¿Cómo Empiezo? 1. InstalarVirtualBox 2. Instalar GIT 3. InstalarVagrant 4. Descargar instancia deVVV:
 git clone git@github.com:Varying-Vagrant-Vagrants/VVV.git ./nosoyunesclavodelsistema 5. Ingresar a mi instancia deVVV:
 cd ./nosoyunesclavodelsistema 6. IniciarVagrant:
 vagrant up --provision
  42. 42. 20 minutos después…
  43. 43. ¿Qué Resuelve
 la Virtualización? • Permite usar versiones oficiales y actualizadas de Apache/NGINX, MySQL y PHP. • Facilita crear y correr nuevos sitios. • Facilita el control de versiones. • Facilita el uso de terminales. • Facilita backups remotos. • Facilita testing y debugging. • Facilita contribuciones a WordPress Core. • Facilita procesos de deployment. • Ofrece un entorno controlado y estable. • Ofrece un entorno portable. • Ofrece herramientas que permiten chequear que nuestro código siga las guidelines de WordPress.
  44. 44. IDEs y Editores de Texto O “Yo uso Notepad++, es re groso”.
  45. 45. IDEs y Editores Copados
 para Trabajar con WordPress • PHPStorm • SublimeText • Coda • Aptana • Komodo Edit • Komodo IDE
  46. 46. ¿Consultas?
  47. 47. MUCHAS GRACIAS
  48. 48. Herramientas del Desarrollador Moderno Andrés Villarreal andrezrv.com @andrezrv_hq

×