SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
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 publicados en
wordpress.org. Core Contributor en 3.9 y 4.0.
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.
• 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
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.
¿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 negativamente en la calidad de lo que
hacemos.
¿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 phpMyAdmin, tal vez).
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 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.
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 mismísimo problema del sentido de la
vida es por qué los desarrolladores siguen
usando Windows para trabajar.”
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.
¿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 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.
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

nosoyunesclavodelsistema
Estado de carpeta htdocs una
semana después:
nosoyunesclavodelsistema-backup-20150202

nosoyunesclavodelsistema-backup-20150203

nosoyunesclavodelsistema-backup-20150204

nosoyunesclavodelsistema-backup-20150205

nosoyunesclavodelsistema
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.
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.
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 cantidades de
archivos.
• No está pensado para
trabajar con diferencias
entre archivos.
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.
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 Standards
–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 (…)”
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 un ambiente de
desarrollo integral.
• Permite instalar un nuevo sistema operativo
“encapsulado” y trabajar en un entorno 100%
controlado y portable.
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.
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).
¿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
20 minutos después…
¿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.
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

Más contenido relacionado

La actualidad más candente

Modelos de Concurrencia
Modelos de ConcurrenciaModelos de Concurrencia
Modelos de ConcurrenciaErick Camacho
 
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y PuppetRichard Moya
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
Entorno de desarrollo rápido con Vagrant
Entorno de desarrollo rápido con VagrantEntorno de desarrollo rápido con Vagrant
Entorno de desarrollo rápido con VagrantPau Ferrer Ocaña
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con MavenEudris Cabrera
 
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphereVagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphereJavier Jerónimo Suárez
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopRestorando
 
Curso node.js
Curso node.js Curso node.js
Curso node.js Redradix
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSAlberto Gimeno
 
Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)PiXeL16
 

La actualidad más candente (20)

Modelos de Concurrencia
Modelos de ConcurrenciaModelos de Concurrencia
Modelos de Concurrencia
 
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Servidores web linux
Servidores web linuxServidores web linux
Servidores web linux
 
Entorno de desarrollo rápido con Vagrant
Entorno de desarrollo rápido con VagrantEntorno de desarrollo rápido con Vagrant
Entorno de desarrollo rápido con Vagrant
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven
 
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphereVagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
 
Servidor web para linux
Servidor web para linuxServidor web para linux
Servidor web para linux
 
Introducción Nodejs
Introducción NodejsIntroducción Nodejs
Introducción Nodejs
 
Usando docker
Usando dockerUsando docker
Usando docker
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
Servidor web para linux
Servidor web para linuxServidor web para linux
Servidor web para linux
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Docker 2014 v2
Docker 2014 v2Docker 2014 v2
Docker 2014 v2
 
Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 

Destacado

03 de Marzo 2015: Serafín Danessa - WordCamp Buenos Aires 2015
03 de Marzo 2015: Serafín Danessa - WordCamp Buenos Aires 201503 de Marzo 2015: Serafín Danessa - WordCamp Buenos Aires 2015
03 de Marzo 2015: Serafín Danessa - WordCamp Buenos Aires 2015wpargentina
 
03 de Marzo 2015: Juan Francisco Garabato - WooCommerce 101
03 de Marzo 2015: Juan Francisco Garabato - WooCommerce 10103 de Marzo 2015: Juan Francisco Garabato - WooCommerce 101
03 de Marzo 2015: Juan Francisco Garabato - WooCommerce 101wpargentina
 
3ceapaffichecommunication2016MR
3ceapaffichecommunication2016MR3ceapaffichecommunication2016MR
3ceapaffichecommunication2016MRMichel Rochette
 
Componentes de un computador
Componentes de un computadorComponentes de un computador
Componentes de un computadorarlinjimenez12
 
Presentación1sistema
Presentación1sistemaPresentación1sistema
Presentación1sistemacabexa
 
Semana3dia3. proceso de c-v int.
Semana3dia3. proceso de c-v int.Semana3dia3. proceso de c-v int.
Semana3dia3. proceso de c-v int.aperalesm
 
2 decadadas de neoliberalismo
2 decadadas de neoliberalismo2 decadadas de neoliberalismo
2 decadadas de neoliberalismopotrillosp89
 
Persona jurica
Persona juricaPersona jurica
Persona juricaYeiloBris
 
