<?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: Marius Espejo</title>
    <description>The latest articles on DEV Community by Marius Espejo (@marius).</description>
    <link>https://dev.to/marius</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%2F64667%2F5a0bbc36-152b-4303-b880-563f7b63ddd1.JPG</url>
      <title>DEV Community: Marius Espejo</title>
      <link>https://dev.to/marius</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marius"/>
    <language>en</language>
    <item>
      <title>React Query: Fetch, cache, and update server data using queries and mutations!</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Mon, 03 May 2021 01:29:22 +0000</pubDate>
      <link>https://dev.to/marius/react-query-fetch-cache-and-update-server-data-using-queries-and-mutations-3doj</link>
      <guid>https://dev.to/marius/react-query-fetch-cache-and-update-server-data-using-queries-and-mutations-3doj</guid>
      <description>&lt;p&gt;&lt;a href="https://youtu.be/aLQbVd-2tIo"&gt;In this video&lt;/a&gt; we discuss introducing React Query to a ReactJS application. React Query provides a hooks API which allows you to fetch, cache, and update data. At first glance it seems like just a simple library, however you'll find out that it is packed with features which pretty much handle most of the server state management concerns that you might have in any client application. This includes things like automatically de-duping requests, background refreshing, caching, optimistic updating, accessing data globally and several others.&lt;/p&gt;

&lt;p&gt;If you make React Query manage your server state, you'll find that the remaining client state that requires management becomes VERY small and likely will remove the need for more complex solutions like Redux. This is state management solution that you absolutely should know about if you're a React developer!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/aLQbVd-2tIo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>react</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Have you tried using JŌTAI with React yet?</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Sat, 24 Apr 2021 23:42:01 +0000</pubDate>
      <link>https://dev.to/marius/have-you-tried-using-jotai-with-react-yet-404p</link>
      <guid>https://dev.to/marius/have-you-tried-using-jotai-with-react-yet-404p</guid>
      <description>&lt;p&gt;&lt;a href="https://youtu.be/oKFj5gBeauw"&gt;In this video&lt;/a&gt; we're going to explore the &lt;a href="https://github.com/pmndrs/jotai"&gt;Jōtai&lt;/a&gt; library! &lt;/p&gt;

&lt;p&gt;In the ReactJS ecosystem you've got so many state management solutions to pick from. You've got useState, useReducer, context API, recoil, redux, zustand, and so many more! &lt;/p&gt;

&lt;p&gt;Jotai provides a very simple minimalistic API and focuses on composing "atoms" as a bottom-up model/approach to managing state in a frontend application. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Jotai is pronounced "joe-tie" and means "state" in Japanese.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'll be walking you through a basic ReactJS tutorial of Jotai as well as some notes on my own first impressions of using the library. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Have any of you used Jotai in production? What are your thoughts about it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Code with me and let me know what you think!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/oKFj5gBeauw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you're interested, I also recently made content on Zustand, &lt;em&gt;another&lt;/em&gt; approach to state management from the same authors as Jotai.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/UcHkC5sJPWw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>react</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Is Redux DEAD? Try Zustand!</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Sun, 18 Apr 2021 19:10:33 +0000</pubDate>
      <link>https://dev.to/marius/is-redux-dead-try-zustand-9g8</link>
      <guid>https://dev.to/marius/is-redux-dead-try-zustand-9g8</guid>
      <description>&lt;p&gt;With the advent of hooks a lot of ReactJS developers have moved away from Redux as the default state management of choice. &lt;/p&gt;

&lt;p&gt;However is simply using useState, useReducer, and the context API good enough? I highly recommend checking out Zustand! Dead simple and unopinionated state management!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zustand is a small, fast and scaleable bearbones state-management solution. Has a comfy api based on hooks, isn't boilerplatey or opinionated, but still just enough to be explicit and flux-like.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://youtu.be/UcHkC5sJPWw"&gt;In this video&lt;/a&gt; we're going to walk through the basics of using Zustand. We'll also discuss the pros and cons of this approach compared to reducer-based and context-based solutions like the useReducer hook and Redux.&lt;/p&gt;

