<?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>Forem: Ana Luisa Santos</title>
    <description>The latest articles on Forem by Ana Luisa Santos (@analuisadev).</description>
    <link>https://forem.com/analuisadev</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%2F620132%2Fbb9233bf-f0a1-43ca-883d-3b3bb3bcc5c9.jpg</url>
      <title>Forem: Ana Luisa Santos</title>
      <link>https://forem.com/analuisadev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/analuisadev"/>
    <language>en</language>
    <item>
      <title>Diário de bordo #9</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Thu, 02 Feb 2023 17:03:23 +0000</pubDate>
      <link>https://forem.com/analuisadev/diario-de-bordo-9-3fhg</link>
      <guid>https://forem.com/analuisadev/diario-de-bordo-9-3fhg</guid>
      <description>&lt;h2&gt;
  
  
  Operadores de Sufixo e Prefixo em JavaScript
&lt;/h2&gt;

&lt;p&gt;A maiória dos operadores das linguagens de programação são muito importantes para a utilização no dia a dia de um desenvolvedor, mas alguns deles podem causar um pouco de confusão ao realizar uma explicação de como eles funcionam por de baixo dos panos, ou até mesmo entender realmente como eles agem. Então neste post eu irei trazer um breve resumo do que é e qual a diferença entre os &lt;strong&gt;Operadores de Sufixo e Prefixo no JavaScript&lt;/strong&gt;&lt;/p&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%2Fx3krm3bjj1yed4z0hahg.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%2Fx3krm3bjj1yed4z0hahg.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  O que são os Operadores Sufixo e Prefixo?
&lt;/h2&gt;

&lt;p&gt;Estes operadores são extremamente uteis para quando queremos incrementar(adicionar) ou decrementar(remover) um determinado valor númerico. &lt;/p&gt;

&lt;p&gt;Uma das formas que já foram vistas para quem estuda ou já estudou alguma linguagem de programação pela primeira vez é a partir do exemplo abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let x = 10
x = x + 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A variável &lt;code&gt;x&lt;/code&gt; está sendo re-atribuida ao seu valor atual e sofrendo uma incrementaçõ através do operador &lt;code&gt;+ 1&lt;/code&gt;. Sabendo disso, existe uma outra forma mais simples de se realizar o mesmo procedimento atual, que é utilizando os operadores Prefixo e Sufixo:&lt;/p&gt;

&lt;h2&gt;
  
  
  Operador Prefixo
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Operador Prefixo ++&amp;lt;variável&amp;gt;
let x = 10
let y = 0
y = ++x
console.log( y ) // Retorna 11
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A principio ele realmente atribui o valor de X para Y somado +1, mas o que ele faz de baixo dos panos é literalmente fazer essa re-atribuição o valor de &lt;code&gt;x&lt;/code&gt; que é &lt;code&gt;10&lt;/code&gt;, adicionando +1, atualizando o seu valor de &lt;code&gt;10&lt;/code&gt; para &lt;code&gt;11&lt;/code&gt; e re-atribuindo o valor de &lt;code&gt;y&lt;/code&gt; com o valor atualizado de &lt;code&gt;x&lt;/code&gt;. Veja o exemplo do que literalmente acontece sem ser visto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let x = 10
let y = 0
x = x + 1
y = x
//y = ++x (Operador Prefixo)
console.log( x ) // Retorna 11
console.log( y ) // Retorna 11
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PS: Basicamente ele re-atribui e incrementa antes da variável &lt;code&gt;y&lt;/code&gt; receber o valor 'real' de &lt;code&gt;x&lt;/code&gt; que é &lt;code&gt;10&lt;/code&gt;, fazendo-o receber um novo valor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Operador Sufixo
&lt;/h2&gt;

&lt;p&gt;Também faz a atribuição da mesma forma, trazendo o valor da variável e aumentando o seu valor para +1. Só que com uma pequena diferença, atribuindo e incrementando o valor depois, veja o exemplo abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Operador de Sufixo &amp;lt;variável&amp;gt;++
let a = 24
let b = 0
b = a
a = a + 1
// b = a++ (Operador Sufixo)
console.log( a ) // Retorna 25
console.log( b ) // Retorna 24
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PS: Esse operador faz o contrário do Prefixo, atribuindo a variável &lt;code&gt;b&lt;/code&gt; ao valor da &lt;code&gt;a&lt;/code&gt; e logo em seguida incrementando +1, fazendo com que &lt;code&gt;a&lt;/code&gt; tenha o valor elevado à +1 e b tendo o valor antigo, que é &lt;code&gt;24&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Diário de Bordo #8</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Wed, 01 Feb 2023 15:17:02 +0000</pubDate>
      <link>https://forem.com/analuisadev/diario-de-bordo-8-490l</link>
      <guid>https://forem.com/analuisadev/diario-de-bordo-8-490l</guid>
      <description>&lt;p&gt;OBS: Estive um pouco sumida esses dias por conta dos estudos que estava realizando, pretendo ser mais ativa de agora em diante em meus relatórios no diário de bordo.&lt;/p&gt;

&lt;p&gt;Estou fazendo um curso na Rocketseat pela trilha Explorer e estou aprendendo muita coisa em JavaScript, alguma delas eu irei comentar no diário de hoje, e com o avançar, irei trazer nos demais diários dos próximos dias.&lt;/p&gt;

&lt;h2&gt;
  
  
  Manipulação de Arrays
&lt;/h2&gt;

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