PresentacióN1 Janet
PresentacióN1 JanetPresentacióN1 Janet
PresentacióN1 Janetroka120
 
Itinerario informativo, bases curriculares y estandares orientadores
Itinerario informativo, bases curriculares y estandares orientadoresItinerario informativo, bases curriculares y estandares orientadores
Itinerario informativo, bases curriculares y estandares orientadoresUniversidad Católica de Temuco
 
bitacora de programa de mtto
bitacora de programa de mttobitacora de programa de mtto
bitacora de programa de mttoosbaldo1998
 

Destacado (20)

03 de Marzo 2015: Serafín Danessa - WordCamp Buenos Aires 2015
03 de Marzo 2015: Serafín Danessa - WordCamp Buenos Aires 201503 de Marzo 2015: Serafín Danessa - WordCamp Buenos Aires 2015
03 de Marzo 2015: Serafín Danessa - WordCamp Buenos Aires 2015
 
03 de Marzo 2015: Juan Francisco Garabato - WooCommerce 101
03 de Marzo 2015: Juan Francisco Garabato - WooCommerce 10103 de Marzo 2015: Juan Francisco Garabato - WooCommerce 101
03 de Marzo 2015: Juan Francisco Garabato - WooCommerce 101
 
Diego duque,
Diego duque,Diego duque,
Diego duque,
 
Notas al pie
Notas al pieNotas al pie
Notas al pie
 
3ceapaffichecommunication2016MR
3ceapaffichecommunication2016MR3ceapaffichecommunication2016MR
3ceapaffichecommunication2016MR
 
Conceptos básicos
Conceptos básicosConceptos básicos
Conceptos básicos
 
Ensayo 2
Ensayo 2Ensayo 2
Ensayo 2
 
Cuestionario 10 2
Cuestionario 10 2Cuestionario 10 2
Cuestionario 10 2
 
Componentes de un computador
Componentes de un computadorComponentes de un computador
Componentes de un computador
 
Eloy alfaro
Eloy alfaroEloy alfaro
Eloy alfaro
 
Presentación1sistema
Presentación1sistemaPresentación1sistema
Presentación1sistema
 
1.1.1
1.1.11.1.1
1.1.1
 
Planeta tierra
Planeta tierraPlaneta tierra
Planeta tierra
 
CV Juan Pena A
CV Juan Pena ACV Juan Pena A
CV Juan Pena A
 
Semana3dia3. proceso de c-v int.
Semana3dia3. proceso de c-v int.Semana3dia3. proceso de c-v int.
Semana3dia3. proceso de c-v int.
 
2 decadadas de neoliberalismo
2 decadadas de neoliberalismo2 decadadas de neoliberalismo
2 decadadas de neoliberalismo
 
Persona jurica
Persona juricaPersona jurica
Persona jurica
 
PresentacióN1 Janet
PresentacióN1 JanetPresentacióN1 Janet
PresentacióN1 Janet
 
Itinerario informativo, bases curriculares y estandares orientadores
Itinerario informativo, bases curriculares y estandares orientadoresItinerario informativo, bases curriculares y estandares orientadores
Itinerario informativo, bases curriculares y estandares orientadores
 
bitacora de programa de mtto
bitacora de programa de mttobitacora de programa de mtto
bitacora de programa de mtto
 

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

Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrolloAlejandro Hernández
 
Presentación1
Presentación1Presentación1
Presentación1daquicaro
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfectobetabeers
 
Diego loaiza cuadro conparativo entre windows, mac os y linux
Diego loaiza cuadro conparativo  entre windows, mac os y linuxDiego loaiza cuadro conparativo  entre windows, mac os y linux
Diego loaiza cuadro conparativo entre windows, mac os y linuxDiego Junior Loaiza Maldonado
 
Virtualización para Desarrolladores
Virtualización para DesarrolladoresVirtualización para Desarrolladores
Virtualización para Desarrolladoressergiovier
 
Herramientas para Desarrolladores Web
Herramientas para Desarrolladores WebHerramientas para Desarrolladores Web
Herramientas para Desarrolladores Websergiovier
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Eduardo Castro
 
Expo Adrenalinux
Expo AdrenalinuxExpo Adrenalinux
Expo Adrenalinuxoswchavez
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyJorge Antonio Linares Vera
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDaniel Cruz
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidadRaelyx Cordero
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARPablo Godel
 
