Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

21
WC BA 17 José María Debuchy Introducción a herramientas de Roots @josedebuchy

Transcript of Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

Page 1: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

WCBA17

José María DebuchyIntroducción a herramientas de Roots@josedebuchy

Page 2: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

2

WordPress Introducción

๏ Abarca el ~59.2% de los CMS alrededor del mundo. ~28.3% de los sitios web online.

๏ Tiene barreras de entrada muy bajas.

๏ Está basado en una amplia comunidad, en permanente evolución.

Page 3: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

3

¿Por qué elegir Roots? Introducción

๏ Proceso de trabajo predecible y escalable en equipo.

๏ Herramientas avanzadas de desarrollo.

๏ Mejora continua en comunidad.

Page 4: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

4

Productos de Roots Introducción

Trellis: Infraestructura

Bedrock: Aplicación

Sage: Starter Theme

Nota: Pueden utilizarse en forma separada, pero su ventaja radica en su uso combinado.

Page 5: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

5

Requerimientos Introducción

๏ No utilizar servidores compartidos. Instalación Ubuntu 16.04 Xenial TLS.

๏ Ciertas adaptaciones para Windows.

๏ Algunos conocimientos de línea de comandos.

Page 6: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

6

Resumen

1. Servidores Idénticos

2. Creación de servidores complejos

3. FTP vs VCS

4. Plugins, Themes y core de WP como dependencias

5. Nueva organización de carpetas

6. Seguridad y mayor organización de constantes

7. Wrapper único. DRY.

8. Utilización de SCSS y compiladores para Assets

9. Sincronización de BBDD mediante plugin

10. Notificaciones, Emails a través de una aplicación de terceros.*

Propuestas de mejora

Page 7: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

7

1. Servidores idénticos Trellis

๏ Development, Staging y Producción

๏ Nos aseguramos de que lo que estamos viendo en nuestra computadora mientras desarrollamos se verá en forma idéntica en los otros entornos.

Page 8: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

8

2. Creación de servidores complejos Trellis

Servidor LEMP

Opciones: Digital Ocean, Amazon, Vultr

ansible-playbook server.yml -e env=<environment>

Page 9: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

9

3. FTP vs VCS + Deploy Automático Trellis

๏ Backup del código. Evolución del código. Posibilidad más sencilla de compartir el trabajo en equipo.

๏ Con un solo comando en ansible se corren una serie de tareas y testeos, si están ok se hace un clon del repositorio, se crea una carpeta con ese codebase con una fecha y se genera una alias como carpeta principal.

๏ Opciones de hosting de repositorios: Github, Bitbucket, Beanstalk.

./bin/deploy.sh <environment> <site name>

Page 10: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

10

4. Sistema de dependencias. Bedrock

๏ Todas las dependencias (Plugins, themes y WP) están listadas en un único archivo, llamado composer.json.

๏ Se actualizan desde un único lugar.

๏ Solamente instalás los archivos propios de tu proyecto/theme en el repositorio.

๏ WPackagist. Repositorio composer para WordPress.

composer update

Page 11: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

11

Bedrock5. Nueva estructura de carpetas.

composer create-project roots/bedrock your-project-folder-name

Page 12: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

12

6. Seguridad Bedrock

๏ La mayoría de las credenciales de acceso o datos importantes se recopilan en archivos .env.

๏ Estos archivos se encuentran fuera la raíz.

๏ wp-password-bcrypt

Page 13: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

13

Sage7. Wrapper (DRY)

๏ DRY: Don’t Repeat Yourself.

๏ Se nombra en un archivo base por única vez a las funciones get_header(), get_footer() y get_sidebar().

Page 14: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

14

8. SCSS y compiladores de assets Sage

๏ Workflow avanzado

๏ Sage 8: Gulp, Bower, NPM, BrowserSync, etc.

๏ Sage 9: Webpack, Blade, Yarn, BrowserSync, etc

๏ Opciones de Frameworks Bootstrap 4 / Foundation

gulp [watch | —production]bower installnpm install

Sage 8

yarn run [start | build ]yarncomposer install

Sage 9

Page 15: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

15

9. Sincronización de BBDD Extra

WP DB Migrate PRO

๏ Ventajas

๏ Ahorro grande de tiempo en migraciones.

๏ Automatización de trabajo. No más manejo de SQL.

๏ Desventajas

๏ Precio

*

Page 16: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

16

10. Notificaciones, Emails Extras

๏ Development

๏ MailHog

๏ Staging/Producción

๏ Instalación de servicios externos.

๏ Mailgun, Sendgrid o Amazon SES, entre otros.

*

Page 17: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

17

Resumen

1. Servidores Idénticos

2. Creación de servidores complejos

3. FTP vs VCS

4. Plugins, Themes y core de WP como dependencias

5. Nueva organización de carpetas

6. Seguridad y mayor organización de constantes

7. Wrapper único. DRY.

8. Utilización de SCSS y compiladores para Assets

9. Sincronización de BBDD mediante plugin

10. Notificaciones, Emails a través de una aplicación de terceros.*

Propuestas de mejora

Page 18: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

18

Combinaciones Sugeridas Resumen

๏ Trellis (Servidor)

๏ Bedrock (Aplicación)

๏ Sage (Theme)

๏ Digital Ocean (Infraestructura)

๏ Bitbucket (Repositorio)

๏ Soil (Limpieza) *

๏ ACF Pro (Campos personalizados) *

๏ WP Migrate DB Pro * (Migración distintos entornos)

๏ Contact Form 7 o Gravity Forms * (Formulario de contacto)

๏ WP Offload S3 Lite (Multimedia)

๏ Font Awesome (Íconos)

๏ Mailgun (Envío de emails)

Page 19: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

19

Ejemplo / Soporte Resumen

Roots Example Project

๏ https://github.com/roots/roots-example-project.com

Foro Oficial

๏ https://discourse.roots.io

Page 20: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

20

Referencias Resumen

๏Roots (roots.io)

๏Git (git-scm.com)

๏The Twelve-Factor App (12factor.net/es/)

๏Virtualbox (www.virtualbox.org)

๏Ansible (www.ansible.com)

๏SequelPro (www.sequelpro.com)

๏Bitbucket (bitbucket.org)

๏Digital Ocean (www.digitalocean.com)

๏Sass (http://sass-lang.com/)

Page 21: Introducción a herramientas de Roots (José Debuchy, WCBA 2017)

José Debuchy [email protected]

@josedebuchy

Preguntas