<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Julian Drets</title>
    <description>The latest articles on DEV Community by Julian Drets (@juliandrets).</description>
    <link>https://dev.to/juliandrets</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2023347%2Fd6aff889-9364-4a07-8553-861f02e11a1c.png</url>
      <title>DEV Community: Julian Drets</title>
      <link>https://dev.to/juliandrets</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/juliandrets"/>
    <language>en</language>
    <item>
      <title>Construyendo Microfrontends Escalables y Mantenibles con Turborepo 🚀</title>
      <dc:creator>Julian Drets</dc:creator>
      <pubDate>Wed, 04 Sep 2024 20:35:48 +0000</pubDate>
      <link>https://dev.to/mentatech/construyendo-microfrontends-escalables-y-mantenibles-con-turborepo-1pba</link>
      <guid>https://dev.to/mentatech/construyendo-microfrontends-escalables-y-mantenibles-con-turborepo-1pba</guid>
      <description>&lt;h2&gt;
  
  
  Introducción:
&lt;/h2&gt;

&lt;p&gt;En &lt;strong&gt;mentatech&lt;/strong&gt;, la escalabilidad y la eficiencia son claves en nuestro enfoque de desarrollo. Por ello, hemos adoptado una arquitectura de microfrontends que nos permite escalar de manera eficiente y mantener nuestros proyectos organizados y ágiles. Esta arquitectura está construida utilizando &lt;a href="https://turbo.build/" rel="noopener noreferrer"&gt;&lt;strong&gt;Turborepo&lt;/strong&gt;&lt;/a&gt;, una herramienta que ha revolucionado la forma en que gestionamos nuestros repositorios de código.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es Turborepo?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Turborepo&lt;/strong&gt; es una herramienta de construcción de monorepos que nos ofrece la flexibilidad de alojar múltiples aplicaciones en un solo repositorio. Esto simplifica enormemente la gestión y colaboración en proyectos grandes, permitiéndonos centralizar y coordinar el desarrollo sin complicaciones.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyljjr21ehxyxuqr3r5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyljjr21ehxyxuqr3r5h.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ejemplo de estructura de carpetas de un proyecto con &lt;strong&gt;Turborepo&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;En la imagen, observamos la estructura del repositorio donde un &lt;code&gt;package.json&lt;/code&gt; ubicado en la raíz actúa como núcleo central de dependencias comunes, compartidas entre todas las aplicaciones. Adicionalmente, cada aplicación posee su propio &lt;code&gt;package.json&lt;/code&gt;, permitiendo la gestión individualizada de dependencias específicas para cada una. También se destaca una sección denominada packages, que aloja paquetes reutilizables diseñados para ser consumidos por las aplicaciones dentro del monorepo. Esta organización facilita una gestión eficiente y modular de los recursos, optimizando el desarrollo y mantenimiento de cada aplicación.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faq9gqponz826ool2ydfd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faq9gqponz826ool2ydfd.png" alt="Image description" width="766" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para mas info sobre como funciona la estructura de carpetas de Turborepo podes hacerlo &lt;a href="https://turbo.build/repo/docs/crafting-your-repository/structuring-a-repository" rel="noopener noreferrer"&gt;desde aquí&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ventajas de Turborepo en la Gestión de Microfrontends
&lt;/h2&gt;

