<?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: Sergio Suárez</title>
    <description>The latest articles on DEV Community by Sergio Suárez (@sergiosuarezgil).</description>
    <link>https://dev.to/sergiosuarezgil</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%2F110420%2Fbf93995e-a161-4d75-9f13-fe7ae0d47ac4.jpeg</url>
      <title>DEV Community: Sergio Suárez</title>
      <link>https://dev.to/sergiosuarezgil</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sergiosuarezgil"/>
    <language>en</language>
    <item>
      <title>NestJS 10 - Descubre las novedades</title>
      <dc:creator>Sergio Suárez</dc:creator>
      <pubDate>Wed, 10 Jul 2024 14:05:50 +0000</pubDate>
      <link>https://dev.to/sergiosuarezgil/nestjs-10-ya-esta-aqui-descubre-las-novedades-3am9</link>
      <guid>https://dev.to/sergiosuarezgil/nestjs-10-ya-esta-aqui-descubre-las-novedades-3am9</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frm0px11v2p0jwmzl3b2x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frm0px11v2p0jwmzl3b2x.png" alt="Image description" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NestJS&lt;/strong&gt; ha lanzado hace unos meses su versión 10 y viene cargada de mejoras y nuevas funcionalidades que harán las delicias de los desarrolladores. &lt;/p&gt;

&lt;p&gt;Después de varios meses de pruebas y algunos que otro proyecto, te cuento las principales novedades de esta versión:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Integración con SWC&lt;/strong&gt;&lt;br&gt;
La nueva versión de NestJS incorpora SWC, un compilador y agrupador escrito en Rust que promete revolucionar los tiempos de compilación. Comparado con TypeScript, SWC ofrece una velocidad de compilación hasta 20 veces más rápida. Esto significa que los desarrolladores podrán disfrutar de una experiencia de desarrollo mucho más fluida y eficiente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Sobrescribir módulos en pruebas&lt;/strong&gt;&lt;br&gt;
NestJS 10 facilita aún más las pruebas unitarias al permitir sobrescribir módulos completos. Esta funcionalidad simplifica la creación de mocks y la configuración del entorno de pruebas, lo que resulta en un proceso de testing más limpio y manejable. Ahora, simular el comportamiento de servicios y componentes es más sencillo que nunca.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Suscripciones wildcard en Redis&lt;/strong&gt;&lt;br&gt;
Las suscripciones wildcard llegan a NestJS, mejorando significativamente la flexibilidad de los microservicios. Esta característica permite suscripciones basadas en patrones, lo cual es especialmente útil para sistemas que requieren una alta dinámica en la gestión de eventos y mensajes. Con esta mejora, los desarrolladores podrán diseñar arquitecturas más robustas y adaptables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. CacheModule independiente&lt;/strong&gt;&lt;br&gt;
El módulo de caché se ha convertido en un paquete independiente (@nestjs/cache-manager). Esto facilita su integración y uso en diferentes proyectos, proporcionando una mayor modularidad y permitiendo a los desarrolladores elegir de forma más precisa las herramientas que necesitan para optimizar sus aplicaciones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Compatibilidad y requisitos&lt;/strong&gt;&lt;br&gt;
Para aprovechar todas estas nuevas funcionalidades, es importante tener en cuenta los requisitos de compatibilidad. NestJS 10 requiere Node.js v16 o superior y TypeScript &amp;gt;= 4.8. Asegúrate de actualizar tus entornos de desarrollo para disfrutar de todas las ventajas que trae esta versión.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NestJS 10&lt;/strong&gt; es una actualización muy completa que promete mejorar significativamente la eficiencia y la flexibilidad del desarrollo con este framework. No dudes en probarlo y explorar todas sus nuevas capacidades!!&lt;/p&gt;

&lt;p&gt;Para más detalles y una &lt;strong&gt;lista completa de cambios&lt;/strong&gt;, puedes consultar el &lt;a href="https://trilon.io/blog/nestjs-10-is-now-available" rel="noopener noreferrer"&gt;anuncio oficial&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;O consultar sus &lt;strong&gt;últimas versiones en&lt;/strong&gt; &lt;a href="https://github.com/nestjs/nest/releases" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Webinar: ¿Cómo crear un API con NestJs, GraphQL y MongoDB?</title>
      <dc:creator>Sergio Suárez</dc:creator>
      <pubDate>Fri, 29 Apr 2022 14:13:51 +0000</pubDate>
      <link>https://dev.to/sergiosuarezgil/webinar-como-crear-un-api-con-nestjs-graphql-y-mongodb-3189</link>
      <guid>https://dev.to/sergiosuarezgil/webinar-como-crear-un-api-con-nestjs-graphql-y-mongodb-3189</guid>
      <description>&lt;p&gt;&lt;strong&gt;¿Te gustaría aprender a crear un API con NestJs, GraphQL y MongoDB?&lt;/strong&gt; Este webinar es para ti.&lt;/p&gt;