&lt;p&gt;Let me know what you think of Zustand!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/UcHkC5sJPWw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>react</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>NestJS Testing Tutorial</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Sat, 10 Apr 2021 21:27:17 +0000</pubDate>
      <link>https://dev.to/marius/nestjs-testing-tutorial-3381</link>
      <guid>https://dev.to/marius/nestjs-testing-tutorial-3381</guid>
      <description>&lt;p&gt;&lt;a href="https://youtu.be/dXOfOgFFKuY"&gt;In this video&lt;/a&gt; we go over the fundamentals of writing unit, integration, and e2e tests for a NestJS API application!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/dXOfOgFFKuY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>nestjs</category>
      <category>node</category>
    </item>
    <item>
      <title>NodeJS Express Test-Driven API Development (TDD)</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Sat, 03 Apr 2021 22:07:45 +0000</pubDate>
      <link>https://dev.to/marius/nodejs-express-test-driven-api-development-tdd-358b</link>
      <guid>https://dev.to/marius/nodejs-express-test-driven-api-development-tdd-358b</guid>
      <description>&lt;p&gt;The idea behind Test-Driven Development is quite simple.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Write a test BEFORE you implement your next bit of functionality&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write the minimal implementation needed to make your test pass&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Refactor and re-structure what you've written so far as needed &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then just keep cycling through those 3 steps as you build out the rest of your project!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/M44umyYPiuo"&gt;In the following video&lt;/a&gt;, we learn about the basics of Test-Driven Development (TDD) specifically in the landscape of developing APIs. We use &lt;strong&gt;ExpressJS, Jest, and supertest&lt;/strong&gt; as our frameworks of choice here, but the fundamentals that you learn from this video can be applied in almost any scenario, regardless of what NodeJS or testing framework you are using.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/M44umyYPiuo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>node</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>AdonisJS vs NestJS | NodeJS API Frameworks</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Sun, 28 Mar 2021 16:50:14 +0000</pubDate>
      <link>https://dev.to/marius/adonisjs-vs-nestjs-nodejs-api-frameworks-142b</link>
      <guid>https://dev.to/marius/adonisjs-vs-nestjs-nodejs-api-frameworks-142b</guid>
      <description>&lt;p&gt;&lt;a href="https://youtu.be/Zfl4Wwcqfoo"&gt;In this video&lt;/a&gt; we compare AdonisJS 5 head-to-head against NestJS (with ExpressJS and TypeORM behind the scenes) and see which one comes out on top! &lt;/p&gt;

&lt;p&gt;If you've been trying to decide which of these two Typescript-based frameworks to use, this is the content for you!&lt;/p&gt;

&lt;h3&gt;
  
  
  Topics covered include:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Starting a project&lt;/li&gt;
&lt;li&gt;CRUD&lt;/li&gt;
&lt;li&gt;Routing and Controllers&lt;/li&gt;
&lt;li&gt;Exception Handling&lt;/li&gt;
&lt;li&gt;Request body, query params, url params&lt;/li&gt;
&lt;li&gt;Validation&lt;/li&gt;
&lt;li&gt;Inversion of Control and Dependency Injection&lt;/li&gt;
&lt;li&gt;Testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;... and more!&lt;/p&gt;

&lt;h2&gt;
  
  
  You can watch here:
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Zfl4Wwcqfoo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>nestjs</category>
      <category>node</category>
    </item>
    <item>
      <title>NestJS Crash Course: Everything you need to know! | NodeJS Tutorial 2021</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Sun, 21 Mar 2021 17:53:50 +0000</pubDate>
      <link>https://dev.to/marius/nestjs-crash-course-everything-you-need-to-know-nodejs-tutorial-2021-3f1a</link>
      <guid>https://dev.to/marius/nestjs-crash-course-everything-you-need-to-know-nodejs-tutorial-2021-3f1a</guid>
      <description>&lt;p&gt;&lt;a href="https://youtu.be/2n3xS89TJMI" rel="noopener noreferrer"&gt;In this video&lt;/a&gt; I walk you through a crash course of one the &lt;strong&gt;best&lt;/strong&gt; Node.js frameworks: NestJS! &lt;/p&gt;

&lt;p&gt;If you're completely new to Nest and are looking to understand the fundamentals, this is for you!&lt;/p&gt;

&lt;h3&gt;
  
  
  Topics covered include:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Starting a project&lt;/li&gt;
&lt;li&gt;CRUD&lt;/li&gt;
&lt;li&gt;Modules, controllers, services, pipes&lt;/li&gt;
&lt;li&gt;Using the CLI to generate everything&lt;/li&gt;
&lt;li&gt;Request body, query params, url params&lt;/li&gt;
&lt;li&gt;Validation&lt;/li&gt;
&lt;li&gt;3-layer architecture and dependency injection&lt;/li&gt;
&lt;li&gt;Swagger (Open API) documentation
... and more!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fuhw7tf0fjaz8q7ucuhcc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fuhw7tf0fjaz8q7ucuhcc.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  You can watch here:
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/2n3xS89TJMI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>nestjs</category>
      <category>node</category>
    </item>
    <item>
      <title>TypeORM Tutorial: Migrations, queries, and more! | NestJS</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Sun, 14 Mar 2021 03:01:52 +0000</pubDate>
      <link>https://dev.to/marius/typeorm-tutorial-migrations-queries-and-more-nestjs-1ie3</link>
      <guid>https://dev.to/marius/typeorm-tutorial-migrations-queries-and-more-nestjs-1ie3</guid>
      <description>&lt;p&gt;Quite possibly one of the best ORMs you can use with NodeJS (and even more so with NestJS) is TypeORM! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/sNosL578ECo"&gt;In this video&lt;/a&gt; I'll walk you through how to set it up, connect to your database, generate and run migrations for production use, use the Repository API, create custom queries, database relationships, and so much more! &lt;/p&gt;