&lt;p&gt;La adopción de &lt;strong&gt;Turborepo&lt;/strong&gt; nos ha permitido implementar una arquitectura de microfrontends donde cada componente o servicio es separado por responsabilidad, lo que facilita el mantenimiento y mejora la eficiencia de los deploys. Aquí algunas de las ventajas clave:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reutilización de Código:&lt;/strong&gt; Con &lt;strong&gt;Turborepo&lt;/strong&gt;, podemos compartir packages comunes entre nuestras aplicaciones de manera sencilla y eficiente. Esto facilita la reutilización de código y acelera el desarrollo, manteniendo la independencia de cada microfrontend.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Optimización de Deploys:&lt;/strong&gt; La estructura de &lt;strong&gt;Turborepo&lt;/strong&gt; permite optimizar los procesos de integración y despliegue continuo. Los deploys son más ágiles y menos propensos a errores, ya que cada cambio puede ser testeado y desplegado de manera independiente dentro del mismo repositorio.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mejora en la Colaboración:&lt;/strong&gt; La centralización de múltiples proyectos en un monorepo facilita la colaboración entre equipos. Los desarrolladores pueden trabajar de manera más coordinada, compartiendo dependencias y herramientas sin duplicar esfuerzos.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Experiencias y Resultados en &lt;strong&gt;mentatech&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Desde que implementamos &lt;strong&gt;Turborepo&lt;/strong&gt; en nuestra arquitectura de microfrontends, hemos observado mejoras significativas en la escalabilidad y mantenimiento de nuestros proyectos. La capacidad de gestionar múltiples aplicaciones en un entorno unificado ha simplificado nuestro flujo de trabajo y ha mejorado la colaboración entre nuestros equipos de desarrollo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;Adoptar &lt;strong&gt;Turborepo&lt;/strong&gt; y una arquitectura de microfrontends ha sido una decisión transformadora para &lt;strong&gt;mentatech&lt;/strong&gt;. Nos ha permitido escalar eficientemente mientras mantenemos nuestros proyectos organizados y ágiles. Si estás considerando mejorar la escalabilidad y mantenibilidad de tus proyectos, definitivamente recomendamos explorar las posibilidades que ofrece &lt;strong&gt;Turborepo&lt;/strong&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Controlando la tasa de errores de nuestros frontends con Datadog RUM</title>
      <dc:creator>Julian Drets</dc:creator>
      <pubDate>Tue, 03 Sep 2024 22:23:47 +0000</pubDate>
      <link>https://dev.to/mentatech/controlando-la-tasa-de-errores-de-nuestros-frontends-con-datadog-rum-4k83</link>
      <guid>https://dev.to/mentatech/controlando-la-tasa-de-errores-de-nuestros-frontends-con-datadog-rum-4k83</guid>
      <description>&lt;h2&gt;
  
  
  Introducción:
&lt;/h2&gt;

&lt;p&gt;En &lt;strong&gt;mentatech&lt;/strong&gt;, enfrentamos un desafío significativo: &lt;strong&gt;un 46% de nuestras sesiones en aplicaciones presentaban errores.&lt;/strong&gt; Sin visibilidad de los problemas en nuestros frontends, la experiencia de nuestros usuarios se veía gravemente afectada. En este artículo, te contamos cómo la implementación de Datadog RUM (Real User Monitoring) transformó nuestra capacidad para detectar y resolver problemas, y cómo mejoró drásticamente la experiencia de nuestros usuarios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reducción de Errores y mejora Continua
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gracias a Datadog RUM, logramos reducir la tasa de errores a un sorprendente 0.06%!&lt;/strong&gt; 🎉 Este cambio no solo nos permitió detectar y resolver problemas con rapidez, sino que también nos proporcionó una comprensión más profunda de cómo interactúan los usuarios con nuestras aplicaciones. La visibilidad que ahora tenemos nos ha permitido realizar mejoras continuas y garantizar una experiencia de usuario de alta calidad.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fygie7qf4qxg6lql6dauy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fygie7qf4qxg6lql6dauy.png" alt="Image description" width="800" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué hace que Datadog RUM sea tan Efectivo?
&lt;/h2&gt;

&lt;p&gt;Datadog RUM ofrece varias características clave que han sido fundamentales para nuestra estrategia de monitoreo y optimización:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Session Replays:&lt;/strong&gt; Una de las características más valiosas es la capacidad de ver exactamente lo que nuestros usuarios experimentan cuando ocurre un error. Esto nos permite reproducir problemas de manera precisa y entender mejor el contexto en el que ocurren.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdoprvw999c6pbc2lb01f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdoprvw999c6pbc2lb01f.png" alt="Image description" width="800" height="645"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Datos completos:&lt;/strong&gt; Datadog RUM proporciona métricas detalladas y la opción de agregar información personalizada, como el ID del usuario. Esta riqueza de datos facilita el debug y la mejora continua de nuestras aplicaciones al ofrecer una visión completa del rendimiento y la interacción del usuario.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgfmdxa9j1kf23d95uhd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgfmdxa9j1kf23d95uhd.png" alt="Image description" width="431" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementación y beneficios
&lt;/h2&gt;