&lt;p&gt;Com o avançar dos meus estudos, eu aprendi alguns métodos novos em JavaScript que são muito importantes para realizar a manipulação de dados de uma Array. E outros eu só realizei a revisão, logo abaixo será listado cada um deles com uma breve explicação.&lt;/p&gt;

&lt;h2&gt;
  
  
  Push()
&lt;/h2&gt;

&lt;p&gt;Adiciona um novo item/dado ao fim do Vetor.&lt;/p&gt;

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

&lt;p&gt;Retorno no console:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tzat1HBK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3jqzf3y3tdurboi60d9p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tzat1HBK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3jqzf3y3tdurboi60d9p.png" alt="Image description" width="398" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  unshift() - NEW!
&lt;/h2&gt;

&lt;p&gt;Adiciona um novo item ao início do Vetor.&lt;/p&gt;

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

&lt;p&gt;Retorno no console:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xm3ImSWG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/28zqxj8ggo7dmzgzulqz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xm3ImSWG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/28zqxj8ggo7dmzgzulqz.png" alt="Image description" width="520" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pop()
&lt;/h2&gt;

&lt;p&gt;Remove um item no final do Vetor.&lt;/p&gt;

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

&lt;p&gt;Retorno no console:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OKlRj3qv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h6d80x9qehmyms0uguki.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OKlRj3qv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h6d80x9qehmyms0uguki.png" alt="Image description" width="256" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  shift() - NEW!
&lt;/h2&gt;

&lt;p&gt;Remove um item no início do Vetor.&lt;/p&gt;

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

&lt;p&gt;Retorno no console:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4yG7CEYz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8yarobbrhljr8jmgk0xc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4yG7CEYz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8yarobbrhljr8jmgk0xc.png" alt="Image description" width="256" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  slice() - NEW!
&lt;/h2&gt;

&lt;p&gt;Retorna uma cópia de parte de um array a partir de um subarray criado entre as posições início e fim. Ele irá aceitar dois argumentos, onde o primeiro argumento será a posição de início do elemento a ser retirado e o segundo, é a posição final do Array solicitado. Basicamente ele é um método que retorna os elementos selecionados de um Vetor, com um novo Vetor. Esse método não faz modificações do Vetor, e sim retorna o que foi solicitado.&lt;/p&gt;

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

&lt;p&gt;Retorno no console:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RWcQiPOY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c2z7h7oj8nuc0cz2ggt3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RWcQiPOY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c2z7h7oj8nuc0cz2ggt3.png" alt="Image description" width="229" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  splice() - NEW!
&lt;/h2&gt;

&lt;p&gt;Remove um ou mais itens de qualquer posição do Vetor. Ele também aceita dois argumentos, onde o primeiro é a posição do elemento a ser removido, e o segundo, é a quantidade de elementos a serem removidos.&lt;/p&gt;

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

&lt;p&gt;Retorno no console:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s7xBeGF5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xf30otl7o0hnimw1f4v8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s7xBeGF5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xf30otl7o0hnimw1f4v8.png" alt="Image description" width="229" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  indexOf()
&lt;/h2&gt;

&lt;p&gt;Encontra a posição de um elemento.&lt;/p&gt;

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

&lt;p&gt;Retorno no console:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---moHBBne--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h87d5cktkujt1a5ln3l5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---moHBBne--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h87d5cktkujt1a5ln3l5.png" alt="Image description" width="229" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Diário de bordo #7</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Wed, 25 Jan 2023 12:56:35 +0000</pubDate>
      <link>https://forem.com/analuisadev/diario-de-bordo-7-16oh</link>
      <guid>https://forem.com/analuisadev/diario-de-bordo-7-16oh</guid>
      <description>&lt;h2&gt;
  
  
  Arrow Functions
&lt;/h2&gt;

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

&lt;p&gt;Com as atualizações do ES6 do ECMAScript em 2015, nos foram trazidas várias novas funcionalidades interessantes, e uma das que mais se destacaram e que eu as vejo serem bastante utilizadas, foram as Arrow Functions. Que são uma forma mais simples, poderoza e bastante eficiente de utilizar funções em JavaScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sintaxe
&lt;/h2&gt;

&lt;p&gt;Uma função na qual formos apresentados convêncionalmente quando aprendemos javaScript tem esse escopo &lt;code&gt;function nomeDaFuncao(){}&lt;/code&gt;, já as Arrow functions são definidas a partir deste escopo &lt;code&gt;() =&amp;gt; {}&lt;/code&gt;, onde o &lt;code&gt;=&amp;gt;&lt;/code&gt; faz referência flecha, fazendo jus ao nome dado a esse tipo de função. &lt;/p&gt;

&lt;h2&gt;
  
  
  Para que serve?
&lt;/h2&gt;