&lt;p&gt;If you're looking to get started with TypeORM to create some CRUD APIs you're on the right post! 🙌&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/sNosL578ECo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>Best way to create GraphQL APIs ?? | NestJS GraphQL Tutorial</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Mon, 22 Feb 2021 01:07:39 +0000</pubDate>
      <link>https://dev.to/marius/best-way-to-create-graphql-apis-nestjs-graphql-tutorial-1p6h</link>
      <guid>https://dev.to/marius/best-way-to-create-graphql-apis-nestjs-graphql-tutorial-1p6h</guid>
      <description>&lt;p&gt;&lt;a href="https://youtu.be/geYvdbpo3cA"&gt;In this video&lt;/a&gt; I walk you through how to create a new GraphQL server and API from scratch utilizing the NestJS framework. This is, in my opinion, one of the best ways to do it!&lt;/p&gt;

&lt;p&gt;We'll also cover multiple topics including database integration with TypeORM, queries and mutations, validation, as well as some techniques to help you develop these as &lt;strong&gt;FAST&lt;/strong&gt; as possible!  &lt;/p&gt;

&lt;p&gt;Let me know what you think 🦁&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/geYvdbpo3cA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>graphql</category>
      <category>nestjs</category>
      <category>node</category>
    </item>
    <item>
      <title>Fastest Way to Create APIs!</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Sun, 14 Feb 2021 02:20:34 +0000</pubDate>
      <link>https://dev.to/marius/fastest-way-to-create-apis-39in</link>
      <guid>https://dev.to/marius/fastest-way-to-create-apis-39in</guid>
      <description>&lt;p&gt;&lt;a href="https://youtu.be/WZtHM4Ph-K8"&gt;In this video&lt;/a&gt; I walk you through one of the fastest ways to create a fully working RESTful Node.js CRUD API utilizing the Nestjs framework, TypeORM, Swagger/OpenAPI, and a few other packages! &lt;/p&gt;

&lt;p&gt;Complete with API documentation! Let me know what you think 😄&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/WZtHM4Ph-K8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>nestjs</category>
      <category>node</category>
    </item>
    <item>
      <title>Interview Practice: Buy and Sell Stock Problem</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Sun, 07 Feb 2021 05:04:12 +0000</pubDate>
      <link>https://dev.to/marius/interview-practice-buy-and-sell-stock-problem-1010</link>
      <guid>https://dev.to/marius/interview-practice-buy-and-sell-stock-problem-1010</guid>
      <description>&lt;h2&gt;
  
  
  Visual learners this is for you!
&lt;/h2&gt;

&lt;p&gt;Challenge:&lt;/p&gt;

&lt;p&gt;You are given an array of integers which represent the price of a stock on a given day. &lt;/p&gt;

&lt;p&gt;You want to MAXIMIZE your profit by choosing a single day to buy one stock and choosing a DIFFERENT day in the future to sell that stock.&lt;/p&gt;

&lt;p&gt;Return the MAXIMUM PROFIT you can achieve from this selling transaction. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In this video I'm going to show you the different approaches to tackle this problem, starting with a basic brute force approach, then switching to something a bit more optimized using some intuition that we gather from some visuals.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let me know what you think!&lt;/p&gt;

&lt;p&gt;🚀 💎 👐&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/_rKAex0Va0M"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>How To Test Dynamic Lists in React.js (TDD approach)</title>
      <dc:creator>Marius Espejo</dc:creator>
      <pubDate>Sun, 31 Jan 2021 02:18:25 +0000</pubDate>
      <link>https://dev.to/marius/how-to-test-dynamic-lists-in-react-js-tdd-approach-e9d</link>
      <guid>https://dev.to/marius/how-to-test-dynamic-lists-in-react-js-tdd-approach-e9d</guid>
      <description>&lt;p&gt;In my previous posts I covered the basics of how to unit test your React applications as well as how to take a Test-Driven Development approach:&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/marius" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F64667%2F5a0bbc36-152b-4303-b880-563f7b63ddd1.JPG" alt="marius"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/marius/react-testing-crash-course-for-beginners-2ika" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;React Testing Crash Course for Beginners&lt;/h2&gt;
      &lt;h3&gt;Marius Espejo ・ Oct 25 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#showdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/marius" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F64667%2F5a0bbc36-152b-4303-b880-563f7b63ddd1.JPG" alt="marius"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/marius/react-test-driven-development-tdd-52f1" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;React Test-Driven Development (TDD)&lt;/h2&gt;
      &lt;h3&gt;Marius Espejo ・ Jan 24 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#showdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;In this next video I show you how to test lists with dynamic content and specific ordering! &lt;/p&gt;

&lt;p&gt;We'll again take a &lt;strong&gt;test driven development (TDD)&lt;/strong&gt; approach to first focus on writing the tests, then the implementation. &lt;/p&gt;

&lt;p&gt;I also cover strategies to write the code for &lt;strong&gt;accessibility&lt;/strong&gt; as well as various techniques to make it all even better!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/M9S54fcBF3g"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Let me know in the comments if you have feedback!&lt;/p&gt;

</description>
      <category>react</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
