Dicen que el tiempo vuela rápido cuando te diviertes. Para mí, personalmente, la parte divertida es especialmente importante en el día a día de la puesta en marcha y el crecimiento del negocio. Me hace disfrutar, independientemente de la cantidad de energía interior que consuma el ajetreo semanal.
(En el próximo episodio, seguiré con el tema del humor en el lugar de trabajo para profundizar un poco más en él, sólo porque puedo. "¿Por qué tan serio?").
Hablando de tiempo, han pasado 2 semanas desde mi última publicación por lo que ya es hora del 4º episodio de nuestro #TheCodestReview serie.
Lista de temas que tratamos esta semana:
- Engancharse al React
- Todo lo que siempre quiso saber sobre el caché de vistas en Rails
- El Director de Ingeniería como maestro de la contratación
El comentario sobre el almacenamiento en caché de vistas entregado por nuestro desarrollador fullstack y el podcast del director de ingeniería comentado por mi humilde servidor.
Como popularmente conocido maestro de la aplicación Paint y admirador de los GIFs y memes que son como los bombones Merci - que dicen más que 1000 palabras, he decidido que a partir de ahora añadiré aquí un sabor de ello. ¿Y adivina qué?
Darth Sidious ¿Crees que puedes detenerme GIF de GIFs de Darthsidious
La última vez que hemos decidido poner un poco de atención en StimulusReflex que está recibiendo la atención en la comunidad Ruby como un nuevo chico en el bloque, siendo una alternativa al uso de la moderna Javascript en proyectos Rails para evitar el exceso.
Ver: StimulusReflex alias ReactiveRails
Para que sea una batalla en igualdad de condiciones, quería dejar que React devolviera el golpe a Stimulus. Como también soy un conocido hombre de honor, siempre hago lo que digo y cumplo mis promesas, aquí va:
En el próximo episodio tengo el placer y la ilusión de anunciar que contaremos con un artículo invitado del ingeniero React de Vinted.com. Para aquellos de ustedes que nunca han oído hablar de Vinted (bajas probabilidades, pero todavía posible), Vinted es un mercado de la moda originaria de Vilnius, Lituania que ha alcanzado una valoración unicornio de vuelta en 2019. La plataforma está construida sobre sólidos cimientos Ruby on Rails respaldados por React en la parte frontend.
Nota al margen: a mi mujer le encanta Vinted y casi ha dejado de utilizar OLX como destino principal para ordenar nuestro armario y vender ropa usada (era una auténtica fan incondicional) = ¡LO ESTÁIS HACIENDO BIEN!
Es para mí un privilegio dar la bienvenida a un primer colaborador invitado a nuestra serie:
Meryl Streep Sí GIF de GIFs de Merylstreep
Ugnė Kryževičiūtė - React ingeniero de Vinted
Al leer el título del reciente podcast de LadyBug ("Getting Hooked On React"), esperaba que tratara principalmente sobre los Hooks de React. Sin embargo, aunque no se profundizó en los Hooks, el podcast proporcionó una excelente introducción a los fundamentos de la biblioteca React para JavaScript.
Ali y Emma, del podcast LadyBug, hablan de los entresijos de React: desde el diseño general de la biblioteca y sus ventajas hasta animadas discusiones sobre componentes, manejo de datos o el ciclo de vida de React, todo ello presentado con una pizca de experiencia personal. Merece la pena escucharlo para cualquier desarrollador front-end que no haya tenido la oportunidad de probar las maravillas de React.
Mi primer encuentro con React fue hace unos tres años, cuando comencé mi andadura como desarrollador. Aunque Ali y Emma sugieren que React puede parecer confuso al principio, desde mi propia experiencia, me pareció relativamente fácil para empezar y probablemente el más fácil de avanzar en comparación con otros frameworks front-end. Hay un montón de tutoriales, artículos, bibliotecas de código abierto y otros tipos de materiales de aprendizaje disponibles en todas partes. Sin embargo, hay que tener en cuenta el desarrollo activo de React cuando se consultan estos recursos. Este episodio del podcast de LadyBug no es una excepción: algunos aspectos y métodos mencionados ya están obsoletos desde hace tiempo. Por lo tanto, es mejor seguir los consejos de la propia Emma y consultar la documentación más reciente.
React ha evolucionado y madurado mucho, haciendo que código escribir es aún más fácil con Hooks, que permite utilizar métodos de estado y ciclo de vida sin escribir componentes de clase. Pero para los principiantes -como señala acertadamente Ali- la variedad de formas en que se puede escribir React (como componentes de clase/funcionales/Hooks) añade una complejidad adicional, ya que a veces puede ser difícil visualizar lo que está pasando. Además, tener que destilar lo que necesitas y encontrar información relevante sobre la implementación del código puede ser todo un reto.
Como una de las principales ventajas de React, Ali señala que está basado en componentes, lo que permite la modularización del código y facilita el trabajo conjunto con otros desarrolladores. Además, la posibilidad de utilizar JSX es una gran ayuda visual a la hora de trabajar con la interfaz de usuario en código JavaScript: ¡no es necesario tener archivos HTML separados!
Ali y Emma también resumen muy bien la flexibilidad que da tener un sistema de componentes. Un excelente ejemplo de la práctica es mi empresa Vinted, que ha experimentado un rápido crecimiento en lo que respecta a la producto así como el equipos de desarrollo trabajando en él durante los últimos años. React nos ha proporcionado enormes beneficios: nos ha permitido escribir un código mucho más limpio, utilizar componentes de interfaz de usuario reutilizables y ha facilitado las pruebas de nuestro código.
En general, este episodio del podcast LadyBug ofrece un debate animado y encantador sobre los principales aspectos de React. Lo recomiendo a cualquiera que esté empezando su viaje con React. Lleno de ejemplos divertidos y analogías con la vida real, el episodio "Engancha" a la perfección la atención de cada oyente, la mía incluida.
Lamentablemente, las vistas en Rails se vuelven más lentas con el tiempo. Esto se debe a que la cantidad de objetos almacenados en la base de datos crece. Esto provoca tiempos de consulta más largos y, por supuesto, un procesamiento más largo si estamos haciendo algo con cada uno de los objetos. Cuando esto ocurre no te quedas sin ninguna posibilidad ya que existe el cacheo de vistas en Rails.
Gracias a esto puedes ahorrar bastante tiempo cargando datos pesados de la base de datos desde la caché (cargando un único archivo html guardado en lugar de consultar la base de datos y procesar los objetos). También puede hacerlo menos costoso en caso de diferentes parciales y objetos - por supuesto si los objetos no cambian muy a menudo. También puede tratar de mantener los objetos almacenados en caché en parciales separados - y ahorrar, por ejemplo, 19 de los 20 mensajes que se renderizan (posiblemente con un montón de campos).
Por defecto, la caché de Rails utiliza file_store y mantiene los datos almacenados en caché en las carpetas. Pero no borra las entradas antiguas de la caché (que podrían haber caducado hace mucho tiempo). Esto puede llevar a un desbordamiento de la cantidad de archivos o incluso a quedarse sin espacio libre en un servidor. El otro método es memory_store que también tiene algunas desventajas (ya que la caché se mantiene en un único servidor). También puede exceder la cantidad de RAM guardada en el servidor (o la falta de caché si se borra todo el tiempo). Por eso, el mejor mecanismo de caché a gran escala es el método Memcached/Redis. Esto le da la oportunidad de utilizar una máquina separada para mantener la caché que puede ser utilizada por todos los servidores. Gracias a ello no habrá problemas de falta de caché o de espacio en disco de acabado en un servidor.
La caché en Rails se mantiene en base a un identificador - que puede darse directamente como una cadena o generarse automáticamente al pasar un objeto a la función de caché. En el caso de los objetos suele ser el atributo updated_at. También se puede proporcionar una clave estática a partir de los parámetros del objeto.
Un método diferente de almacenamiento en caché es utilizar Javascript para actualizar un campo que se cambia una vez al día. De esta forma se puede tener una fecha válida mostrada todo el tiempo, sin refrescar el sitio web - que podría ser bastante enorme o lento para ser ejecutado.
Para no hacerles demasiados spoilers, la mesa redonda sobre el papel del director de ingeniería en el proceso de contratación es muy valiosa para todos aquellos que se preguntan cuándo es el momento adecuado para que el líder tecnológico entre en el ciclo de entrevistas. En CodestPracticamos lo que predican los panelistas y nuestro CTO es el primer punto de contacto con los ingenieros que solicitan nuestros servicios, mientras que en la siguiente fase las entrevistas corren a cargo de equipo con los que trabajarán estrechamente los posibles nuevos empleados. Algunos consejos prácticos que puedes aplicar de inmediato para mejorar tu contratación como director de ingeniería:
-
Revise su proceso y asegúrese de unirse al flujo lo antes posible, idealmente siendo el primer punto de contacto para los candidatos, ya que las primeras impresiones juegan un papel clave en la forma en que su empresa es vista por los mejores talentos.
-
Acércate a los responsables de contratación más eficaces de tu organización (quizá el que te contrató a ti en su día) y pregúntales si puedes seguir de cerca algunas de sus entrevistas planificadas, comprobar sus técnicas y pedirles consejos. Observa y aprende. Entre en cada entrevista con auténtica curiosidad por los candidatos.
-
Busque potencial y contrate por potencial y capacidad para crecer rápidamente.
-
Habla de tus anuncios de trabajo con todos tus ingenieros y pregúntales si solicitarían el puesto. Si no es así, pregúntales qué es lo que no les gusta y aplica sus comentarios al anuncio de empleo 2.0 que vas a publicar en los portales de empleo.
-
Considera la 1ª entrevista como una oportunidad para crear una gran relación con tus posibles futuros compañeros.
Te animo a que veas el vídeo completo del panel, pero si lo tuyo son los podcasts y te gusta escucharlos mientras conduces, haces ejercicio o friegas los platos, aquí tienes también un Spotify enlace.
Muchas gracias por leer y si has llegado hasta aquí, aprecio tu tiempo y cualquier comentario (ya sea bueno o criticándome) es más que bienvenido en LinkedIn o a mi correo electrónico.
Pronto les traeremos el próximo episodio.
Yippie IWill See You Soon GIF de baile de Yippieiwillseeyousoon GIFs
Más información:
TheCodestReview #3 - zumo semanal de ingeniería de software
TheCodestReview #2 - zumo semanal de ingeniería de software
TheCodestReview #1 - zumo semanal de ingeniería de software