Algunas herramientas para desarrolladores
Algunas herramientas para desarrolladoresAlgunas herramientas para desarrolladores
Algunas herramientas para desarrolladoressergiovier
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Leonardo J. Caballero G.
 

Similar a 03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno (20)

Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
Presentación1
Presentación1Presentación1
Presentación1
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
 
Open Build Service
Open Build ServiceOpen Build Service
Open Build Service
 
Diego loaiza cuadro conparativo entre windows, mac os y linux
Diego loaiza cuadro conparativo  entre windows, mac os y linuxDiego loaiza cuadro conparativo  entre windows, mac os y linux
Diego loaiza cuadro conparativo entre windows, mac os y linux
 
Virtualización para Desarrolladores
Virtualización para DesarrolladoresVirtualización para Desarrolladores
Virtualización para Desarrolladores
 
Herramientas para Desarrolladores Web
Herramientas para Desarrolladores WebHerramientas para Desarrolladores Web
Herramientas para Desarrolladores Web
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
XEN - Taller presentación Xen
XEN - Taller presentación XenXEN - Taller presentación Xen
XEN - Taller presentación Xen
 
Expo Adrenalinux
Expo AdrenalinuxExpo Adrenalinux
Expo Adrenalinux
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Algunas herramientas para desarrolladores
Algunas herramientas para desarrolladoresAlgunas herramientas para desarrolladores
Algunas herramientas para desarrolladores
 
SERVIDOR WEB PARA LINUX
SERVIDOR WEB PARA LINUXSERVIDOR WEB PARA LINUX
SERVIDOR WEB PARA LINUX
 
Atix26
Atix26Atix26
Atix26
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
 

Más de wpargentina

Mailén Knoblovits: Lo que marca la diferencia
Mailén Knoblovits: Lo que marca la diferenciaMailén Knoblovits: Lo que marca la diferencia
Mailén Knoblovits: Lo que marca la diferenciawpargentina
 
Andrés Villarreal: Depresión, Ansiedad y Otros Demonios
Andrés Villarreal: Depresión, Ansiedad y Otros DemoniosAndrés Villarreal: Depresión, Ansiedad y Otros Demonios
Andrés Villarreal: Depresión, Ansiedad y Otros Demonioswpargentina
 
Lucas Maglicic: Estadísticas de visita y/o Google Analytics con WordPress
Lucas Maglicic: Estadísticas de visita y/o Google Analytics con WordPressLucas Maglicic: Estadísticas de visita y/o Google Analytics con WordPress
Lucas Maglicic: Estadísticas de visita y/o Google Analytics con WordPresswpargentina
 
Otto Wald: Cómo preguntar (y lograr que te respondan) en un foro
Otto Wald: Cómo preguntar (y lograr que te respondan) en un foroOtto Wald: Cómo preguntar (y lograr que te respondan) en un foro
Otto Wald: Cómo preguntar (y lograr que te respondan) en un forowpargentina
 
Iván Briceño: Herramientas de SEO On-Page para WordPress
Iván Briceño: Herramientas de SEO On-Page para WordPressIván Briceño: Herramientas de SEO On-Page para WordPress
Iván Briceño: Herramientas de SEO On-Page para WordPresswpargentina
 
Javier Schvindlerman: Creando un plan de contenidos anual en 6 minutos
Javier Schvindlerman: Creando un plan de contenidos anual en 6 minutosJavier Schvindlerman: Creando un plan de contenidos anual en 6 minutos
Javier Schvindlerman: Creando un plan de contenidos anual en 6 minutoswpargentina
 
Spencer Cloud: Cömo Crear un Custom Post Type
Spencer Cloud: Cömo Crear un Custom Post TypeSpencer Cloud: Cömo Crear un Custom Post Type
Spencer Cloud: Cömo Crear un Custom Post Typewpargentina
 
Ximena Vinitzca: ¿Cómo generar una API key de Google Maps?
Ximena Vinitzca: ¿Cómo generar una API key de Google Maps?Ximena Vinitzca: ¿Cómo generar una API key de Google Maps?
Ximena Vinitzca: ¿Cómo generar una API key de Google Maps?wpargentina
 