&lt;p&gt;La integración de Datadog RUM en nuestro flujo de trabajo ha sido un cambio de juego. No solo hemos reducido significativamente la tasa de errores, sino que también hemos optimizado nuestra capacidad para identificar y abordar problemas antes de que afecten a un gran número de usuarios. Esta visibilidad es clave para garantizar una experiencia de usuario excepcional y mantener la confianza en nuestras aplicaciones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;La visibilidad y el control que Datadog RUM nos ha proporcionado han sido fundamentales para mejorar la experiencia del usuario en nuestras aplicaciones. Al reducir la tasa de errores y entender mejor cómo interactúan los usuarios, hemos podido realizar mejoras significativas y ofrecer un servicio de mayor calidad. ¿Cómo manejas tú el monitoreo y la mejora continua en tus aplicaciones? ¡Déjanos tus comentarios y comparte tus experiencias!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🚀 Releases Seguros y Mantenimiento Proactivo con Cypress.io</title>
      <dc:creator>Julian Drets</dc:creator>
      <pubDate>Tue, 03 Sep 2024 21:58:16 +0000</pubDate>
      <link>https://dev.to/mentatech/releases-seguros-y-mantenimiento-proactivo-con-cypressio-45kn</link>
      <guid>https://dev.to/mentatech/releases-seguros-y-mantenimiento-proactivo-con-cypressio-45kn</guid>
      <description>&lt;h2&gt;
  
  
  Introducción:
&lt;/h2&gt;

&lt;p&gt;En &lt;strong&gt;mentatech&lt;/strong&gt;, sabemos que la calidad en el lanzamiento de productos es crucial, especialmente cuando no contamos con un equipo de QA dedicado. Para garantizar que nuestros lanzamientos a producción sean lo más seguros y controlados posibles, hemos adoptado un enfoque innovador utilizando Cypress.io. En este artículo, compartiremos cómo implementamos pruebas end-to-end y mantenemos la calidad de nuestros productos de manera continua.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Cómo lo logramos? 🤔
&lt;/h2&gt;

&lt;p&gt;Implementar pruebas end-to-end es fundamental para asegurar que todos los flujos de usuario se cubran de manera efectiva. Utilizamos &lt;strong&gt;&lt;a href="https://www.cypress.io/" rel="noopener noreferrer"&gt;Cypress.io&lt;/a&gt;&lt;/strong&gt;, un potente framework de testing, para configurar y ejecutar todos los casos posibles para nuestras aplicaciones. Esto no solo simplifica el proceso de testing, sino que también lo hace extremadamente eficiente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyyx8edjknxij3qmg2a8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyyx8edjknxij3qmg2a8h.png" alt="Image description" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Integración de Entornos de Prueba 🧪
&lt;/h2&gt;

&lt;p&gt;No nos detenemos en el testing de frontend. También hemos integrado entornos de prueba que cubren tanto el frontend como el backend. Esto nos permite simular todos los escenarios posibles y garantizar que nuestros servicios funcionen correctamente en conjunto. Este enfoque integral mejora significativamente la calidad de nuestros productos y permite a nuestro equipo de backend realizar lanzamientos de manera controlada y segura.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitoreo Continuo: Manteniendo la Calidad 🔄
&lt;/h2&gt;

&lt;p&gt;Además de las pruebas iniciales, implementamos un cron job que ejecuta periódicamente nuestras pruebas end-to-end en un servidor. Este monitoreo continuo no solo detecta degradaciones en nuestros servicios o problemas en producción, sino que también nos alerta de manera inmediata en caso de fallos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Notificaciones en Slack:&lt;/strong&gt; Cuando un test falla, se envía automáticamente una notificación a un canal específico en Slack. La notificación incluye una imagen que muestra el error, y más información que nos ayuda a identificar el problema.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjyylo85un8yphl0eozy8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjyylo85un8yphl0eozy8.png" alt="Image description" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Alertas en Opsgenie:&lt;/strong&gt; Además, se activa una alerta en Opsgenie, que suena en nuestra guardia activa, garantizando que el equipo pueda reaccionar rápidamente a cualquier incidente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1betb4r1hceojwt4rmm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1betb4r1hceojwt4rmm.png" alt="Image description" width="800" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusión 😃
&lt;/h2&gt;

&lt;p&gt;Implementar &lt;strong&gt;&lt;a href="https://www.cypress.io/" rel="noopener noreferrer"&gt;Cypress.io&lt;/a&gt;&lt;/strong&gt; para pruebas end-to-end y mantener un monitoreo continuo nos ha permitido garantizar que nuestros lanzamientos a producción sean seguros y eficientes, incluso sin un equipo de QA dedicado. Al integrar estos procesos en nuestro flujo de trabajo, hemos mejorado la calidad y confiabilidad de nuestros productos. &lt;/p&gt;

&lt;p&gt;¿Qué estrategias utilizas tú para mantener la calidad en tus lanzamientos? ¡Déjanos tus comentarios y comparte tus experiencias!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
