<?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: Adrian Zinko</title>
    <description>The latest articles on DEV Community by Adrian Zinko (@adrianghub).</description>
    <link>https://dev.to/adrianghub</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%2F193319%2F09117c60-42f0-4a32-836f-8d7300d87a9e.png</url>
      <title>DEV Community: Adrian Zinko</title>
      <link>https://dev.to/adrianghub</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adrianghub"/>
    <language>en</language>
    <item>
      <title>Can we cut the trees from the Virtual DOM forest?</title>
      <dc:creator>Adrian Zinko</dc:creator>
      <pubDate>Tue, 11 Oct 2022 07:12:47 +0000</pubDate>
      <link>https://dev.to/adrianghub/can-we-cut-the-trees-from-the-virtual-dom-forest-18hi</link>
      <guid>https://dev.to/adrianghub/can-we-cut-the-trees-from-the-virtual-dom-forest-18hi</guid>
      <description>&lt;p&gt;Virtual DOM in React make us able to define the view declaratively. We write what the view is and what is it’s content. &lt;/p&gt;

&lt;p&gt;There is no need to instruct interpreter where it should update particular html tag or what should be added/deleted to the specific node. Our job ends up on view declaration, the engine is responsible for the underlying mechanism of DOM manipulation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JTUwxf0w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/187ds6dr34zwpv4svvc0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JTUwxf0w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/187ds6dr34zwpv4svvc0.jpg" alt="Imperative vs declarative code" width="880" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The issue is, in order to declare view in React and then run render phase (in which we check what has changed etc.) the engine needs to build entire Virtual DOM. It runs diffing algorithm to compare the previous tree with the new one. This process is called reconciliation. The old Virtual DOM persists just to be compared with the new one after each render, which might run on every state change. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pOia5GXO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v2p25v2krgwkhac6n0pc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pOia5GXO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v2p25v2krgwkhac6n0pc.jpg" alt="Virtual DOM visualization" width="880" height="583"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this way Virtual DOM stores the canonical representation of the DOM in memory. This of course is fast. Exceptionally faster than solution designed by jQuery or AngularJS. That is the obvious reason why React dominated these technologies, not to mention the strong community around React. Right, it’s fast but it also has some drawbacks. The creation of the Virtual DOM trees happens in runtime. Created objects obviously consume additional memory. It might happen with every state change. On every atomic change. The engine needs to do the same job again and again. &lt;/p&gt;

&lt;p&gt;So the question may come to your mind - Can we eliminate this repeated process? It turns out that the answer is (maybe not surprisingly) yes. The well-known Virtual DOM it’s not the goal by itself. If only there was a better idea to improve performance then Virtual DOM is no longer needed. Apparently, there is a better approach to achieve the same and consume less. It’s called Incremental DOM. We can find it’s implementation in Angular engine (from the v9) - Ivy. Another example is Svelte which uses it under the hood of its compiler. In basic terms, this approach gets rid of artificial DOM objects (which is the foundation of Virtual DOM). Rather tools that implement Incremental DOM are compiled based on the context of the particular view. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W8-gz5u3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jd00ot7sn3eonsfvar4j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W8-gz5u3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jd00ot7sn3eonsfvar4j.jpg" alt="Incremental DOM visualization" width="880" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compiler analyses what is the template of the view and how the app changes its state. Based on that data it indirectly makes updates to the view. The mechanism tracks which variable impacts re-rendering of which HTML tag. Instead of creating an entirely new object which represents the current state of DOM listening on each user event or state change that propagates DOM manipulation in runtime the compiler generates a sequence of instructions (creating a div, adding attributes, deleting particular node) and adds it to the final bundle. Incremental DOM is thus &lt;strong&gt;tree shakable&lt;/strong&gt; - we know in advance what will be needed in runtime This code is mounted in a place where the change of the state happens. In the process, no additional memory is consumed which &lt;strong&gt;has implications for memory-constrained devices&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Now you may ask - &lt;strong&gt;So which approach would be the best for my app?&lt;/strong&gt; - The answer is what you may expect from these kinds of questions - It depends ;) Ultimately it depends on which device your dear users uses your app (memory constraints are largely impacted by the hardware of the device) and on which browser (rendering speed is largely impacted by the browser’s rendering engine). &lt;/p&gt;

&lt;p&gt;As always use the right weapon for the right enemy. Don’t assume that one or the other is the best in any case.&lt;/p&gt;

</description>
      <category>performance</category>
      <category>react</category>
      <category>svelte</category>
      <category>angular</category>
    </item>
    <item>
      <title>Data management strategies for microservices - 100 Days od CSH #4</title>
      <dc:creator>Adrian Zinko</dc:creator>
      <pubDate>Tue, 25 Jan 2022 22:58:42 +0000</pubDate>
      <link>https://dev.to/adrianghub/data-management-strategies-for-microservices-100-days-od-csh-4-3i38</link>
      <guid>https://dev.to/adrianghub/data-management-strategies-for-microservices-100-days-od-csh-4-3i38</guid>
      <description>&lt;p&gt;You might have taken same CS classes on online courses on networking. Than you want to immerse yourself in JavaScript world. After couple of unslept nights, litters of coffee and dozens of unfinished personal projects you're ready for the next challenges. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--puWYp3jz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://media0.giphy.com/media/13HgwGsXF0aiGY/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--puWYp3jz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://media0.giphy.com/media/13HgwGsXF0aiGY/giphy.gif" alt="wadwaawadaw" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The world of application architecture
&lt;/h2&gt;

&lt;p&gt;At this point you see that JavaScript have opened not only frontend development path for you (with all the React,Vue,Angular and you name it possibilities) but also complete fullstack development where you can structure your entire backend API design, routing and db connections on Node servers. You can eventually create start up idea app and see that it needs to scale pretty damn' efficiently. This brings me back to the topic I discussed yesterday - intro into application architecture.&lt;/p&gt;

&lt;p&gt;If you decided that microservices are the way you go with your app you may quickly encounter big challenge - data management between each of them. The idea behind this architectural approach is that we want to create independent database per service. &lt;strong&gt;How come?&lt;/strong&gt; - you might immediately ask. So, basically we want each service to run independently of other services. The argument in this case is that our database schema might change unexpectedly or just from the optimization point of view some services might function more efficiently with different types of DB's (sql vs nosql).&lt;/p&gt;

&lt;p&gt;You want to keep this independence and for that you have to think about the strategy that would come in handy for your services on how to manage data access in different app workflow scenarios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Microservices data management strategies
&lt;/h2&gt;

&lt;p&gt;There are two categories of these strategies: sync and async communication.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2btns6Kg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m9o3w91h10iyh5kxjvf9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2btns6Kg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m9o3w91h10iyh5kxjvf9.png" alt="Example of sync communication" width="880" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In sync approach there is just one request call made to end service that communicates with all the concurrent services it needs to gather requested data from. This service make direct requests to these services and when it gathers all the data needed it eventually responds to the initial request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros of this approach:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;conceptually easy to understand&lt;/li&gt;
&lt;li&gt;there is no need for service D to have another data storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons of this approach:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it introduces a dependency between services&lt;/li&gt;
&lt;li&gt;if any service request fails, the overall request fails&lt;/li&gt;
&lt;li&gt;the entire request is only as fast as the slowest request&lt;/li&gt;
&lt;li&gt;upcoming requests can easily grow to the infinite amount&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Second strategy to the rescue! In async approach services communicate with each other using events.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SdIoLXlw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ychcaeqfo373iv89pr26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SdIoLXlw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ychcaeqfo373iv89pr26.png" alt="Example of async communication" width="880" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again there is a single request call made but in this case we emit an event storing relevant information about requested data, which flows to the event bus (more on that in upcoming articles). The event bus than takes that event and sends it to any interested services. The relevant information is stored on dedicated database from which data can but easily retrieved for desired request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros of this approach:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;service D does not have any dependencies on other services&lt;/li&gt;
&lt;li&gt;data access will be extremely fast&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons of this approach:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pretty complex approach&lt;/li&gt;
&lt;li&gt;there is data duplication and another db needed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the upcoming articles I'll be showing code implementation of this async data management strategy approach.&lt;/p&gt;

