Mí experiencia como ponente en la ConferenciaRoR Madrid-España 2016


img_2425 Este año 2016, se ha vuelto a poner en marcha una de las grandes conferencias de Rails en la que he podido participar como Speaker, es una noticia genial “me han aceptado una charla” y un gran reto para mí. El motivo, es inglés, el nivel de la gente que acude a este evento y el nivel de los ponentes me asusta el participar, ya que todos los participantes son profesionales muy conocidos en mí caso no me conoce casi nadie, pero aún así me he puesto este reto y lo voy a cumplir con la mejor de mis intenciones (no sé si he estado a la altura pero déjame un comentario con tú opinión, te lo agradezco!). La conferencia es Conferencia Rails, echa un vistazo merece la pena y deberías acudir al año proximo sin falta, si es que te interesan este tipo de temáticas.

Primero quería agradecer a los organizadores de este evento que se han dado un currazo tremendo y aquí me quito el sombrero. Por otro lado, la acogida tan cariñosa que he  tenido y así me lo han trasmitido incluso antes de entrar por la puerta en a que ya soy recibido con una sonrisa y una calurosa bienvenida por parte de Fernando y el cariño del resto del equipo organizador como  y . Mil Gracias!!

Bulk load data with Active Record and NoSQL

¿por qué he presentado este tema? el motivo es que en mí opinión, no es un tema que se trate mucho y por otro lado es algo que es muy normal el tener que cargar datos en proyectos en los que estamos involucrados. Yo me he encontrado ya muchos proyectos que se necesita una importación de datos y es necesario contar con una buena base para poder tener una buena performa en el proceso de carga y todo lo necesario para tener éxito. Cuento mis ideas, experiencia y opiniones contrastadas, pero mis ideas!.

La refactorización cometiendo errores aporta valor a la solución

En este punto he querido tratar el tema de la forma de hacer las cosas, sobre todo desde un punto de vista lógico que muchas veces no es el mejor camino para hacer las cosas y en esta ocasión presento un ejemplo práctico de cómo pensando lógicamente de cómo se presentan nuestro workflow de la información, mis tiempos de proceso no fue nada bien. Pero en contraposición y como algo que tenemos que ver en positivo,  es que que  cuando se cometen errores  te das cuenta que tienes una experiencia de como ha ido todo y puedes realizar los ajustes necesarios para atacar el problema desde otro punto de vista, la refactorización con experiencia y habiendo cometido un error, es ideal para aportar nuevos valores a la forma de programar.

Tips e Ideas

En este aspecto he querido moverme en ideas que voy recogiendo y dependiendo de los casos es mucho mejor tener datos y bancos de pruebas que verifican lo que vamos descubriendo. Como ejemplo he querido poner el motivo del por qué he cambiado un Array por un Set, una decisión que aparentemente no tiene en muchas ocasiones importancia, cuando buscas la perfección y ajustes de tiempo al máximo estos datos toman una importancia que hay que conocer.  Utilizar Pluck en vez utilizar map contrastado con un benchmark, Caché de modelos que en repetidas ocasiones estamos consultando en nuestro proceso de carga y que hace que evitemos una 400.000 select menos en el proceso, imagina todo lo que aumenta en velocidad el proceso de carga utilizando Active Record o el cómo poder saltarte las validaciones que no realmente no necesitas y que quitan tiempo de ejecución de tu proceso.

Un poco más lejos del uso de Active Record

La pregunta es ¿qué pasa si necesito tratar 10 o 50 millones de registros en mis tablas para migrarlas? en este aspecto he querido tratar la temática de cuando es mejor no utilizar Active Record y algunos ejemplos de los que yo mismo lo he utilizado para llevarme mucha cantidad de datos en producción, con 3 ejemplos y sus respectivos benchmark, sorprendentes resultados!.

Proyectos en tiempo Real, en busca del número mágico

Aquí he querido tratar el tema de la coordinación de todos los elementos que intervienen el el propio proceso de importación, cuando tienes 1 millón de datos cargado y que también necesitas el poder cargar para que sean disponibles de inmediato ofertas de productos en el site. El famoso número mágico que hace que todo fluya con normalidad en nuestra plataforma de carga y de disponibilidad de los datos por parte de los usuarios. Hay que ver todo en su conjunto, conocer el terreno en el que nos movemos y buscar la armonía y sincronismo para que nuestra carga  salga bien.

El log es el poder de la información

Este en concreto es un tema que siempre he tenido como algo muy importante para tener el conocimiento de qué está pasando en nuestro proceso de carga, obteniendo respuestas mediante preguntas: ¿hemos podido cargar todo? ¿qué no hemos podido cargar por falta de criterio establecido para la calidad de nuestros datos? ¿qué problemas hay en el proceso con otros elementos? etc. Un buen LOG en que podamos tener todas las respuestas, es el poder del programador.

Mis concluciones

Mis conclusiones finales de mí charla han sido unas cuantas y están en la presentación, pero considero que la más importante es compartir experiencia y conocimiento para que podamos ser mejores programadores con la inteligencia colectiva.

Finalmente te dejo las transparencias de mi presentación y deja un comentario si quieres darme feedback de la charla, muy agradecido por ello🙂

NOTA: quiero agradecer las horas de dedicación que ha tenido desinteresadamente y siempre los buenos consejos así como el feedback de Martín, gracias compañero🙂

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s