&lt;p&gt;As Arrow Functions são uma forma mais elegante e atualizada de declarar funções em JavaScript, como foi mencionado nos primeiros paragrafos do artigo. Elas nos traz várias possibildades que podem melhorar a legibilidade e usabilidade do nosso código, tais dessas possibilidades são: Refatoração de código, código enxuto e limpo (clean code), além de nos ajudar nas desestruturações. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Veja um exemplo de código refatorado utilizando esse recurso do JavaScript&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function saveDay() { // Código Antigo utilizando uma maneira "antiga" de declarar funções em JavaScript
  localStorage.setItem("CompletedDays@habits", JSON.stringify(nlwSetup.data))
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Agora veja o mesmo código, só que refatorado&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const saveDay = () =&amp;gt; localStorage.setItem("CompletedDays@habits", JSON.stringify(nlwSetup.data))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>monitoring</category>
      <category>ecommerce</category>
      <category>productivity</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Diário de bordo #6</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Tue, 17 Jan 2023 15:52:05 +0000</pubDate>
      <link>https://forem.com/analuisadev/diario-de-bordo-6-86k</link>
      <guid>https://forem.com/analuisadev/diario-de-bordo-6-86k</guid>
      <description>&lt;h2&gt;
  
  
  classList
&lt;/h2&gt;

&lt;p&gt;É uma propriedade do JavaScript que funciona como uma alternativa para acessar a lista de classes CSS de um elemento.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sintaxe
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; const html = document.documentElement

 html.classList.toggle('bg-black')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neste exemplo de sintaxe que estou utilizando funciona da seguinte forma: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A declaração da varíavel HTML recebe o retorno do elemento de um documento&lt;/li&gt;
&lt;li&gt;Faço a chamada dessa váriavel atribuindo a ela a propriedade classList que irá ser responsável por realizar a leitura da classe CSS &lt;code&gt;bg-black&lt;/code&gt; e o &lt;code&gt;toggle&lt;/code&gt; que é usado para alternar entre o estado do nosso elemento HTML, inserindo nossa classe CSS como 
parâmetro e fazendo essa mudança em nosso documento HTML.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Observação: A classList é uma propriedade &lt;strong&gt;read-only&lt;/strong&gt;, ou seja, ela apenas faz a leitura das classes CSS. Mas ela tem compatibilidade com os metodos abaixo na qual você consegue adicionar, remover ou alterar essas classes CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;add();
// Adiciona um ou mais tokens à lista
contains();
// Retorna verdadeiro se a lista contiver uma classe
remove();
// Remove um ou mais tokens da lista
length();
// Retorna o número de tokens na lista
replace();
// Substitui um token na lista
toggle();
// Alterna entre tokens na lista
value;
// Retorna a lista de tokens como uma string
values();
// Retorna um Iterator com os valores da lista
forEach();
// Executa uma função de retorno de chamada para cada token na lista
entries();
// Retorna um Iterator com pares chave/valor da lista
supports();
// Retorna verdadeiro se um token for um dos tokens suportados por um atributo
keys();
// Retorna um Iterator com as chaves da lista
item();
// Retorna o token em um índice especificado
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Diário de bordo #5</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Mon, 16 Jan 2023 21:09:45 +0000</pubDate>
      <link>https://forem.com/analuisadev/diario-de-bordo-5-3bpg</link>
      <guid>https://forem.com/analuisadev/diario-de-bordo-5-3bpg</guid>
      <description>&lt;p&gt;Minha última atualização foi no dia 11, desde lá eu passei alguns dias aprendendo algumas coisas novas e estou fazendo a revisão destes conteúdos a partir de hoje. Logo, o que irei abordar hoje é uma propriedade do JavaScript chamada &lt;code&gt;setAttribute()&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  SetAttribute();
&lt;/h2&gt;

&lt;p&gt;Trabalha para adicionar ou atualiza os valores de um atributo existente em um elemento especifico.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sintaxe
&lt;/h2&gt;

&lt;p&gt;A sintaxe do &lt;code&gt;setAttribute()&lt;/code&gt; funciona da seguinte forma:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;element.setAttribute(name, value)&lt;/code&gt;, sendo o &lt;code&gt;element&lt;/code&gt; o elemento HTML na qual deseja fazer alterações, &lt;code&gt;name&lt;/code&gt; o nome do atributo deste elemento e &lt;code&gt;value&lt;/code&gt; o valor a ser inserido/alterado. &lt;strong&gt;Veja o funcionamento na prática&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let linkedinLink = document.getElementById('link');

linkedinLink.setAttribute('href', 'https://www.linkedin.com/in/ana-luisa-/'); 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O funcionamento destas duas linhas de código neste exemplo funciona da seguinte forma: Dentro do JavaScript eu faço uma chamada ao elemento na qual quero obter o valor, e em seguida eu realizo a chamada dela setando-a junto com o elemento &lt;code&gt;setAttribute()&lt;/code&gt;, trazendo como primeiro parametro o atributo na qual quero realizar as alterações, que no caso é o &lt;code&gt;href&lt;/code&gt; do elemento &lt;code&gt;&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;&lt;/code&gt; do HTML, e em seguida o valor que quero passar, que neste caso foi a URL do perfil do meu linkedIn.&lt;/p&gt;

&lt;p&gt;Valendo a pena ressaltar que: Se um atributo especificado já existe, então o valor do atributo é mudado para o valor passado para a função. Se não existe, então o atributo é criado.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Diário de bordo #4</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Wed, 11 Jan 2023 13:19:51 +0000</pubDate>
      <link>https://forem.com/analuisadev/diario-de-bordo-4-1hp5</link>
      <guid>https://forem.com/analuisadev/diario-de-bordo-4-1hp5</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZX0rmQOl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vx9095duu6dvr47xui3n.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZX0rmQOl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vx9095duu6dvr47xui3n.jpeg" alt="Image description" width="880" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Spreat Operator
&lt;/h2&gt;

&lt;p&gt;Trazendo uma definição mais objetiva e simples de para que serve o Spreat Operator, é imaginando um cenário na qual você, desenvolvedor precisa reaproveitar os dados de um Vetor ou uma Função em outras partes de seu código, que porventura poderia ser feito de uma maneira 'menos eficiente', extendendo para mais linhas de código o que poderia ter sido feita em uma, por exemplo. E basicamente é isso que o Spreat Operator faz, ele serve para que você consiga copiar os dados de um Objeto ou Array e realizar uma espécie de concatenação destas informações em outros lugares do seu código, como por exemplo dentro de outros Objetos, Arrays ou Funções, através do &lt;code&gt;...nomeDoObjeto&lt;/code&gt; ou &lt;code&gt;...nomeDoArray&lt;/code&gt;, na qual o &lt;code&gt;...&lt;/code&gt; serve para indicar que todos os dados dentro deste objeto/array serão copiados e inseridos em um outro lugar, acompanhado de mais outros tipos de informações com base na necessidade de cada programa. &lt;strong&gt;Veja um exemplo prático abaixo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const dataUser = [
    'Ana Luisa', 'Desenvolvedora Front-End', 20, 2002
]; 

const newDataUser = [...dataUser, 'Geek', 'Mãe de pet']; 

console.log(newDataUser); 

/* Resultado da impressão do console.log()
[
    'Ana Luisa',
    'Desenvolvedora Front-End',
    20,
    2002,
    'Geek',
    'Mãe de pet'
  ]*/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O que foi feito no bloco de código acima foi a criação de uma variável chamada &lt;code&gt;dataUser&lt;/code&gt; que recebe um vetor na qual contém os dados de um usuário.&lt;/p&gt;

&lt;p&gt;Caso quisermos criar uma nova variável que receba um Vetor com informações diferentes e quisermos realizar uma especie de concatenação destes dados utilizamos o &lt;code&gt;...&lt;/code&gt; do Spreat Operator que tem a função de coletar todos os dados de um Objeto ou Vetor e adicionar onde for cabivel para você. Como estou trazendo o &lt;code&gt;newDataUser&lt;/code&gt; como exemplo, o que fiz foi exatamente como feito nesta explicação, trazer todos os dados do vetor &lt;code&gt;dataUser&lt;/code&gt;, adiciona-los dentro do &lt;code&gt;newDataUser&lt;/code&gt; e inserir novos valores.&lt;/p&gt;

&lt;p&gt;Além disso, podemos utilizar o spreat operator para funções, veja o exemplo abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function sum(a, b, c) {
    return a + b + c
};

const numbers = [15, 20, 45];

console.log(sum(...numbers)); // retorna o resultado da soma: 80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Rest Operator
&lt;/h2&gt;

&lt;p&gt;Como o próprio nome sugere, o Rest Operator é utilizado para quando temos a necessidade de fazer uma recuperação do &lt;strong&gt;resto&lt;/strong&gt; dos dados de um array ou objetos. &lt;br&gt;
&lt;strong&gt;Veja um exemplo prático abaixo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const person = ['Ana Luisa', 2002, 'Desenvolvedora Front-End', '1.64m'];

const [name, yearBirth, ...personData] = person;

console.log(name); // Ana Luisa

console.log(yearBirth); // 2002

console.log(personData); // ['Desenvolvedora Front-End' , '1.64m']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cada identificador dado na segunda linha de código tem que ser relacionados a ordem de cada posição dos itens do nosso vetor &lt;code&gt;person&lt;/code&gt;, onde a posição[0], recebe o &lt;code&gt;name&lt;/code&gt; como variável para identificar essa informação, e assim sucessivamente, já o &lt;code&gt;...personData&lt;/code&gt; irá trazer todo o resto dos dados que faltavam ser informados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Veja outro exemplo utilizando objetos:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const employee = {
    firstName: 'Ana',
    lastName: 'Luisa',
    city: 'Salvador',
    country: 'Brazil',
    age: 20
};