WordPress WPO: Consejos y Herramientas (Federico Álvarez - Meetup Bs. As. Oct...
WordPress WPO: Consejos y Herramientas (Federico Álvarez - Meetup Bs. As. Oct...WordPress WPO: Consejos y Herramientas (Federico Álvarez - Meetup Bs. As. Oct...
WordPress WPO: Consejos y Herramientas (Federico Álvarez - Meetup Bs. As. Oct...wpargentina
 
Cómo convertí mi trabajo freelance en un negocio (Mercedes Bugarin - Meetup...
Cómo convertí mi trabajo freelance en un negocio (Mercedes Bugarin - Meetup...Cómo convertí mi trabajo freelance en un negocio (Mercedes Bugarin - Meetup...
Cómo convertí mi trabajo freelance en un negocio (Mercedes Bugarin - Meetup...wpargentina
 
Trabajo a distancia: retos y oportunidades (Karen Arnold, WCBA 2017)
 Trabajo a distancia: retos y oportunidades (Karen Arnold, WCBA 2017) Trabajo a distancia: retos y oportunidades (Karen Arnold, WCBA 2017)
Trabajo a distancia: retos y oportunidades (Karen Arnold, WCBA 2017)wpargentina
 
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
 Introducción a herramientas de Roots (José Debuchy, WCBA 2017) Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)wpargentina
 
El soporte soporta tu negocio: caso de estudio de WPML (Otto Wald, WCBA 2017)
 El soporte soporta tu negocio: caso de estudio de WPML (Otto Wald, WCBA 2017) El soporte soporta tu negocio: caso de estudio de WPML (Otto Wald, WCBA 2017)
El soporte soporta tu negocio: caso de estudio de WPML (Otto Wald, WCBA 2017)wpargentina
 
7 claves para romperla con tus contenidos digitales (Pablo Croci, WCBA 2017)
 7 claves para romperla con tus contenidos digitales (Pablo Croci, WCBA 2017) 7 claves para romperla con tus contenidos digitales (Pablo Croci, WCBA 2017)
7 claves para romperla con tus contenidos digitales (Pablo Croci, WCBA 2017)wpargentina
 
Multisites: creando una red de sitios con WordPress (Pablo Capello, WCBA 2017)
 Multisites: creando una red de sitios con WordPress (Pablo Capello, WCBA 2017) Multisites: creando una red de sitios con WordPress (Pablo Capello, WCBA 2017)
Multisites: creando una red de sitios con WordPress (Pablo Capello, WCBA 2017)wpargentina
 
Protegiendo tu presencia web con WordPress (Mike Schroder, WCBA 2017)
 Protegiendo tu presencia web con WordPress (Mike Schroder, WCBA 2017) Protegiendo tu presencia web con WordPress (Mike Schroder, WCBA 2017)
Protegiendo tu presencia web con WordPress (Mike Schroder, WCBA 2017)wpargentina
 
WordPress: una opción (no siempre) consciente (Ricardo Aiello, WCBA 2017)
 WordPress: una opción (no siempre) consciente (Ricardo Aiello, WCBA 2017) WordPress: una opción (no siempre) consciente (Ricardo Aiello, WCBA 2017)
WordPress: una opción (no siempre) consciente (Ricardo Aiello, WCBA 2017)wpargentina
 
WordPress en el mercado editorial: dos casos de éxito (Miguel Lederkremer, W...
 WordPress en el mercado editorial: dos casos de éxito (Miguel Lederkremer, W... WordPress en el mercado editorial: dos casos de éxito (Miguel Lederkremer, W...
WordPress en el mercado editorial: dos casos de éxito (Miguel Lederkremer, W...wpargentina
 
Definiciones en desarrollo web: cómo trabajar sobre WordPress (Andrés Villar...
 Definiciones en desarrollo web: cómo trabajar sobre WordPress (Andrés Villar... Definiciones en desarrollo web: cómo trabajar sobre WordPress (Andrés Villar...
Definiciones en desarrollo web: cómo trabajar sobre WordPress (Andrés Villar...wpargentina
 
Plugins con React y la REST API (Elio Rivero, WCBA 2017)
 Plugins con React y la REST API (Elio Rivero, WCBA 2017) Plugins con React y la REST API (Elio Rivero, WCBA 2017)
Plugins con React y la REST API (Elio Rivero, WCBA 2017)wpargentina
 

Más de wpargentina (20)

Mailén Knoblovits: Lo que marca la diferencia
Mailén Knoblovits: Lo que marca la diferenciaMailén Knoblovits: Lo que marca la diferencia
Mailén Knoblovits: Lo que marca la diferencia
 
Andrés Villarreal: Depresión, Ansiedad y Otros Demonios
Andrés Villarreal: Depresión, Ansiedad y Otros DemoniosAndrés Villarreal: Depresión, Ansiedad y Otros Demonios
Andrés Villarreal: Depresión, Ansiedad y Otros Demonios
 
Lucas Maglicic: Estadísticas de visita y/o Google Analytics con WordPress
Lucas Maglicic: Estadísticas de visita y/o Google Analytics con WordPressLucas Maglicic: Estadísticas de visita y/o Google Analytics con WordPress
Lucas Maglicic: Estadísticas de visita y/o Google Analytics con WordPress
 
Otto Wald: Cómo preguntar (y lograr que te respondan) en un foro
Otto Wald: Cómo preguntar (y lograr que te respondan) en un foroOtto Wald: Cómo preguntar (y lograr que te respondan) en un foro
Otto Wald: Cómo preguntar (y lograr que te respondan) en un foro
 
Iván Briceño: Herramientas de SEO On-Page para WordPress
Iván Briceño: Herramientas de SEO On-Page para WordPressIván Briceño: Herramientas de SEO On-Page para WordPress
Iván Briceño: Herramientas de SEO On-Page para WordPress
 
Javier Schvindlerman: Creando un plan de contenidos anual en 6 minutos
Javier Schvindlerman: Creando un plan de contenidos anual en 6 minutosJavier Schvindlerman: Creando un plan de contenidos anual en 6 minutos
Javier Schvindlerman: Creando un plan de contenidos anual en 6 minutos
 
Spencer Cloud: Cömo Crear un Custom Post Type
Spencer Cloud: Cömo Crear un Custom Post TypeSpencer Cloud: Cömo Crear un Custom Post Type
Spencer Cloud: Cömo Crear un Custom Post Type
 
Ximena Vinitzca: ¿Cómo generar una API key de Google Maps?
Ximena Vinitzca: ¿Cómo generar una API key de Google Maps?Ximena Vinitzca: ¿Cómo generar una API key de Google Maps?
Ximena Vinitzca: ¿Cómo generar una API key de Google Maps?
 
WordPress WPO: Consejos y Herramientas (Federico Álvarez - Meetup Bs. As. Oct...
WordPress WPO: Consejos y Herramientas (Federico Álvarez - Meetup Bs. As. Oct...WordPress WPO: Consejos y Herramientas (Federico Álvarez - Meetup Bs. As. Oct...
WordPress WPO: Consejos y Herramientas (Federico Álvarez - Meetup Bs. As. Oct...
 
Cómo convertí mi trabajo freelance en un negocio (Mercedes Bugarin - Meetup...
Cómo convertí mi trabajo freelance en un negocio (Mercedes Bugarin - Meetup...Cómo convertí mi trabajo freelance en un negocio (Mercedes Bugarin - Meetup...
Cómo convertí mi trabajo freelance en un negocio (Mercedes Bugarin - Meetup...
 
Trabajo a distancia: retos y oportunidades (Karen Arnold, WCBA 2017)
 Trabajo a distancia: retos y oportunidades (Karen Arnold, WCBA 2017) Trabajo a distancia: retos y oportunidades (Karen Arnold, WCBA 2017)
Trabajo a distancia: retos y oportunidades (Karen Arnold, WCBA 2017)
 
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
 Introducción a herramientas de Roots (José Debuchy, WCBA 2017) Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
 
El soporte soporta tu negocio: caso de estudio de WPML (Otto Wald, WCBA 2017)
 El soporte soporta tu negocio: caso de estudio de WPML (Otto Wald, WCBA 2017) El soporte soporta tu negocio: caso de estudio de WPML (Otto Wald, WCBA 2017)
El soporte soporta tu negocio: caso de estudio de WPML (Otto Wald, WCBA 2017)
 
7 claves para romperla con tus contenidos digitales (Pablo Croci, WCBA 2017)
 7 claves para romperla con tus contenidos digitales (Pablo Croci, WCBA 2017) 7 claves para romperla con tus contenidos digitales (Pablo Croci, WCBA 2017)
7 claves para romperla con tus contenidos digitales (Pablo Croci, WCBA 2017)
 
Multisites: creando una red de sitios con WordPress (Pablo Capello, WCBA 2017)
 Multisites: creando una red de sitios con WordPress (Pablo Capello, WCBA 2017) Multisites: creando una red de sitios con WordPress (Pablo Capello, WCBA 2017)
Multisites: creando una red de sitios con WordPress (Pablo Capello, WCBA 2017)
 
Protegiendo tu presencia web con WordPress (Mike Schroder, WCBA 2017)
 Protegiendo tu presencia web con WordPress (Mike Schroder, WCBA 2017) Protegiendo tu presencia web con WordPress (Mike Schroder, WCBA 2017)
Protegiendo tu presencia web con WordPress (Mike Schroder, WCBA 2017)
 
WordPress: una opción (no siempre) consciente (Ricardo Aiello, WCBA 2017)
 WordPress: una opción (no siempre) consciente (Ricardo Aiello, WCBA 2017) WordPress: una opción (no siempre) consciente (Ricardo Aiello, WCBA 2017)
WordPress: una opción (no siempre) consciente (Ricardo Aiello, WCBA 2017)
 
WordPress en el mercado editorial: dos casos de éxito (Miguel Lederkremer, W...
 WordPress en el mercado editorial: dos casos de éxito (Miguel Lederkremer, W... WordPress en el mercado editorial: dos casos de éxito (Miguel Lederkremer, W...
WordPress en el mercado editorial: dos casos de éxito (Miguel Lederkremer, W...
 
Definiciones en desarrollo web: cómo trabajar sobre WordPress (Andrés Villar...
 Definiciones en desarrollo web: cómo trabajar sobre WordPress (Andrés Villar... Definiciones en desarrollo web: cómo trabajar sobre WordPress (Andrés Villar...
Definiciones en desarrollo web: cómo trabajar sobre WordPress (Andrés Villar...
 
Plugins con React y la REST API (Elio Rivero, WCBA 2017)
 Plugins con React y la REST API (Elio Rivero, WCBA 2017) Plugins con React y la REST API (Elio Rivero, WCBA 2017)
Plugins con React y la REST API (Elio Rivero, WCBA 2017)
 

Último

Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 

Último (8)

Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 

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

  • 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. 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. • 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. 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. ¿CUÁNDO SE VUELVE OBSOLETA UNA HERRAMIENTA DE TRABAJO?
  • 7. CUANDO YA NO TE DEJA TRABAJAR.
  • 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. ¿O SEA QUE SI NO ME PASA NINGUNA DE ESAS COSAS, YA ME PUEDO IR?
  • 11. Un Caso Común O “¡Extra, extra, XAMPP apesta!”
  • 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. Gestores de Servicios Populares • XAMPP (Windows, Linux) • WAMPServer (Windows) • MAMP (Mac OS X) • EasyPHP (Windows)
  • 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. El Problema de Windows O “El misterio de por qué nada anda como debería”.
  • 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. 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. ¿O SEA QUE TENGO QUE CORRER A INSTALAR UBUNTU?
  • 20. OK, YA MISMO ME ESTOY COMPRANDO UNA MAC…
  • 21. NO, AGUANTÁ. O sea, sí, pero no es indispensable.
  • 22. Líneas de Comando O “Aprendiendo a ser re hacker”.
  • 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. Control de Versiones O “La desaparición de 72 carpetas con el mismo prefijo”.
  • 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. 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.
  • 28. 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.
  • 29. Prácticas de Deployment O “Se cortó internet mientras actualizaba el sitio y se rompió todo”.
  • 30. 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.
  • 31. 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.
  • 32. Coding Standards O “¿Por qué ponen tantos espacios?”
  • 33. –San Ambrosio de Milán, Siglo IV. “Cuando estés en Roma, vive al modo romano. En cualquier parte vive como allí se viva”.
  • 34. CUANTO MÁS COMPRENSIBLE SEA TU CÓDIGO, MÁS FÁCIL VA A SER MANTENERLO EN EL FUTURO.
  • 35. WordPress
 Coding Standards • PHP Coding Standards • HTML Coding Standards • CSS Coding Standards • JavaScript Coding Standards
  • 36. –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 (…)”
  • 38. Virtualización O “La respuesta a cuántos pares son tres botas”.
  • 39.
  • 40. 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.
  • 41. 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.
  • 42. 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).
  • 43. ¿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
  • 45. ¿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.
  • 46. IDEs y Editores de Texto O “Yo uso Notepad++, es re groso”.
  • 47. IDEs y Editores Copados
 para Trabajar con WordPress • PHPStorm • SublimeText • Coda • Aptana • Komodo Edit • Komodo IDE