&lt;p&gt;Link grabación en Youtube: &lt;a href="https://youtu.be/vsHRlt9cFwA" rel="noopener noreferrer"&gt;https://youtu.be/vsHRlt9cFwA&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Veremos una introducción a &lt;strong&gt;Nestjs&lt;/strong&gt;, un popular framework progresivo de &lt;strong&gt;Node.js&lt;/strong&gt; para la creación de aplicaciones eficientes, confiables y escalables del lado del servidor, el cual está construido y es completamente compatible con &lt;strong&gt;TypeScript&lt;/strong&gt;, combinando elementos de la programación orientada a objetos, programación funcional y reactiva.&lt;br&gt;
Junto a Nestjs también veremos &lt;strong&gt;GraphQL&lt;/strong&gt;, una alternativa a las API REST, que permite que los desarrolladores creen consultas para extraer datos de varias fuentes en una sola llamada a la API.&lt;/p&gt;

&lt;p&gt;Además usaremos &lt;strong&gt;MongoDB&lt;/strong&gt; que es un sistema de base de datos NoSQL orientado a documentos de código abierto. También usaremos junto a el, el ORM &lt;strong&gt;Mongoose&lt;/strong&gt;, que es una librería que nos permite crear consultas y con otras características como validaciones, construcción de queries, middlewares, conversión de tipos y muchas mas cosas.&lt;/p&gt;

&lt;p&gt;Crearemos una API sencilla para saber como usar el cli de NestJs, conoceremos como funcionan los modulos, servicios, resolvers, crearemos los modelos de datos de MongoDB y GraphQL de manera conjunta, crearemos relaciones entre 2 colecciones de Mongo distintas y veremos cómo usar la aplicación Altair GraphQL Client para probar nuestro API cómodamente.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>NestJS 8 ¿Qué hay de nuevo?</title>
      <dc:creator>Sergio Suárez</dc:creator>
      <pubDate>Sun, 19 Sep 2021 11:21:23 +0000</pubDate>
      <link>https://dev.to/sergiosuarezgil/nestjs-8-whats-new-nce</link>
      <guid>https://dev.to/sergiosuarezgil/nestjs-8-whats-new-nce</guid>
      <description>&lt;p&gt;Hace muy poco se ha anunciado el lanzamiento oficial de NestJS 8. &lt;/p&gt;

&lt;p&gt;Este es un lanzamiento importante que abarca mejoras en toda toda la plataforma, incluido el framework, numerosas mejoras en los paquetes &lt;strong&gt;@nestjs/graphql&lt;/strong&gt; y &lt;strong&gt;@nestjs/config&lt;/strong&gt;, &lt;strong&gt;CLI&lt;/strong&gt; y se ha actualizado toda la &lt;strong&gt;documentación&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Esta versión trae muchas características geniales y mejoras tan esperadas. Hay demasiados para enumerar aquí, pero echemos un vistazo de alto nivel a algunos de los mejores.&lt;/p&gt;

&lt;p&gt;Si quieres ver la lista completa, click aquí:  &lt;a href="https://github.com/nestjs/nest/releases" rel="noopener noreferrer"&gt;https://github.com/nestjs/nest/releases&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API versioning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tradicionalmente, en las aplicaciones Node.js (y NestJS), el control de versiones de API nunca ha tenido una "forma correcta" de realizarse, ya que hay muchas formas de lograrlo.&lt;/p&gt;

&lt;p&gt;En v8, podrás tener diferentes versiones de tus controladores o rutas individuales ejecutándose dentro de la misma aplicación. También se admiten 3 tipos diferentes de control de versiones: control de versiones de URI, control de versiones de encabezado y control de versiones de tipo de medio.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Controller&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cats&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 👈&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CatsController&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="nf"&gt;findAll&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;This action returns all cats for version 1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Lazy-loading modules&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Por defecto, los módulos se cargan activamente, lo que significa que tan pronto como se carga la aplicación, al igual que todos los módulos, sean o no necesarios de inmediato. Si bien esto está bien para la mayoría de las aplicaciones, puede convertirse en un cuello de botella para las aplicaciones/workers que se ejecutan en el entorno sin servidor, donde la latencia de inicio es crucial.&lt;/p&gt;

&lt;p&gt;La carga "lazy loading" puede ayudar a disminuir el tiempo de arranque al cargar solo los módulos requeridos por la invocación de la función sin servidor específica. Además, también puede cargar otros módulos de forma asíncrona una vez que la función sin servidor esté "caliente" para acelerar aún más el tiempo de arranque para llamadas posteriores (conocido como: deferred modules registration).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Template literal types and ConfigService&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Con los tipos de literales de plantilla (template literals) ahora disponibles en TypeScript v4.2, podemos implementar una nueva función que nos permite inferir el tipo de propiedad de un objeto de configuración personalizado anidado, incluso cuando se usa la notación de puntos, como se muestra aquí:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;private&lt;/span&gt; &lt;span class="nx"&gt;configService&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ConfigService&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;database&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dbHost&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;configService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;database.host&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;infer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="c1"&gt;// typeof dbHost === "string"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Upgraded dependencies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nest v8 finalmente ofrece soporte para Socket.io 4.0 y NATS v2 que no eran compatibles con v7. Además, Nest v8 utilizará la última versión de RxJS (v7).&lt;/p&gt;

&lt;p&gt;Más y mejor en el post oficial de Nest:  &lt;a href="https://trilon.io/blog/announcing-nestjs-8-whats-new" rel="noopener noreferrer"&gt;https://trilon.io/blog/announcing-nestjs-8-whats-new&lt;/a&gt; &lt;/p&gt;

</description>
      <category>typescript</category>
      <category>javascript</category>
      <category>node</category>
      <category>nestjs</category>
    </item>
  </channel>
</rss>