&lt;p&gt;⏬ &lt;strong&gt;DAILY CHECK OUT&lt;/strong&gt; ⏬&lt;br&gt;
According to the work I've done today:&lt;/p&gt;

&lt;p&gt;I've practice some Ankies (general stuff about js fullstack),&lt;br&gt;
I've attended &lt;strong&gt;holacracy tactical meeting as a secretary&lt;/strong&gt;,&lt;br&gt;
I've created &lt;strong&gt;1 article&lt;/strong&gt; on dev.to,&lt;br&gt;
I've spent &lt;strong&gt;6 full 25/5 pomodoro interval sessions&lt;/strong&gt; following Stephen Grider course on Udemy &lt;/p&gt;

&lt;p&gt;Tomorrow I'm going to:&lt;/p&gt;

&lt;p&gt;Spend at least 1 full hour our focusing on my project&lt;br&gt;
Spend at least 25 mins preparing flashcards on holacracy topic&lt;br&gt;
Spend at least 25 mins preparing flashcards on fullstack topic&lt;br&gt;
Study at least 20 Anki flashcards&lt;br&gt;
Spend at least 1 hour on Stephen Grider course on Udemy&lt;br&gt;
Read 1 full article on Medium.com&lt;br&gt;
Read book for at least 30 mins - Cut Off the Tension (polish translation: &lt;code&gt;Odetnij napięcie&lt;/code&gt;) written by Rebekkah LaDyne&lt;/p&gt;

&lt;p&gt;Have a wonderful day! 🔥 See you in the next one 😉&lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>node</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Monolith vs Microservices Architecture - 100 Days of CSH #3</title>
      <dc:creator>Adrian Zinko</dc:creator>
      <pubDate>Mon, 24 Jan 2022 20:55:13 +0000</pubDate>
      <link>https://dev.to/adrianghub/monolith-vs-microservices-architecture-100-days-of-csh-3-k2k</link>
      <guid>https://dev.to/adrianghub/monolith-vs-microservices-architecture-100-days-of-csh-3-k2k</guid>
      <description>&lt;p&gt;Hello on Monday 😉! In today's quick session I want to share some knowledge from the course I'm currently attending on daily basis. &lt;br&gt;
As I said before I'm working as a &lt;strong&gt;JavaScript Developer&lt;/strong&gt; and there is right now &lt;strong&gt;a big interest from my side on the architecture part of any application.&lt;/strong&gt; It's a time for me I really want to dive deep into it and this course might helps me achieving that.&lt;br&gt;
The first couple of lectures are concentrated basically on the theory behind microservices.&lt;/p&gt;

&lt;p&gt;The first question is... &lt;/p&gt;

&lt;h2&gt;
  
  
  What is a microservice?
&lt;/h2&gt;

&lt;p&gt;To better understand the answer let's compare this architectural approach with commonly known monolith pattern.&lt;/p&gt;

&lt;p&gt;Side note: Most of the outlined resources (including diagrams) come from &lt;em&gt;&lt;a href="https://www.udemy.com/course/microservices-with-node-js-and-react"&gt;Stephen Grider's course Microservices with Node.js and React&lt;/a&gt;&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C4nSci6z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d6csk8iz6hhj0colk3sd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C4nSci6z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d6csk8iz6hhj0colk3sd.png" alt="Monolith approach diagram" width="880" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Application built as &lt;strong&gt;Monolith&lt;/strong&gt; includes &lt;strong&gt;all of the routing, middlewares, business logic and database access to implement all upcoming features&lt;/strong&gt;.&lt;br&gt;
Everything is tightly coupled, depended on each other. If any part of the app fails, the whole app is broken.&lt;/p&gt;

&lt;p&gt;On the other building &lt;strong&gt;microservices infrastructure gives you the power of independence. App built that way is scalable and reliable&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iEYg7mO4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bp5osdrhcmx7ocrm8ef8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iEYg7mO4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bp5osdrhcmx7ocrm8ef8.png" alt="Microservices approach" width="880" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In Monolith application there may be a huge database that stores the whole app data.&lt;br&gt;
When it comes to microservices, each service keeps its own data storage and there is no way to access that data from the other service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xDaQtXSD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yakvejxdjarv1j5n41ec.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xDaQtXSD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yakvejxdjarv1j5n41ec.png" alt="Databases in microservices" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This approach is known as &lt;strong&gt;Database Per Service&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The challenge that occurs in microservices app architecture is data management between services, basically the way in which we store data inside of a service and how we communicate that data between different services.&lt;/p&gt;

&lt;p&gt;This problem is addressed and covered in great detail in the course I'm currently following. I'll be touching more on this in the next articles.&lt;/p&gt;

&lt;p&gt;According to the work I've done today:&lt;/p&gt;

&lt;p&gt;I've practice some Ankies (general stuff about js fullstack),&lt;br&gt;
I've added user auth session logic to my personal project,&lt;br&gt;
I've created 1 article on dev.to&lt;br&gt;
I've spent 8 full 25/5 pomodoro interval sessions following Stephen Grider course on Udemy &lt;/p&gt;

&lt;p&gt;Tomorrow I'm going to:&lt;/p&gt;

&lt;p&gt;Spend at least 1 full hour our focusing on my project&lt;br&gt;
Spend at least 25 mins preparing flashcards on holacracy topic&lt;br&gt;
Spend at least 25 mins preparing flashcards on fullstack topic&lt;br&gt;
Study at least 20 Anki flashcards&lt;br&gt;
Spend at least 1 hour on Stephen Grider course on Udemy&lt;br&gt;
Read 1 full article on Medium.com&lt;br&gt;
Read book for at least 30 mins - Cut Off the Tension (polish translation: &lt;code&gt;Odetnij napięcie&lt;/code&gt;) written by Rebekkah LaDyne (from page 50)&lt;/p&gt;

&lt;p&gt;See you in the next one! 😉&lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>node</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Welcome to decentralized management - 100 Days of CSH #2</title>
      <dc:creator>Adrian Zinko</dc:creator>
      <pubDate>Fri, 21 Jan 2022 21:06:51 +0000</pubDate>
      <link>https://dev.to/adrianghub/welcome-to-decentralized-management-holacracy-4nb1</link>
      <guid>https://dev.to/adrianghub/welcome-to-decentralized-management-holacracy-4nb1</guid>
      <description>&lt;p&gt;In today's article I'll explain a bit more about the work management which company I currently work for follows.&lt;/p&gt;