const {firstName, lastName, ...theRest} = employee;

console.log(firstName); // Retorna 'Ana'

console.log(lastName); // Retorna 'Luisa'

console.log(theRest); // Retorna { city: 'Salvador', country: 'Brazil', age: 20 }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Diário de bordo #3</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Mon, 09 Jan 2023 20:15:47 +0000</pubDate>
      <link>https://forem.com/analuisadev/diario-de-bordo-3-hfa</link>
      <guid>https://forem.com/analuisadev/diario-de-bordo-3-hfa</guid>
      <description>&lt;p&gt;A partir do dia 5 de janeiro eu aprendi um tópico novo em JavaScript relacionado a introdução de tratamento de erros utilizando &lt;code&gt;try&lt;/code&gt; &lt;code&gt;catch&lt;/code&gt; e &lt;code&gt;finally&lt;/code&gt;, e é sobre este assunto que será focado o diário de hoje.&lt;/p&gt;

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

&lt;p&gt;Acredito que uma das habilidades essênciais para qualquer software é realizar o tratamento de erros, sejam eles erros de sintaxe, alguma informação digitada incorretamente pelo usuário em algum lugar do sistema ou até mesmo erro em tempo de execução.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sintaxe Try Catch e Finally
&lt;/h2&gt;

&lt;p&gt;A sintaxe do &lt;code&gt;Try Catch&lt;/code&gt; é relativamente simples de aprender, ela é dívidida em dois blocos de código, onde o &lt;code&gt;Try&lt;/code&gt; é responsável por executar o código caso ocorra algum problema dentro dos comandos digitados, o Catch recebe via parametro uma função do tipo &lt;code&gt;Error&lt;/code&gt; e o &lt;code&gt;Finnaly&lt;/code&gt; irá executar sempre o código escrito nele independente de erros.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
    //sua linha de código onde é informado o processo onde possívelmente ocorra algum erro
} catch(error) {
  // sua linha de código onde é responsável pelo tratamento de erro trazido pelo try
} finnaly {
   // sua linha de código onde será executado o comando independente de erros
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Além disso é possível referênciar o Objeto Error das seguintes formas: &lt;/p&gt;

&lt;p&gt;TypeError: Onde o argumento passado para a função é de um tipo diferente da esperada.&lt;/p&gt;

&lt;p&gt;ReferenceError: Passado quando uma variável ou função é inválida ou inexistente. &lt;/p&gt;

&lt;p&gt;SyntaxError: Como o próprio nome diz, ela é passada quando ocorre um erro de sintaxe na interpretação do código.&lt;/p&gt;

&lt;p&gt;RangeError: É lançado quando um valor é passado como argumento em uma função que não está em conjunto com os valores permitidos. &lt;/p&gt;

&lt;p&gt;URIError: Ocorre quando há algum erro no tratamento da URI.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Diário de bordo #2</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Sat, 07 Jan 2023 11:31:12 +0000</pubDate>
      <link>https://forem.com/analuisadev/diario-de-bordo-2-1l2c</link>
      <guid>https://forem.com/analuisadev/diario-de-bordo-2-1l2c</guid>
      <description>&lt;p&gt;Olá a todos, como uma atualização do que eu estou aprendendo eu trouxe algumas funções do JavaScript que achei bacana a utilização e gostaria de compartilhar o que eu aprendi sobre elas e as suas diferenças.&lt;/p&gt;

&lt;h2&gt;
  
  
  Temporização
&lt;/h2&gt;

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

&lt;p&gt;Como o próprio nome diz, eles servem para setar um determinado tempo para que uma determinada ação ocorra, ou a repetição desta ação(veremos isso logo abaixo).&lt;/p&gt;

&lt;h3&gt;
  
  
  setTimeout()
&lt;/h3&gt;

&lt;p&gt;Em resumo ela serve para definir a quantidade de tempo de espera para que uma determinada ação aconteça, veja o exemplo de código abaixo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function executeMessage() {
  document.write('Executando a mensagem...');
};

setTimeout(executeMessage, 3000)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neste bloco de código eu trouxe uma função que executa uma mensagem em JavaScript retornando isso no corpo do documento no HTML. Para que o &lt;code&gt;setTimeout&lt;/code&gt; funcione precisamos trazer 2 parametros, o primeiro é a função a ser executada, que no meu caso é a &lt;code&gt;executeMessage&lt;/code&gt; e o tempo de espera para que ela seja executada. Neste exemplo ela é executada após 3 segundos após sua inicialização.&lt;/p&gt;

&lt;h3&gt;
  
  
  setInterval()
&lt;/h3&gt;

&lt;p&gt;Já essa função trabalha de forma parecida com a do &lt;code&gt;setTimeout()&lt;/code&gt;, trazendo como primeiro parametro a função a ser executada e o tempo de execução, mas a principal diferença deles dois é que o &lt;code&gt;setInterval()&lt;/code&gt; não irá parar de executar a função, ele irá trazer uma especie de looping infinito, retornando o resultado que você definiu através de uma função, juntamente com o tempo de espera para a execução sem parar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function executeMessage() {
  document.write('Executando a mensagem...');
};

setInterval(executeMessage, 3000) // Irá executar a mensagem da função sem nenhuma pausa.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para que você consiga pausar esse looping que o &lt;code&gt;setInterval&lt;/code&gt;retorna, é nescessário criar uma funcionalidade para isso, como um botão para pausar/parar por exemplo, ou até o uso do &lt;code&gt;clearInterval()&lt;/code&gt; resolve, mas para isso você deverá passa-lo dentro de uma variável para que ele consiga parar de executar, como no exemplo abaixo (a definição do comportamento de inicialização e termino ficará ao seu critério).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; let timer =  setInterval(executeMessage, 3000);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;No exemplo citado, o que eu fiz foi criar uma variável chamada timer e faze-la receber a função que o &lt;code&gt;setInterval&lt;/code&gt;irá executar, e para exemplificar o uso do &lt;code&gt;clearInterval&lt;/code&gt;, eu esperei alguns segundos para que ela pudesse executar algumas mensagens e logo em seguida o defini passando o valor da variável que foi criada agora pouco, fazendo com que desta forma, neste exemplo, ele pare de executar o looping que o setInterval trás.&lt;/p&gt;

&lt;p&gt;OBS: Lembrado que se o &lt;code&gt;clearInterval&lt;/code&gt;for definido ao mesmo tempo que o &lt;code&gt;setInterval&lt;/code&gt;, ele já irá parar a função antes que ela execute, então para ver ela executando e testando essa funcionalidade, ele deverá ser setado um tempo depois da execução da mensagem.&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Diário de Bordo #1</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Mon, 02 Jan 2023 23:44:18 +0000</pubDate>
      <link>https://forem.com/analuisadev/diario-de-bordo-1-22ji</link>
      <guid>https://forem.com/analuisadev/diario-de-bordo-1-22ji</guid>
      <description>&lt;p&gt;Essa é uma documentação diária do meu processo de estudos e evolução como desenvolvedora Front-End. Os objetivos deste diário é trazer a tona os principais fatores que será preciso melhorar para que o proveito dos meus estudos sejam amplificados, além de trazer um breve resumo direto ao ponto e simplificado de cada tópico estudado ou de qualquer coisa que eu aprenda de novo e que tenha me pego de surpresa xD.&lt;/p&gt;

&lt;p&gt;Para iniciar meu diário, resolvi trazer algumas coisas que eu pude identificar através de uma observação do meu desempenho como Desenvolvedora e descobri tais coisas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;É necessário ter um desenvolvimento detalhado dos projetos/exercícios que eu gradativamente desenvolva.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mais treino de Lógica, resolução de diversos problemas, desde o mais simples ao mais avançado que eu puder resolver e análise do problema em questão e análise.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compartilhamento do que é aprendido.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bom, como podem ver esses são três tópicos que atualmente eu preciso desenvolver e melhorar, e irei fazer um breve comentário sobre eles agora. Em relação ao primeiro tópico, eu resolvi utilizar diagramas para detalhar melhor cada problemas que eu irei resolver daqui pra frente, então vocês verão alguns diagramas que eu criarei nos próximos diários de bordo. Segundo tópico, eu percebi pois estou tendo alguns problemas nas resoluções de exercícios, acredito que deve ser pelo fato do conteúdo ainda não ter sido fixado corretamente, além da melhoria que preciso ter em meu pensamento lógico, logo, pegarei diversos exercícios para resolver utilizando JavaScript, não importa se eu demore 1h, 2h, 3h ou 1 dia para resolver, será feito 100% com base nos meus conhecimentos adquiridos gradativamente. E terceiro e último tópico, irá ser trabalhado junto com o segundo, pois servira como uma forma de fixar melhor o que eu for aprendendo, para não esquecer no dia seguinte xD (o que é normal quando se aprende algo novo e não tem nenhum tipo de convivência com ele). &lt;/p&gt;

&lt;p&gt;Por fim, para não deixar esse diário só na introdução, vou trazer um resumo do que eu aprendi de JavaScript nessas semanas (alguns dos tópicos a serem inseridos eu já tinha aprendido antes, mas aproveitei o tempo para revisar).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Sintaxe Básica.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Manipulação do DOM.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Funções.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vetores/Arrays.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Condições e Loops.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Includes, endsWith e startsWith.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spreat Operator.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rest Operator.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Desconstrução de Objetos e Arrays.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Além disso eu pretendo estudar mais sobre funções e objetos, Fetch API/Ajax, mais do ES6+, entender alguns conceitos de Hoisting, Event Bubbling, Scope, Prototype, Shadow DOM e strict, um pouco de NodeJS e JSON, modularização e RegEx. Assim que passar dessa etapa e ficar ferinha em JavaScript, irei focar 100% em ReactJS para aproveitar o máximo do meu foco, depois disso irei decidir entre aprender Styled Components ou TypeScript(Já tenho uma vivência breve com essa linguagem).&lt;/p&gt;

&lt;p&gt;Por enquanto é isso, até mais!   &lt;/p&gt;

</description>
      <category>react</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>A importância do LinkedIn para Dev's e como usar</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Fri, 29 Jul 2022 21:15:00 +0000</pubDate>
      <link>https://forem.com/analuisadev/a-importancia-do-linkedin-para-devs-e-como-usar-1oba</link>
      <guid>https://forem.com/analuisadev/a-importancia-do-linkedin-para-devs-e-como-usar-1oba</guid>
      <description>&lt;p&gt;Com o avanço da tecnologia, aumento de vagas e a procura por bons profissionais dentro do mercado de trabalho, diariamente o mercado acaba se tornando mais competitivo, em busca de profissionais capacitados para preencherem as vagas que estão disponíveis. Além de existir uma necessidade de mostrar o seu perfil para os recrutadores, quem você é como profissional e pessoa, seus conhecimentos e habilidades (tais como soft e hard skills) e seus projetos. E é sobre isso que iremos abordar neste artigo, &lt;strong&gt;a real importância do LinkedIn para profissionais de TI e como utilizar essa poderosa ferramenta.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o LinkedIn?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XwW-g6_6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/05ia0fg24qdtenld58z2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XwW-g6_6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/05ia0fg24qdtenld58z2.jpg" alt="Image description" width="880" height="669"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O LinkedIn é uma &lt;strong&gt;rede social para profissionais&lt;/strong&gt;, com mais de 300 milhões de usuários ao redor do mundo, essa rede social surgiu com o intuito de fazer com que os profissionais tenham a possibilidade de criar um perfil (imagine como se fosse semelhante ao Facebook ou Instagram por exemplo) onde pode ser inserido informações como nome, experiência, formação acadêmica, competências, uma seção disponível para que você possa escrever um pouco sobre si mesmo no sentido profissional, de forma resumida, clara e direta ao ponto, foto de perfil e capa, título (onde são inseridas palavras chaves da sua área de atuação), localização, além de você conseguir criar publicações (não esqueça que o LinkedIn é uma rede para &lt;strong&gt;profissionais&lt;/strong&gt;, e não o seu perfil pessoal do Instagram ou Facebook, ok?), além de ter disponível uma seção de busca de emprego, conexões, dentre outras opções. &lt;/p&gt;

&lt;h2&gt;
  
  
  Qual é a sua importância?
&lt;/h2&gt;

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

&lt;p&gt;Como muitos desenvolvedores mais experientes devem saber, o mercado de atuação em TI é extremamente rico de oportunidades, e também, de escassez de profissionais capacitados. Trazendo esse cenário para o objetivo que abordamos aqui, pode-se ser dito em poucas palavras que, o LinkedIn é uma das suas portas de entrada para o mercado de trabalho, além de uma possível contratação, pois é lá (e em outras plataformas como o GitHub, por exemplo) que recrutadores ou até mesmo outros desenvolvedores possam te encontrar, ver o seu perfil, entender um pouco mais sobre você, ter acesso ao que você faz, suas habilidades, conhecimentos, competências, outros perfis que se, linkados da forma correta, possibilitam que o visitante se direcione a outras &lt;strong&gt;páginas importantes&lt;/strong&gt; para a sua área, como o GitHub informado anteriormente, além de outras plataformas que podem ajudar a trazer mais notoriedade a você e quem você é como profissional.&lt;/p&gt;

&lt;h2&gt;
  
  
  Certo... agora como eu posso utilizar o LinkedIn de forma correta?
&lt;/h2&gt;

&lt;p&gt;Separei alguns tópicos que irão te ajudar a criar um perfil campeão no LinkedIn, que traga mais confiança aos recrutadores e o destaque como profissional.&lt;/p&gt;

&lt;p&gt;1° Foto de Perfil e Capa adequados&lt;/p&gt;

&lt;p&gt;É de suma importância que você tenha uma foto &lt;strong&gt;sua&lt;/strong&gt;, apresentando você como profissional. Evite fotos descontraídas, como uma foto no parque ou na praia por exemplo. Procure tirar fotos com postura e linguagem corporal corretas, com um cenário neutro. Já a capa, pode ser uma imagem relacionada a sua área de atuação, por exemplo. Procure sempre inserir uma boa foto de perfil e capa.&lt;/p&gt;

&lt;p&gt;2° Insira palavras-chaves do seu cargo&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DlJAoCAQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gv1xj0ldk9bnlca43z9b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DlJAoCAQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gv1xj0ldk9bnlca43z9b.png" alt="Image description" width="824" height="456"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;É importante inserir palavras chaves do &lt;strong&gt;seu ramo de atuação&lt;/strong&gt; dentro do seu perfil, assim fica mais fácil de te encontrar no meio da multidão.&lt;/p&gt;

&lt;p&gt;Um bom exemplo disso é o meu perfil no LinkedIn, onde eu expresso que sou desenvolvedora Front-End e insiro minhas habilidades técnicas no perfil, que são palavras chaves da minha área como pode ver através da imagem acima.&lt;/p&gt;

&lt;p&gt;3° Escreva sobre você&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uZpRml_Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/csqgdvz4uh3zup44ncx3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uZpRml_Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/csqgdvz4uh3zup44ncx3.png" alt="Image description" width="554" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Crie uma breve descrição sobre você, apresente seus pontos fortes e seus conhecimentos de forma resumida e direta ao ponto, além de informar os seus meios de contato, como informado na foto.&lt;/p&gt;

&lt;p&gt;PS: Na hora de escrever sobre você, você poderá inserir as informações em português, as informações no meu perfil estão em inglês, mas são opcionais.&lt;/p&gt;

&lt;p&gt;4° Experiência Profissional e Formações&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JhbpOweo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v6ts9nrjyq96h7qk76ta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JhbpOweo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v6ts9nrjyq96h7qk76ta.png" alt="Image description" width="545" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Insira as suas experiências profissionais (pode ser inserido trabalhos voluntários ou freelancers) que estejam relacionados ao seu cargo desejado/área de atuação, além de inserir as suas formações acadêmicas, como ensino médio (preferencial) e formações de ensino superior. &lt;/p&gt;

&lt;p&gt;5° Insira competências e certificados de importância para sua carreira/área&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R25SznUK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ycalwoecu7wfkkj5jhcb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R25SznUK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ycalwoecu7wfkkj5jhcb.png" alt="Image description" width="408" height="448"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Insira cursos, bootcamps, hackathons que você participou, inserindo um link para ter o acesso ao certificado (é opcional, o que vale realmente é o conhecimento, mas é muito bom inserir os certificados também), além de informar quais as suas principais competências que você tem, hard-skill e soft-skill. &lt;/p&gt;

&lt;p&gt;6° Seção de Destaques&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_nibYv97--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pa0z2otzogeaiypq2lob.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_nibYv97--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pa0z2otzogeaiypq2lob.png" alt="Image description" width="812" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A seção de destaques do perfil são pontos importantes que você queira deixar em destaque, eles podem ser publicações, certificados, links, dentre outros.&lt;/p&gt;

&lt;p&gt;OBS: Tente sempre destacar as melhores informações que você tem a oferecer&lt;/p&gt;

&lt;p&gt;7° Publicações&lt;/p&gt;

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

&lt;p&gt;Lembre-se que, suas atividades na plataforma, artigos escritos, posts que você faz ou documentos que você envia(como publicação), ficam gravados em seu perfil, então tome cuidado com o que você publica, que tipo de post você curte e comenta. Lembrando que, o LinkedIn é uma rede social para profissionais, sempre tenha uma postura de profissionalismo na plataforma.&lt;/p&gt;

&lt;p&gt;Esse post foi útil para você? Curta, Compartilhe e Me siga nas minhas principais redes sociais 👇&lt;/p&gt;

&lt;p&gt;LinkedIn: &lt;a href="https://www.linkedin.com/in/ana-luisa-/"&gt;https://www.linkedin.com/in/ana-luisa-/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/analuisadev"&gt;https://github.com/analuisadev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>career</category>
      <category>algorithms</category>
      <category>webdev</category>
    </item>
    <item>
      <title>CSS BEM - Saiba tudo sobre essa metodologia!</title>
      <dc:creator>Ana Luisa Santos</dc:creator>
      <pubDate>Sat, 16 Jul 2022 09:59:19 +0000</pubDate>
      <link>https://forem.com/analuisadev/css-bem-saiba-tudo-sobre-essa-metodologia-21jk</link>
      <guid>https://forem.com/analuisadev/css-bem-saiba-tudo-sobre-essa-metodologia-21jk</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ntXV70Pd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hr9ze1cjlbqr9rdpf4gh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ntXV70Pd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hr9ze1cjlbqr9rdpf4gh.jpg" alt="Image description" width="880" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🤔 Você em algum momento de sua carreira deve ter ouvido falar sobre a metodologia BEM em CSS, e caso não nunca tenha ouvido falar, ou muito menos sabia que ela existe, fique neste artigo até o final para entender a real importância da sua utilização.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;O que é BEM?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;BEM é uma abreviação para &lt;em&gt;Block&lt;/em&gt;, &lt;em&gt;Element&lt;/em&gt; and &lt;em&gt;Modifier&lt;/em&gt;, que em português significa &lt;strong&gt;Bloco&lt;/strong&gt;, &lt;strong&gt;Elemento&lt;/strong&gt; e &lt;strong&gt;Modificador&lt;/strong&gt;. Criada em volta de 2005 por um buscador russo bem famoso chamada Yandex, com o objetivo de padronizar o código em vários em vários projetos, te auxiliando a criar códigos reutilizáveis e sustentáveis por meio da nomeação de classes. Fazendo com que você tenta total autonomia na na escrita e manutenção de qualquer tipo de projeto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qual o significado da abreviação?
&lt;/h2&gt;

&lt;p&gt;Cada bloco desta metodologia são divididos em 3 pilares importantes, que são:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BLOCO&lt;/strong&gt;&lt;br&gt;
É um componente independente de uma aplicação, que tem o seu próprio significado. O Bloco é um container, que contém elementos de marcação HTML como seu conteúdo, ou até mesmo, outros blocos iguais. &lt;/p&gt;

&lt;p&gt;Um bom exemplo de bloco séria&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="menu"&amp;gt;
   &amp;lt;h1&amp;gt;Conteúdo do elemento...&amp;lt;/h1&amp;gt;
&amp;lt;/div&amp;gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Elemento&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O elemento filho faz parte de um bloco, sendo semanticamente ligado ao elemento pai, não podendo ser utilizado fora desse bloco, como estão sempre atrelados a esse bloco, geralmente o nome do elemento é separado, contendo o nome do bloco, 2 underlinhas (__) e nome do elemento.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.menu{} /*Bloco*/ 

.menu__link{} /*Elemento*/

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Modificador&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Como o próprio nome diz, ele modifica os comportamentos, estados e aparência dos blocos e/ou elementos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.menu{} /* Bloco */

.menu__link{} /* Elemento */

.menu_ChangeColor{} /* Modificador */ 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Qual é a ideia por trás e quais são as suas boas práticas
&lt;/h2&gt;

&lt;p&gt;A ideia por trás da utilização da estrutura da metodologia BEM é fazer com que as informações sejam mais fáceis de entender tanto para você, quanto para outros desenvolvedores terem uma maior facilidade de entender o seu código.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="card"&amp;gt;
    &amp;lt;div class="card__header"&amp;gt;
        &amp;lt;h2&amp;gt;Título do Card&amp;lt;/h2&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="card__boxRed"&amp;gt;
        &amp;lt;img src="" alt="" class="card__img"&amp;gt;
        &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Assumenda, alias ipsum. Qui eius error doloribus earum est explicabo ullam iure quo, consequatur nemo magnam voluptatem doloremque distinctio! Sit, obcaecati quidem?&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="card__boxBlue"&amp;gt;
        &amp;lt;img src="" alt="" class="card__img"&amp;gt;
        &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Assumenda, alias ipsum. Qui eius error doloribus earum est explicabo ullam iure quo, consequatur nemo magnam voluptatem doloremque distinctio! Sit, obcaecati quidem?&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="card__boxGreen"&amp;gt;
        &amp;lt;img src="" alt="" class="card__img"&amp;gt;
        &amp;lt;p&amp;gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Assumenda, alias ipsum. Qui eius error doloribus earum est explicabo ullam iure quo, consequatur nemo magnam voluptatem doloremque distinctio! Sit, obcaecati quidem?&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Principais Vantagens
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Reutilização de Código &lt;/li&gt;
&lt;li&gt;Ajuda na nomeação do código CSS sem esforço e complicação&lt;/li&gt;
&lt;li&gt;Melhor Compreensão do código &lt;/li&gt;
&lt;li&gt;Desenvolvimento mais rápido com resultados duradouros&lt;/li&gt;
&lt;li&gt;A arquitetura garante a longevidade e a sustentabilidade para o desenvolvimento&lt;/li&gt;
&lt;li&gt;Menos problemas com o avanço do código HTML&lt;/li&gt;
&lt;li&gt;Facilita na manutenção do código&lt;/li&gt;
&lt;li&gt;Cria uma estrutura escalável &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>programming</category>
      <category>career</category>
    </item>
  </channel>
</rss>