&lt;p&gt;In basic term &lt;strong&gt;Holacracy&lt;/strong&gt; is a system for managing a company where employees have the flexibility to take on various tasks and move between teams freely. The organizational structure of a holacracy is rather flat, with there being little hierarchy. Thus I named it decentralized in the title. There are about 200 people working in the company I work for and this system is working well so far (it's been actually more than 3 years since the change).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9yAVSHi3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/psz3e668z65rmgmvp0hm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9yAVSHi3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/psz3e668z65rmgmvp0hm.png" alt="Holacracy organization structure" width="880" height="670"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike traditional management, power is not given to people or positions, but to roles and circles.&lt;br&gt;
There are four roles that make up the basic structure. They are: Lead Link, Rep Link, Facilitator and Secretary. I'll describe each of them throughout the next articles.&lt;/p&gt;

&lt;p&gt;⏬ Daily progress check update ⏬ &lt;/p&gt;

&lt;p&gt;According to the work I've done on the first day:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I've practiced some Ankies (general stuff about js fullstack),&lt;/li&gt;
&lt;li&gt;I've add some Ankies (general stuff about holacracy),&lt;/li&gt;
&lt;li&gt;I've spent some time researching sources I can share with my fiance who apparently wants to start learning more about programming&lt;/li&gt;
&lt;li&gt;I've planned to introduce her to the 'Hello, World' by designing simple web game, we'll try to make this as pair-programming session (more on that in the next articles)&lt;/li&gt;
&lt;li&gt;I've created 1 article on dev.to&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tomorrow I'm going to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spend at least &lt;strong&gt;1 full hour&lt;/strong&gt; our focusing on my project&lt;/li&gt;
&lt;li&gt;Spend at least &lt;strong&gt;25 mins&lt;/strong&gt; preparing flashcards on holacracy topic&lt;/li&gt;
&lt;li&gt;Spend at least &lt;strong&gt;25 mins&lt;/strong&gt; preparing flashcards on fullstack topic&lt;/li&gt;
&lt;li&gt;Study at least &lt;strong&gt;20 Anki flashcards&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Spend at least &lt;strong&gt;1 hour&lt;/strong&gt; on &lt;a href="https://www.udemy.com/course/microservices-with-node-js-and-react/"&gt;Stephen Grider course on Udemy&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Read 1 full article on Medium.com&lt;/li&gt;
&lt;li&gt;Read book for at least &lt;strong&gt;30 mins&lt;/strong&gt; - &lt;a href="https://www.amazon.com/Confidence-Gap-Guide-Overcoming-Self-Doubt/dp/1590309235"&gt;the confidence gap&lt;/a&gt; (from page 130) -  yep, didn't happen yesterday 😉 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Are you working in a company with the same (or similar) structure, or it's totally different in your case?&lt;br&gt;
Are you happy with it or is there anything that you'd likely change if it depended on you?&lt;/p&gt;

&lt;p&gt;See you tomorrow! Happy weekend! 🌴&lt;/p&gt;

</description>
      <category>management</category>
      <category>productivity</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>The only 3 tools you need to accomplish anything - 100 Days of CSH #1</title>
      <dc:creator>Adrian Zinko</dc:creator>
      <pubDate>Thu, 20 Jan 2022 08:48:37 +0000</pubDate>
      <link>https://dev.to/adrianghub/100-days-of-coding-scrum-holacracy-1-m5l</link>
      <guid>https://dev.to/adrianghub/100-days-of-coding-scrum-holacracy-1-m5l</guid>
      <description>&lt;p&gt;In this post I'm going to share some of the tools I use to help me achieve sustain outcome and eventually get towards any ambitious goal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;
I share three tools I'll use daily throughout this challenge -  &lt;a href="https://apps.ankiweb.net/"&gt;Anki&lt;/a&gt;, &lt;a href="https://www.notion.so/desktop"&gt;Notion&lt;/a&gt; and &lt;a href="https://apps.apple.com/us/app/be-focused-focus-timer/"&gt;Pomodoro&lt;/a&gt;.&lt;br&gt;
At the bottom section I summarize what I've done this day regarding the post title.&lt;/p&gt;

&lt;p&gt;Without any further ado I'd like to share a link to Github :octocat: repository, the place from where I get ideas for creating flashcards - &lt;a href="https://github.com/sudheerj/javascript-interview-questions#what-is-promise-chaining"&gt;JavaScript Interview Questions &amp;amp; Answers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IBuoD-76--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sacyt9kmhd4wgw3p4wsk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IBuoD-76--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sacyt9kmhd4wgw3p4wsk.png" alt="Anki decks" width="880" height="787"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use &lt;strong&gt;Anki&lt;/strong&gt; &lt;a href="https://apps.ankiweb.net/"&gt;https://apps.ankiweb.net/&lt;/a&gt; as a tool while learning actually anything (in theory) from another language, guitar chords, geography or... programming 😉 There is a broad use of this tool among law or medical students.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Anki&lt;/strong&gt; uses various learning techniques to help memorize terms for longer. It's backed by science (&lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4673073/"&gt;spaced repetition, active recall testing&lt;/a&gt;). You can learn more about impact it makes on learning process for CS students from this &lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4673073/"&gt;article&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;So, there is this one tool and one thing it help me with - effective memorizing. The next one I'd to mention is a tool for planning strategies - &lt;strong&gt;Notion&lt;/strong&gt;. Following this challenge I'll use it to structure my day to day work. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Pn4ejHmU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yxq04oj5wgyxjqpx85tz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pn4ejHmU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yxq04oj5wgyxjqpx85tz.png" alt="Notion Kanban dashboard" width="880" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The screenshot above shows kanban board I've created to track my progress on current personal project. Kanban helps me a lot (even if I'm doing house chores sometimes I use similar boards to optimize my time).&lt;br&gt;
I personally use Notion also to add some notes, make bullet lists, or even collect the reviews of books/podcasts I've completed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n_JcrOJi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9p2gz83vuxq79uyogbs0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n_JcrOJi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9p2gz83vuxq79uyogbs0.png" alt="Notion notes" width="880" height="569"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The last tool on my today's list is an app from App Store &lt;strong&gt;Be Focused&lt;/strong&gt;. It's basically a time tracker which uses broadly known technique - Pomodoro.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZIlfH0vU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iyl4yiweloy7zmgrekgt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZIlfH0vU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iyl4yiweloy7zmgrekgt.png" alt="Be Focused App" width="494" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're not familiar Pomodoro uses structured time intervals (default is 25 minutes of work followed by 5 minutes of break, then after 4 full intervals there is a long break period 15/20 minutes and the whole cycle starts all over again. You can ofc customize this interval periods to your needs, try out what suits best for you. The most important part is - it works for me. Impact it can make is successively measure by scientists. Learn more on the &lt;a href="https://francescocirillo.com/pages/pomodoro-technique"&gt;official website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I try to minimize the tool chain to keep me get going with the work I have, so these three tools I've mentioned suits me the most. From time to time I jump to something new for a little while as a refresher but that's my foundation.&lt;/p&gt;

&lt;p&gt;According to the work I've done on the first day:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I've practice some Ankies (general stuff about js fullstack),&lt;/li&gt;
&lt;li&gt;I've built crud operations for notes on the backend for my personal app,&lt;/li&gt;
&lt;li&gt;I've created 2 articles on dev.to&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today I'm going to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spend at least &lt;strong&gt;1 full hour&lt;/strong&gt; our focusing on my project&lt;/li&gt;
&lt;li&gt;Spend at least &lt;strong&gt;25 mins&lt;/strong&gt; preparing flashcards on holacracy topic&lt;/li&gt;
&lt;li&gt;Spend at least &lt;strong&gt;25 mins&lt;/strong&gt; preparing flashcards on fullstack topic&lt;/li&gt;
&lt;li&gt;Study at least &lt;strong&gt;20 Anki flashcards&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Spend at least &lt;strong&gt;1 hour&lt;/strong&gt; on &lt;a href="https://www.udemy.com/course/microservices-with-node-js-and-react/"&gt;Stephen Grider course on Udemy&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Read 1 full article on Medium.com&lt;/li&gt;
&lt;li&gt;Read book for at least &lt;strong&gt;30 mins&lt;/strong&gt; - &lt;a href="https://www.amazon.com/Confidence-Gap-Guide-Overcoming-Self-Doubt/dp/1590309235"&gt;the confidence gap&lt;/a&gt; (from page 130)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See you tomorrow! 😉&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>100 Days of Coding &amp; Scrum &amp; Holacracy #0</title>
      <dc:creator>Adrian Zinko</dc:creator>
      <pubDate>Wed, 19 Jan 2022 13:22:32 +0000</pubDate>
      <link>https://dev.to/adrianghub/100-days-of-coding-scrum-holacracy-0-1djf</link>
      <guid>https://dev.to/adrianghub/100-days-of-coding-scrum-holacracy-0-1djf</guid>
      <description>&lt;p&gt;This is the very beginning of my 100 days coding (and more 😅) challenge. In this post I'd like to get the overview of whole idea, who I am, where I came from and why this challenge may can help you (and me) going forward. Let's jump right into it! 🔥&lt;/p&gt;

&lt;p&gt;So, at the beginning of this month I've joined Software House company, which is located in Poland - &lt;strong&gt;Boldare&lt;/strong&gt; as a &lt;strong&gt;Junior JavaScript Dev (React,Node)&lt;/strong&gt;. Previously I worked for a couple of month as a Frontend Developer, my whole programming career begun about 2 years ago.&lt;/p&gt;

&lt;p&gt;You can learn more about Boldare at the &lt;a href="https://www.boldare.com/"&gt;official website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The most curious thing for me is their work management system  which have its roots in &lt;strong&gt;holacracy&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;As a newbie in this area I'd like to explore as much as I can in the following months so I'll post daily some more insightful explanation regarding this topic.&lt;/p&gt;

&lt;p&gt;Not only that but also I'd like to structure and consolidate my JavaScript knowledge, which special focus on backend workflow, deployment, CI/CD and more.. &lt;/p&gt;

&lt;p&gt;Throughout the next 100 days I'll follow Udemy course created by Stephen Grider - &lt;a href="https://www.udemy.com/course/microservices-with-node-js-and-react/"&gt;Microservices with Node and React&lt;/a&gt;. Also, I have some &lt;strong&gt;follow up personal project&lt;/strong&gt; which is &lt;strong&gt;just simple notes app&lt;/strong&gt; with login auth that I'd like to work on in a meantime.&lt;/p&gt;

&lt;p&gt;The last thing I'd like to at least touch daily is Scrum. Currently I don't have the opportunity to work in any team as I'm just getting into company, many things are new to me, so I need to give me some time to grasp everything.&lt;/p&gt;

&lt;p&gt;To learn &amp;amp; practice theory I've started using &lt;a href="https://apps.ankiweb.net/"&gt;Anki flashcards&lt;/a&gt;. So far it's the most efficient tool for me that follows spaced repetition learning technique.&lt;/p&gt;

&lt;p&gt;So, will see where I can get from this point in the next 100 days. I hope anyone interesting in areas I'd like to cover may get something valuable from this series. See you tomorrow 😉&lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Practical Approach To Testing React App With Jest - Part #1</title>
      <dc:creator>Adrian Zinko</dc:creator>
      <pubDate>Sat, 15 Aug 2020 11:43:55 +0000</pubDate>
      <link>https://dev.to/adrianghub/practical-approach-to-testing-react-app-with-jest-part-1-3den</link>
      <guid>https://dev.to/adrianghub/practical-approach-to-testing-react-app-with-jest-part-1-3den</guid>
      <description>&lt;p&gt;In this article I'd like to introduce you to a React Testing Tool - &lt;a href="https://jestjs.io/"&gt;Jest&lt;/a&gt;. As it's well covered on &lt;a href="https://en.wikipedia.org/wiki/Jest_(JavaScript_framework)"&gt;Wiki&lt;/a&gt; - Jest is a JavaScript testing framework maintained by Facebook, Inc. with a focus on simplicity. Basically it is designed to test React components. The library that comes very well with Jest which is &lt;a href="https://enzymejs.github.io/enzyme/"&gt;Enzyme&lt;/a&gt; - all docs available on Github repo if you want to learn more about it. Enzyme is a JavaScript Testing tool created by Airbnb for React, which helps to do assertions, manipulations, and traversals in React Components’ output.As you follow we'll cover a bunch of Jest testing paths. In the first part you'll become familiar with theory that stays behind testing as well as creating and configuring files structure for testing basic React components cases. In the future parts we'll cover best practices, snapshot testing and dive deeper into Enzyme.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This post can be extremely helpful for you especially if you're &lt;em&gt;testing newbie&lt;/em&gt; 'cause we will start just from scratch. By the end, you’ll be up and running, testing React applications using Jest and Enzyme. You should be familiar with &lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt; in order to follow this tutorial.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Let's just jump right into it! Testing to the rescue 🦸‍♂️&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/D49L3FpxqtQ3u/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/D49L3FpxqtQ3u/giphy.gif" alt="Superdog to the rescue." width="356" height="360"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Software Testing in general
&lt;/h1&gt;

&lt;p&gt;Testing software can be defined as an activity to check whether the actual results match the expected results and to ensure that the software system is defect free. It involves the execution of a software component or system component to evaluate one or more properties of interest. Software testing also helps to identify errors, gaps, or missing requirements in contrary to the actual requirements. It can be either done manually or using automated tools. &lt;/p&gt;

&lt;h2&gt;
  
  
  Different Types of Software Testing
&lt;/h2&gt;

&lt;p&gt;We can go over and explain some of the types of testing methods: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Unit Testing&lt;/strong&gt;&lt;br&gt;
Testing each component or module of your software project is known as unit testing. To perform this kind of testing, knowledge of programming is necessary. So only programmers do this kind of tests, not testers.&lt;/p&gt;

&lt;p&gt;You have to do a great deal of unit testing as you should test each and every unit of code in your project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Integration testing&lt;/strong&gt;&lt;br&gt;
After integrating the modules, you need to see if the combined modules work together or not. This type of testing is known as integration testing. You need to perform fewer integration tests than unit tests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. End-to-end Testing&lt;/strong&gt;&lt;br&gt;
End-to-end testing is the functional testing of the entire software system. When you test the complete software system, such testing is called end-to-end testing. You need to perform fewer end-to-end tests than integration tests.&lt;/p&gt;

&lt;h1&gt;
  
  
  Pros &amp;amp; Cons of Testing
&lt;/h1&gt;

&lt;p&gt;As it every software mechanism also testing has advantages and disadvantages. &lt;/p&gt;

&lt;h3&gt;
  
  
  Pros
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;it prevents unexpected regression,&lt;/li&gt;
&lt;li&gt;it allows the developer to focus on the current task, rather than worrying about the past,&lt;/li&gt;
&lt;li&gt;it allows modular construction of an application that would otherwise be too complex to build,&lt;/li&gt;
&lt;li&gt;it reduces the need for manual verification.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://i.giphy.com/media/d6t2X0lgb3oME/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/d6t2X0lgb3oME/giphy.gif" alt="Good and evil" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Cons
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;you need to write more code, as well as debug and maintain,&lt;/li&gt;
&lt;li&gt;non-critical test failures might cause the app to be rejected in terms of continuous integration. &lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  React Testing Tools
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Jest&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;test runner, which can run tests in parallel to maximize the performance,&lt;/li&gt;
&lt;li&gt;assertion library, where you do not need to install Chai, Should.js, etc. to do the assertions,&lt;/li&gt;
&lt;li&gt;mocking library, where you do not need to install separate libraries like proxyquire, sinon, testdouble etc,&lt;/li&gt;
&lt;li&gt;provides the facility to create coverage reports as built-in functionality.
Fewer configurations to be done when using Jest.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Enzyme&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;can only be used with React whereas Jest can be used to test any JavaScript app,&lt;/li&gt;
&lt;li&gt;needs to be paired with Jest or any other test runner in order to function while Jest can be used without Enzyme,&lt;/li&gt;
&lt;li&gt;provides additional functionality when interacting with elements while testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Before moving onto the testing part, it would be great if you have a basic understanding of “How to create a simple React application using &lt;strong&gt;Create React App&lt;/strong&gt;?” and the structure of a React App. Please refer the &lt;a href="https://reactjs.org/docs/create-a-new-react-app.html"&gt;official documentation&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Getting Started
&lt;/h1&gt;

&lt;p&gt;Step 1 — Create a React Application with create-react-app&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open up a terminal in the desired path and type the following to create a new react application&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;npx create-react-app testing-demo&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note - npx it's a package runner tool that comes with npm 5.2+&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The above command will create a React project named as &lt;strong&gt;“testing-demo”&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wGsIpoVe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wv7i9hb1ywh7kffloftu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wGsIpoVe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wv7i9hb1ywh7kffloftu.png" alt="Alt Text" width="880" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Switch to the folder created for demo testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;cd testing-demo/&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is how the folder structure should looks like&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---BBTtAxw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mp1i0qseuw5z39c74r1l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---BBTtAxw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mp1i0qseuw5z39c74r1l.png" alt="Alt Text" width="418" height="1292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 2 - Running a demo test with React Testing Tool - Jest&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Delete the App.test.js file from the src directory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open up the &lt;strong&gt;&lt;em&gt;package.json&lt;/em&gt;&lt;/strong&gt; file from the root folder and change the &lt;strong&gt;&lt;em&gt;test&lt;/em&gt;&lt;/strong&gt; property under scripts into &lt;strong&gt;&lt;em&gt;jest&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kB-laLTb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rcp5di0f9ipli4vxv0qf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kB-laLTb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rcp5di0f9ipli4vxv0qf.png" alt="Alt Text" width="880" height="815"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a new directory named as “&lt;strong&gt;test&lt;/strong&gt;” inside the root folder and create a file named demo.test.js inside the test directory. (check the folder structure)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1yY7vTls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vkv9dqna9cjqbn45jpwi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1yY7vTls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vkv9dqna9cjqbn45jpwi.png" alt="Alt Text" width="350" height="916"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now type the following code segment in demo.test.js file.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;it&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;adds correctly&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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nx"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;toEqual&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&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;ul&gt;
&lt;li&gt;Open up a terminal and run the tests by typing the following command.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;npm test&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You should see the following output in your terminal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j4czWI9I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f978n7adwdiuqgmcwntu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j4czWI9I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f978n7adwdiuqgmcwntu.png" alt="Alt Text" width="880" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How does it work?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When you execute &lt;code&gt;npm test&lt;/code&gt;, it starts to run &lt;strong&gt;Jest&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It's a good practice/advice to name the test files either with &lt;em&gt;.test&lt;/em&gt; or &lt;em&gt;.spec&lt;/em&gt; &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;filename&amp;gt;.test.js&lt;/code&gt; or &lt;code&gt;&amp;lt;filename&amp;gt;.spec.js&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In here we used demo.test.js. So the &lt;strong&gt;Jest&lt;/strong&gt; has the ability to automatically detect the tests (because of this naming pattern) and run them.&lt;/li&gt;
&lt;li&gt;This simple test checks whether when 1 and 1 are added, is it equal to 2&lt;/li&gt;
&lt;li&gt;You can see that the above test is passed, which means our expectation has met.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Now you're on a great way to start practice with testing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/26gsegmICeVHxYV0c/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/26gsegmICeVHxYV0c/giphy.gif" alt="Practicing chores examples" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;In the next lecture, I'll continue with best practices, snapshot testing, and dive deeper into Enzyme.&lt;br&gt;
I've got you covered 🔥 &lt;br&gt;
&lt;strong&gt;Maybe a little bit more interested in testing. What are your thoughts about testing? Share your opinion in the comments section. See you 🙈👋&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>react</category>
      <category>testing</category>
    </item>
    <item>
      <title>WTF - What the Flutter is actually like? And how it dominates over native apps</title>
      <dc:creator>Adrian Zinko</dc:creator>
      <pubDate>Thu, 23 Jul 2020 21:33:20 +0000</pubDate>
      <link>https://dev.to/adrianghub/wtf-what-the-flutter-is-actually-like-and-how-it-dominates-over-native-apps-b0f</link>
      <guid>https://dev.to/adrianghub/wtf-what-the-flutter-is-actually-like-and-how-it-dominates-over-native-apps-b0f</guid>
      <description>&lt;h2&gt;
  
  
  Flutter - Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://flutter.dev" rel="noopener noreferrer"&gt;Flutter&lt;/a&gt; is an app SDK for building high-performance, natively compiled UI apps for iOS &amp;amp;&amp;amp; Android from a single Dart codebase. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/s2QW0837hEUec/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/s2QW0837hEUec/giphy.gif" alt="wtf"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I highly recommend checking out the &lt;a href="https://flutter.dev/docs/resources/technical-overview" rel="noopener noreferrer"&gt;technical overview&lt;/a&gt; and &lt;a href="https://flutter.dev/docs/get-started/codelab" rel="noopener noreferrer"&gt;&lt;em&gt;Write your first Flutter app&lt;/em&gt; codelab&lt;/a&gt; to better understand the basic underlying concepts behind Flutter.&lt;/p&gt;

&lt;p&gt;If you're coming from another frontend platform check out those guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://flutter.dev/docs/get-started/flutter-for/android-devs" rel="noopener noreferrer"&gt;Flutter for Android developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://flutter.dev/docs/get-started/flutter-for/ios-devs" rel="noopener noreferrer"&gt;Flutter for iOS developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://flutter.dev/docs/get-started/flutter-for/web-devs" rel="noopener noreferrer"&gt;Flutter for web developers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To learn more about Flutter's inner workings be sure to check out &lt;a href="https://flutter.dev/docs/resources/inside-flutter" rel="noopener noreferrer"&gt;&lt;em&gt;Inside Flutter&lt;/em&gt;&lt;/a&gt; documentation page.&lt;/p&gt;

&lt;p&gt;For more general information and learning resources head to &lt;a href="https://www.youtube.com/channel/UCwXdFgeE9KYzlDdR7TG9cMw" rel="noopener noreferrer"&gt;the official Flutter YouTube channel&lt;/a&gt;. &lt;a href="https://www.youtube.com/playlist?list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG" rel="noopener noreferrer"&gt;&lt;em&gt;Widget of the week&lt;/em&gt;&lt;/a&gt; and &lt;a href="https://www.youtube.com/playlist?list=PLjxrf2q8roU3ahJVrSgAnPjzkpGmL9Czl" rel="noopener noreferrer"&gt;&lt;em&gt;The Boring Flutter Development Show (deep dive, live coding)&lt;/em&gt;&lt;/a&gt; series are especially worth keeping an eye on.&lt;/p&gt;

&lt;p&gt;Now that you can see some of the Flutter concepts better let's just jump right into it! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/iMBEgyXkFBtdCFS93i/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/iMBEgyXkFBtdCFS93i/giphy.gif" alt="Jumping boy."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Widgets
&lt;/h3&gt;

&lt;p&gt;Widgets are basic building blocks in Flutter. If you're coming from React you can think of Flutter widgets being like React components.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://flutter.dev/docs/reference/widgets" rel="noopener noreferrer"&gt;Full index of Flutter built-in widgets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://flutter.dev/docs/development/ui/widgets" rel="noopener noreferrer"&gt;Widget list grouped by category&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG" rel="noopener noreferrer"&gt;&lt;em&gt;Widget of the week&lt;/em&gt; - excellent videos about purpose and usage of Flutter widgets&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/Zxo0sziR6WDDOSd0Wy/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/Zxo0sziR6WDDOSd0Wy/giphy.gif" alt="Building blocks."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Stateless vs. stateful
&lt;/h4&gt;

&lt;p&gt;In Flutter there are two types of widgets - stateless and stateful widgets.&lt;/p&gt;

&lt;p&gt;Stateless widgets are simple and contain no internal state. They take parameters and return the widget tree from &lt;code&gt;build&lt;/code&gt; method.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;NameLabel&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;StatelessWidget&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="n"&gt;NameLabel&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="n"&gt;Key&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;key:&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;Widget&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Center&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello &lt;/span&gt;&lt;span class="si"&gt;$name&lt;/span&gt;&lt;span class="s"&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;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Differently, stateful widgets do contain internal state.&lt;/p&gt;

&lt;p&gt;They are defined by two classes - one representing widget and the other one representing the state. The reason for this is that widgets are immutable. Since &lt;code&gt;StatefulWidget&lt;/code&gt; extends &lt;code&gt;Widget&lt;/code&gt; it, therefore, must be immutable too. Splitting the declaration into two classes allows both &lt;code&gt;StatefulWidget&lt;/code&gt; to be immutable and &lt;code&gt;State&lt;/code&gt; to be mutable.\&lt;br&gt;
Moreover, widgets are instantiated using the &lt;code&gt;new MyWidget()&lt;/code&gt; syntax. If we merged both classes into one, &lt;code&gt;new MyWidget()&lt;/code&gt; would reset all the properties of the state every time its parent update.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Counter&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;StatefulWidget&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="n"&gt;Key&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;key:&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;_CounterState&lt;/span&gt; &lt;span class="n"&gt;createState&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;_CounterState&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;_CounterState&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;State&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;_counter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;_incrementCounter&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;_counter&lt;/span&gt;&lt;span class="o"&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;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;Widget&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="si"&gt;${this.widget.name}&lt;/span&gt;&lt;span class="s"&gt; have pushed the button this many times: &lt;/span&gt;&lt;span class="si"&gt;$_counter&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="n"&gt;RaisedButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="nl"&gt;onPressed:&lt;/span&gt; &lt;span class="n"&gt;_incrementCounter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Increment'&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;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;You can also see that&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the state can be modified only inside &lt;code&gt;setState&lt;/code&gt; callback&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;build&lt;/code&gt; method exists only in the state class - you can think of UI as a function of the state&lt;/li&gt;
&lt;li&gt;you can access widget parameters using &lt;code&gt;this.widget&lt;/code&gt; reference&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a complete look at widgets in Flutter follow &lt;a href="https://flutter.dev/docs/development/ui/widgets-intro" rel="noopener noreferrer"&gt;widgets intro page&lt;/a&gt; in the documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Declarative UI
&lt;/h3&gt;

&lt;p&gt;If you have never worked with a declarative UI framework like React or SwiftUI you may want to check out &lt;a href="https://flutter.dev/docs/get-started/flutter-for/declarative" rel="noopener noreferrer"&gt;&lt;em&gt;Introduction to declarative UI&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  UI layouts
&lt;/h3&gt;

&lt;p&gt;To learn about UI layouts in Flutter check out &lt;a href="https://flutter.dev/docs/development/ui/layout" rel="noopener noreferrer"&gt;&lt;em&gt;Layouts in Flutter&lt;/em&gt;&lt;/a&gt; documentation page and &lt;a href="https://flutter.dev/docs/codelabs/layout-basics" rel="noopener noreferrer"&gt;&lt;em&gt;Layout basics&lt;/em&gt;&lt;/a&gt; codelab.&lt;/p&gt;

&lt;h4&gt;
  
  
  Flexbox
&lt;/h4&gt;

&lt;p&gt;Flutter supports building layouts in Flexbox model.&lt;/p&gt;

&lt;p&gt;Widgets inside a &lt;code&gt;Flex&lt;/code&gt; widget (eg. &lt;a href="https://api.flutter.dev/flutter/widgets/Column-class.html" rel="noopener noreferrer"&gt;&lt;code&gt;Column&lt;/code&gt;&lt;/a&gt;, &lt;a href="https://api.flutter.dev/flutter/widgets/Row-class.html" rel="noopener noreferrer"&gt;&lt;code&gt;Row&lt;/code&gt;&lt;/a&gt;) can be wrapped in the &lt;code&gt;Flexible&lt;/code&gt; widget. The &lt;code&gt;Flexible&lt;/code&gt; widget has flex property. Flutter has 3 flexible widgets: &lt;a href="https://api.flutter.dev/flutter/widgets/Flexible-class.html" rel="noopener noreferrer"&gt;&lt;code&gt;Flexible&lt;/code&gt;&lt;/a&gt;, &lt;a href="https://api.flutter.dev/flutter/widgets/Expanded-class.html" rel="noopener noreferrer"&gt;&lt;code&gt;Expanded&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://api.flutter.dev/flutter/widgets/Spacer-class.html" rel="noopener noreferrer"&gt;&lt;code&gt;Spacer&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example - row of images:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;Row&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;crossAxisAlignment:&lt;/span&gt; &lt;span class="n"&gt;CrossAxisAlignment&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;center&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="n"&gt;Expanded&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'images/pic1.jpg'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;Expanded&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;flex:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'images/pic2.jpg'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;Expanded&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'images/pic3.jpg'&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;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Testing
&lt;/h2&gt;

&lt;p&gt;Automated testing falls into a few categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A unit test tests a single function, method, or class.&lt;/li&gt;
&lt;li&gt;A widget test (in other UI frameworks referred to as component test) tests a single widget.\
The goal of a widget test is to verify that the widget’s UI looks and interacts as expected.&lt;/li&gt;
&lt;li&gt;An integration test tests a complete app or a large part of an app.\
Generally, an integration test runs on a real device or an OS emulator.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more information check out &lt;a href="https://flutter.dev/docs/testing" rel="noopener noreferrer"&gt;page about testing&lt;/a&gt; in Flutter documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common patterns
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Render widget conditionally in a list
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'foo'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;isBar&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'bar'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'baz'&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;h2&gt;
  
  
  Flutter developer experience
&lt;/h2&gt;

&lt;h3&gt;
  
  
  IDE integrations
&lt;/h3&gt;

&lt;p&gt;Flutter team officially supports two coding environments for Flutter - IntelliJ/Android Studio and Visual Studio Code. Read the Flutter documentation on how to &lt;a href="https://flutter.dev/docs/development/tools/android-studio" rel="noopener noreferrer"&gt;setup IntelliJ integration&lt;/a&gt; and &lt;a href="https://flutter.dev/docs/development/tools/vs-code" rel="noopener noreferrer"&gt;Visual Studio Code integration&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Useful VSCode settings
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;"dart.previewFlutterUiGuides"&lt;/code&gt;&lt;br&gt;
Setting this value to &lt;code&gt;true&lt;/code&gt; will render guides showing you how widgets are nested:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdartcode.org%2Fimages%2Frelease_notes%2Fv3.1%2Fui_guides.png" 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%2Fdartcode.org%2Fimages%2Frelease_notes%2Fv3.1%2Fui_guides.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;"dart.debugExternalLibraries"&lt;/code&gt;, &lt;code&gt;"dart.debugSdkLibraries"&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Setting these values to &lt;code&gt;false&lt;/code&gt; will disable stepping into external libraries and SDK while debugging.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;Of course, as I mentioned Flutter is based on Dart programming language and it's better for you to at least become familiar with coding in Dart. I'll share another article specifically about some of the basics of this programming language in the future section. For know I'd like to thank you all for spending time reading this post.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What're your thoughts about Flutter? I encourage you to let me know what you're thinking wheater Flutter is new to you or you have already some experience with it. Share your opinion in the comments section below 🔥  &lt;/p&gt;

</description>
      <category>android</category>
      <category>ios</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Polish your swords ⚔📃 Quick Developer Portfolio Setup</title>
      <dc:creator>Adrian Zinko</dc:creator>
      <pubDate>Sun, 28 Jun 2020 16:48:33 +0000</pubDate>
      <link>https://dev.to/adrianghub/polish-your-swords-quick-web-portfolio-setup-k4o</link>
      <guid>https://dev.to/adrianghub/polish-your-swords-quick-web-portfolio-setup-k4o</guid>
      <description>&lt;p&gt;So, I've recently updated my portfolio website. Basically I switched to Gatsby due to its friendly environment as well as perfect compatibility with React.js and Netlify. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/u4CY9BW4umAfu/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/u4CY9BW4umAfu/giphy.gif" width="268" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Few moments for the Great Gatsby
&lt;/h1&gt;

&lt;p&gt;Gatsby is a React-based, GraphQL powered static site generator. Well, what does that even mean?  Well, it weaves together the best parts of React, webpack, react-router, GraphQL, and other front-end tools into one very enjoyable developer experience. Don’t get hung up on the moniker ‘static site generator’.  That term has been around for a while, but Gatsby is far more like a modern front-end framework than a static site generator of old.&lt;/p&gt;

&lt;p&gt;You can read more on the official &lt;a href="https://www.gatsbyjs.org/docs/quick-start/"&gt;docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In order to quickly jump in 👉 Install the Gatsby CLI&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="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;g&lt;/span&gt; &lt;span class="nx"&gt;gatsby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;cli&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a new site&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="nx"&gt;gatsby&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;your&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;website&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change directories into site folder&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="nx"&gt;cd&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;your&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;website&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From this position, you can start the development server&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="nx"&gt;gatsby&lt;/span&gt; &lt;span class="nx"&gt;develop&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now it's your time to build your unique portfolio page 🔥&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/IelxugxenjdyU/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/IelxugxenjdyU/giphy.gif" width="480" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a bonus tip, after you successfully build your website head over to &lt;a href="https://www.netlify.com/blog/2016/09/29/a-step-by-step-guide-deploying-on-netlify/"&gt;Netlify Step-by-Step Deployment Guide&lt;/a&gt; for quick &amp;amp; easy deployment.&lt;/p&gt;

&lt;p&gt;In my case, my previous personal website wasn't ykhym...well built for the lack of better word. This is how it looked before from the insides perspective. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V-ZhHTEC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qml7djpt9d1fm3neauqk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V-ZhHTEC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qml7djpt9d1fm3neauqk.png" alt="Effect without Gatsby" width="339" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, using React, I managed to divide my project structure to more flexible, readable components. Although I've also changed already some content the main goal was to prepare myself for future development, maybe adding some blog posts area as Gatsby works great as a CMS. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sZUEkB0E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qn4eiumbt0dsfkf14swk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sZUEkB0E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qn4eiumbt0dsfkf14swk.png" alt="Effect with Gatsby" width="398" height="863"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/fnpy7E5Sm1LSOvHvu8/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/fnpy7E5Sm1LSOvHvu8/giphy.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Right, I see it adds much more redundant complexity from the beginning but it's a part of my practice set, new learning skill and key for future development as I said before. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you're willing to see the changes, as well as complete website demo, feel free to check it out&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;New portfolio: &lt;br&gt;
&lt;a href="https://github.com/adrianghub/dev-portfolio"&gt;Source code&lt;/a&gt;&lt;br&gt;
&lt;a href="//adrianghub.netlify.app"&gt;Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Old portfolio: &lt;br&gt;
&lt;a href="https://github.com/adrianghub/AdrianGHub.github.io"&gt;Source code&lt;/a&gt;&lt;br&gt;
&lt;a href="//adrianghub.github.io"&gt;Demo&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;The whole idea for this post was to show you that as a software developer you should always keep in mind that the tech industry grows at a very fast pace and you have to keep eye on the latest tech related releases, practice with them, decide what to choose for your own stack and don't hesitate to flip everything upside down. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/yoJC2k4dPDRSInYfjq/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/yoJC2k4dPDRSInYfjq/giphy.gif" width="480" height="258"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Feel free to share your thoughts on this topic in the comments section. Leave some positive reaction ❤ 🦄 📖 Do you think it's always the best idea for switching to new technologies as they come and go? &lt;/p&gt;

</description>
      <category>productivity</category>
      <category>react</category>
      <category>gatsby</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Increase your productivity while washing hands with this WebDev Podcasts List 🤘🚀🤘</title>
      <dc:creator>Adrian Zinko</dc:creator>
      <pubDate>Tue, 23 Jun 2020 13:18:06 +0000</pubDate>
      <link>https://dev.to/adrianghub/increase-your-productivity-while-washing-hands-with-this-webdev-podcasts-list-4mdp</link>
      <guid>https://dev.to/adrianghub/increase-your-productivity-while-washing-hands-with-this-webdev-podcasts-list-4mdp</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6n2Vk1-l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nlcfy64kjls4xz7xxl75.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6n2Vk1-l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nlcfy64kjls4xz7xxl75.png" alt="Spotify for developers title." width="880" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Following this post, you'll find a full list of web development, software engineering podcasts (you name it, I'll have it 😉) I listen to on regular basics. Right now I'm mainly keeping eye on front end content but I'm also into AI, microcontrollers, tech startups. As a Polish person in my mind and in my blood, 🔥 I've also decided to put some Polish Podcast Influencers focused in this particular area of the topic for everyone interested. The podcasts are listed in my subjective order starting from the one I'm looking forward to the most. &lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Syntax&lt;/strong&gt;
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;by Scott Tolinski and Wes Bos&lt;em&gt;
&lt;/em&gt;&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uam255bJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/abiq1lsiiw363og8xwr5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uam255bJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/abiq1lsiiw363og8xwr5.png" alt="Syntax content title." width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Syntax can be defined as a set of rules, principles, and processes that preside over the structuring of sentences in any given language...Oh...Say Wat?! Ok, back on the topic. 😅 In my opinion, it is one of the best podcast resource out there produced by Web Bos and Scott Tolinski. You'll find there all the basics you need to surround yourself with web development news, feeds, best practices and fundamentals. &lt;/p&gt;

&lt;p&gt;Check out ▶ &lt;a href="https://open.spotify.com/show/4kYCRYJ3yK5DQbP5tbfZby?si=oLv3hUB1SJquhbGE-sWO6g"&gt;Syntax on Spotify&lt;/a&gt;&lt;br&gt;
Head over to ▶ &lt;a href="https://syntax.fm/"&gt;Syntax Website&lt;/a&gt;&lt;br&gt;
Strongly recommended episode ▶ &lt;a href="https://open.spotify.com/episode/2Rcon7qlmFLmEWIzNYGd9k"&gt;Advice For Beginners - Tech Skills, Applying for Jobs, Focus, Imposter Syndrome + More&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;React Podcast&lt;/strong&gt;
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;by Michael Chan&lt;em&gt;
&lt;/em&gt;&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V4F5C0N2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/yzaear90z5rrg356nkmt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V4F5C0N2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/yzaear90z5rrg356nkmt.png" alt="React Podcast content title." width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although the content of this podcast is mainly focused you've guessed it - on React.js library - the topics covered diving deep into software architecture and broadly described developers routine activities. &lt;/p&gt;

&lt;p&gt;Check out ▶ &lt;a href="https://open.spotify.com/show/0HfSakJOFwFEa0ujCEK1pO?si=w1O5DGIlQluQn6SrnXOh1Q"&gt;React Podcast on Spotify&lt;/a&gt;&lt;br&gt;
Head over to ▶ &lt;a href="https://reactpodcast.simplecast.com/"&gt;React Podcast Website&lt;/a&gt;&lt;br&gt;
Strongly recommended episode ▶ &lt;a href="https://open.spotify.com/episode/2cMfz0QeYW8Nk1hM8qYXJB?si=g3276zh-QsaVy-IDyKxI3g"&gt;Break In with Scott Tolinski&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;JavaScript Jabber&lt;/strong&gt;
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;by Devchat.tv&lt;em&gt;
&lt;/em&gt;&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jKgqknkV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3cnmu4i5ofg53v0kj9pt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jKgqknkV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3cnmu4i5ofg53v0kj9pt.jpg" alt="JavaScript Jabber content title." width="880" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Javascript Jabber is a weekly podcast about JavaScript, including Node.js, Front-End Technologies, Careers, Teams and more. There are always a couple of people discussing the specific area of Web Development, including interviews with experienced developers. &lt;/p&gt;

&lt;p&gt;Check out ▶ &lt;a href="https://open.spotify.com/show/6xpiit8aJmwDHk1rKdxmri?si=y0tnFzP9TTK2CIuWmZ1h2w"&gt;JavaScript Jabber on Spotify&lt;/a&gt;&lt;br&gt;
Head over to ▶ &lt;a href="https://devchat.tv/js-jabber/"&gt;JavaScript Jabber on devchat.tv&lt;/a&gt;&lt;br&gt;
Strongly recommended episode ▶ &lt;a href="https://open.spotify.com/episode/32RRkCvj1tnGKybxjJF26p?si=-7mLenDWSuSh0577CI9pOg"&gt;The Evolution of JavaScript&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Allegro Podcast&lt;/strong&gt;
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;by Allegro Tech &lt;em&gt;
&lt;/em&gt;&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fy7hWS56--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dd7cae6c8c941ni3ckvs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fy7hWS56--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dd7cae6c8c941ni3ckvs.png" alt="Allegro Tech Podcast content title." width="880" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For all of you interested in the biggest e-commerce company in Poland (one of the biggest in Europe) from the tech standpoint. Developed and managed by hundreds of people this transaction platform is consistently growing in terms of best practices providing the best quality customer service.  &lt;/p&gt;

&lt;p&gt;Check out ▶ &lt;a href="https://open.spotify.com/show/2rlbFoVg4eEVbrurrOkPHB?si=zFyOYQQiSFqRf4LJ5x3mUg"&gt;Allegro Podcast&lt;/a&gt;&lt;br&gt;
Head over to ▶ &lt;a href="https://allegro.tech/podcast/"&gt;Allegro Tech Website&lt;/a&gt;&lt;br&gt;
Strongly recommended episode ▶ &lt;a href="https://open.spotify.com/episode/7pws1eOuCtlC8ZziCWeUJC?si=Pjr62TNcQmyWnCOt4h_FJw"&gt;Infrastructure for 1000 microservices in Allegro&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Artificial Intelligence: AI Podcast&lt;/strong&gt;
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;by Lex Friedman &lt;em&gt;
&lt;/em&gt;&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ryuERGow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6thg9br6bg7slhmd5guw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ryuERGow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6thg9br6bg7slhmd5guw.png" alt="Artificial Intelligence content title." width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Artificial Intelligence podcast (AI podcast) is a series of conversations about technology, science, and the human condition hosted by Lex Fridman. Author of this podcast is open-minded and host interviews with extreme professionalism.  &lt;/p&gt;

&lt;p&gt;Check out ▶ &lt;a href="https://open.spotify.com/show/2MAi0BvDc6GTFvKFPXnkCL?si=9IX4SdrhShC6zAscbmJoTw"&gt;Artificial Intelligence(AI + Lex) on Spotify&lt;/a&gt;&lt;br&gt;
Head over to ▶ &lt;a href="https://lexfridman.com/ai/"&gt;Lex Friedman Website&lt;/a&gt;&lt;br&gt;
Strongly recommended episode ▶ &lt;a href="https://open.spotify.com/episode/1PZZu5RTAeqjc9VVzDl88w?si=w2LkOLK-SeGSI2fQsJuwVA"&gt;Elon Musk: Neuralink, AI, Autopilot, and the Pale Blue Dot&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Porozmawiajmy o IT&lt;/strong&gt;
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;by Krzysztof Kempiński &lt;em&gt;
&lt;/em&gt;&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Qevz9QFF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/57yjyjube8yn8l1kb8b0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qevz9QFF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/57yjyjube8yn8l1kb8b0.png" alt="Porozmawiajmy o IT content title." width="880" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First from the list fully hosted in polish language podcast which I highly encourage you to check out - either if you fully understand the language or you're interested in jumping into it in this topic area. The high percentage of episodes is focused on intervening experienced people from the not only Front-End but also Back-End Technologies, Machine Learning and workflows in known companies.     &lt;/p&gt;

&lt;p&gt;Head over to ▶ &lt;a href="https://porozmawiajmyoit.pl/"&gt;Porozmawiajmy o IT Website&lt;/a&gt;&lt;br&gt;
Check out ▶ &lt;a href="https://open.spotify.com/show/6xpiit8aJmwDHk1rKdxmri"&gt;Porozmawiajmy o IT on Spotify&lt;/a&gt;&lt;br&gt;
Strongly recommended episode ▶ &lt;a href="https://open.spotify.com/episode/5B25gDjcC3R5lnzqhsgu8u?si=SxvMsauyRmKNQ1Ih6KWR6w"&gt;Full stack developer&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;DevTalk&lt;/strong&gt;
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;by Maciej Aniserowicz &lt;em&gt;
&lt;/em&gt;&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H_wzYxuy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qvcq0luhb8z06sfhforj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H_wzYxuy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qvcq0luhb8z06sfhforj.png" alt="DevTalk content title." width="880" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Maciej Aniserwicz is a well-known figure in technology architecture, web development area. The host of the 13-weeks practical front end programme in which I've had a pleasure to participate. He also has a youtube channel - Maciej Aniserowicz - where you can find helpful content about day to day life as a software developer, entrepreneur, husband and father.    &lt;/p&gt;

&lt;p&gt;Head over to ▶ &lt;a href="https://devtalk.pl/"&gt;DevTalk Website&lt;/a&gt;&lt;br&gt;
Check out ▶ &lt;a href="https://open.spotify.com/show/6xpiit8aJmwDHk1rKdxmri"&gt;DevTalk on Spotify&lt;/a&gt;&lt;br&gt;
Strongly recommended episode ▶ &lt;a href="https://open.spotify.com/episode/5n3RcgVh9EOkS3RrCw12vk?si=BOX5Q8JKR_Ws3-rpEkKOEw"&gt;TypeScript with Tomasz Ducin&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;DVLPR-WNBE - Developer Wannabe&lt;/strong&gt;
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;by Jędrzej Paulus &lt;em&gt;
&lt;/em&gt;&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2dCNL1-O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ilyn0iqsyl4q3ejz99nv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2dCNL1-O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ilyn0iqsyl4q3ejz99nv.png" alt="Developer Wannabe content title." width="880" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jędrzej is a podcast producer whose main goal is to learn from experienced developers by interviews with them and create a strong community of people who wannabe software developers.     &lt;/p&gt;

&lt;p&gt;Check out ▶ &lt;a href="https://open.spotify.com/show/6xpiit8aJmwDHk1rKdxmri"&gt;DVLPR-WNBE on Spotify&lt;/a&gt;&lt;br&gt;
Head over to ▶ &lt;a href="https://codeboy.pl/"&gt;DVLPR-WNBE on codeboy.pl&lt;/a&gt;&lt;br&gt;
Strongly recommended episode ▶ &lt;a href="https://open.spotify.com/episode/3HtuBUT8XQVlDeixcAJFTQ"&gt;React is awesome! Really?&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;That's it for now, my dear readers! I encourage you to share your thoughts on these listed podcasts with me in the comments area below. Also, don't hesitate to update this list with your strong recommendations. 😀 &lt;br&gt;
This is my first post on this platform. I'll try to make it my routine habit at least once a week. 💪 &lt;/p&gt;

&lt;p&gt;In a week I'm starting my new job as a software engineer in the e-commerce company. Let me know if want to follow my journey and hear more from my extending experience on this path! 🐱‍🏍👨‍🎓  &lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>javascript</category>
      <category>podcast</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
