<?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: Rodolpho Bravo</title>
    <description>The latest articles on DEV Community by Rodolpho Bravo (@rodolphoasb).</description>
    <link>https://dev.to/rodolphoasb</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%2F351526%2F34cd361b-a905-4bbc-be74-887808485f6c.jpeg</url>
      <title>DEV Community: Rodolpho Bravo</title>
      <link>https://dev.to/rodolphoasb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rodolphoasb"/>
    <language>en</language>
    <item>
      <title>Day-to-day GIT Guide</title>
      <dc:creator>Rodolpho Bravo</dc:creator>
      <pubDate>Tue, 18 Jan 2022 03:15:53 +0000</pubDate>
      <link>https://dev.to/rodolphoasb/day-to-day-git-guide-kj9</link>
      <guid>https://dev.to/rodolphoasb/day-to-day-git-guide-kj9</guid>
      <description>&lt;p&gt;&lt;strong&gt;Situation 1:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You forgot to add some infomation on the last commit and don't want to create another new commit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;br&gt;
&lt;code&gt;git commit --amend --no-edit&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will add and commit your changes to the last commit, without asking you to create a new one.&lt;/p&gt;

</description>
      <category>git</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Testes com Jest e RTL no React</title>
      <dc:creator>Rodolpho Bravo</dc:creator>
      <pubDate>Tue, 12 Oct 2021 16:02:40 +0000</pubDate>
      <link>https://dev.to/rodolphoasb/testes-com-jest-e-rtl-no-react-4i8n</link>
      <guid>https://dev.to/rodolphoasb/testes-com-jest-e-rtl-no-react-4i8n</guid>
      <description>&lt;p&gt;Tipos de teste:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;End to End (E2E)&lt;/li&gt;
&lt;li&gt;Integration (Integração)&lt;/li&gt;
&lt;li&gt;Unit (Unitários)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vamos começar falando sobre as diferenças entre eles e quando usar um ou outro.&lt;/p&gt;

&lt;h2&gt;
  
  
  End to End (E2E)
&lt;/h2&gt;

&lt;p&gt;É um teste que busca fazer uma simulação do comportamento dos usuários dentro da sua aplicação, e dessa forma, testando se a aplicação está funciando de acordo com o esperado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Integration
&lt;/h2&gt;

&lt;p&gt;É quando testamos duas ou mais unidades do nosso código para saber se elas estão, em conjunto, funcionando como deveriam.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unit
&lt;/h2&gt;

&lt;p&gt;É o teste que realizamos de um componente no React.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resumindo:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No fim das contas, as distinções entre os tipos de teste não importam. Você deve se preocupar em garantir que quando entrega o seu código ele satisfaça os requisitos do negócio e gere valor para a empresa.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Quando testes são necessários?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Novamente, isso vai variar de empresa para empresa. Em Startups, por exemplo, muitas vezes a velocidade é mais importante que a confiabilidade de uma parte do seu código.&lt;/p&gt;

&lt;p&gt;Uma boa regra geral é - se pergunte o seguinte: "Se esse bug acontecer isso é muito ruim para a empresa?"&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Exemplo&lt;/em&gt;: Usuários não conseguem se registrar no seu site. &amp;gt; Super prejudicial &amp;gt; Deve ser testado.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Exemplo 2&lt;/em&gt;: Usuários não conseguem trocar a foto de perfil. &amp;gt; Não é tão prejudicial &amp;gt; Menor prioridade de teste (Varia para cada empresa e modelo de negócio).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TGeRCExb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8ou8zci9fywwlhuteveh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TGeRCExb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8ou8zci9fywwlhuteveh.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Obs: Tome cuidado para não testar detalhes de implementação que ficam muito acoplados ao código, dessa forma, quando você refatorar seu código tudo irá quebrar e será uma dor de cabeça enorme para você!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>test</category>
    </item>
    <item>
      <title>Como Aprender a Programar em 3 simples passos: o Depoimento da Jornada</title>
      <dc:creator>Rodolpho Bravo</dc:creator>
      <pubDate>Wed, 08 Jul 2020 22:00:49 +0000</pubDate>
      <link>https://dev.to/rodolphoasb/como-aprender-a-programar-em-3-simples-passos-o-depoimento-da-jornada-5e5h</link>
      <guid>https://dev.to/rodolphoasb/como-aprender-a-programar-em-3-simples-passos-o-depoimento-da-jornada-5e5h</guid>
      <description>&lt;h1&gt;
  
  
  Introdução
&lt;/h1&gt;

&lt;p&gt;Exatamente em Janeiro de 2020 me coloquei o desafio de aprender a programar. Focado em Web Development, olhando 100% pra o Javascript e todo o seu ecossistema.&lt;/p&gt;

&lt;p&gt;Gostaria de compartilhar a minha jornada até aqui (Julho de 2020). Deixando claro que não me coloco aqui como expert, mas alguém que está 100% focado no contínuo processo de se tornar um.&lt;/p&gt;

&lt;p&gt;Um pouco do meu background: Sou formado em Engenharia de Produção pela UNESP e SEMPRE tive a cabeça borbulhando de idea com produtos pra empreender. Varias dessas ideias envolviam a necessidade de outra pessoa com um viés técnico na área de software pra me ajudar a tirar essas ideias do papel.&lt;/p&gt;

&lt;p&gt;Não estou ignorando o papel do conjunto no empreendedorismo, &lt;strong&gt;na realidade sem um time é quase impossível&lt;/strong&gt;. Mas até pra poder interagir melhor com pessoas da área de tecnologia decidi que era a hora de aprender eu mesmo a programar.&lt;/p&gt;

&lt;h1&gt;
  
  
  O Início (Tutorial Hell)
&lt;/h1&gt;

&lt;p&gt;Já ouviu falar no tutorial hell? Basicamente é você ficar preso vendo cursos e mais cursos (pulando de um pra o outro geralmente). E quando se dispõe a colocar algo em prática, na hora de colocar a mão no código, você simplesmente sente que tudo o que assistiu foi em vão. Não sai nada na hora de começar escrever o código para concretizar aquilo que você havia imaginado...&lt;/p&gt;

&lt;h1&gt;
  
  
  Padrões, padrões everywhere
&lt;/h1&gt;

&lt;p&gt;Vejo o tutorial hell que citei acima como uma mau necessário. Quando você não sabe muito sobre um assunto não só é produtivo, mas também inteligente procurar ouvir aqueles que entendem do assunto que você quer entender.&lt;/p&gt;

&lt;p&gt;Conforme eu passei a assitir vídeos na área, comecei a notar certos padrões, não só da sintaxe do código(como o código é escrito), mas também na forma como o código é organizado. As nomeclaturas utilizadas pra nomear variáveis, funções, arquivos, pasta. Entendi que saber escrever código é no máximo uns 10% da jornada.&lt;/p&gt;

&lt;p&gt;Programar se trata de resolver problemas e digitar código é só o início.&lt;/p&gt;

&lt;h1&gt;
  
  
  Epifania, back to the basics
&lt;/h1&gt;

&lt;p&gt;Quando comecei a estudar Javascript, tinha uma coisa muito clara em mente: não estava aprendendo para fazer sites. Estava aprendendo para contruir produtos de tecnologia.&lt;/p&gt;

&lt;p&gt;-Mas calma, não é a mesma coisa?&lt;/p&gt;

&lt;p&gt;Parecido né? Mas existe uma diferença enorme.&lt;/p&gt;

&lt;p&gt;Engenharia é o uso de princípios científicos (ou muito bem fundamentados) para construir coisas.&lt;/p&gt;

&lt;p&gt;Ou seja, pra você construir coisas que realmente importam você deve ter a base muito bem fundamentada. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Não posso começar pelo React?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tudo bem você querer começar pelo React. &lt;/p&gt;

&lt;p&gt;Mas tenha consciência: pra criar a engenharia de um sistema robusto você precisa estar com os fundamentos em dia.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mas porque toda essa preocupação com a engenharia?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sistemas de tecnologia não são entidades estáticas. Mais uma vez, construir é só o início, você precisa construir algo que permita ser constantemente alterado, isso demanda conhecimento de engenharia que é pautado em conhecer os princípios básicos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ou seja, o básico bem feito dá resultado.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y5gu8iMh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/turismo.eurodicas.com.br/wp-content/uploads/2017/07/obras-do-museu-do-louvre-1.jpg%3Fresize%3D740%2C480" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y5gu8iMh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/turismo.eurodicas.com.br/wp-content/uploads/2017/07/obras-do-museu-do-louvre-1.jpg%3Fresize%3D740%2C480" alt="Louvre"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Como realmente aprender a programar
&lt;/h1&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--PR3VZmaz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1264809105572724738/L5In8y7l_normal.jpg" alt="Marc Backes ⚡️ profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Marc Backes ⚡️
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @_marcba
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Don't confuse knowledge with a skill ☝️&lt;br&gt;&lt;br&gt;You can do a tutorial of something and have knowledge about it.&lt;br&gt;&lt;br&gt;When you build a real project afterwards with this knowledge, now that's when you're building a skill.&lt;br&gt;&lt;br&gt;The more you build, the more *skilled* you get at it.&lt;br&gt;&lt;br&gt;BUILD! 💪
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      09:05 AM - 07 Jul 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1280427723291271169" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-reply-action.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1280427723291271169" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-retweet-action.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      48
      &lt;a href="https://twitter.com/intent/like?tweet_id=1280427723291271169" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-like-action.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
      250
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;Não confunda conhecimento com habilidade.&lt;/p&gt;

&lt;p&gt;Assim que você terminou de ver um curso, no máximo você tem o conhecimento. Mas habilidade... Takes time.&lt;/p&gt;

&lt;p&gt;Suponho que se você está lendo no artigo veio exatamente por esse tópico "Como aprender a programar". Essa deveria ser a sessão mais elaborada desse post, mas na realidade será a mais curta.&lt;/p&gt;

&lt;p&gt;Pra aprender a programar (e creio que pra aprender qualquer coisa) você precisa se envolver num looping com apenas três passos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Aprenda um conceito&lt;/li&gt;
&lt;li&gt;Construa algo com esse conceito&lt;/li&gt;
&lt;li&gt;Volte ao passo 1&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Não tem mágica, mas tem suor, horas de dedicação e a aplicação por tempo indefinido do looping acima.&lt;/p&gt;

&lt;p&gt;PS: &lt;strong&gt;Foco nos fundamentos, sem fundamentos você faz engenhocas e não engenharia!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;E me conta aí, como foi/está sendo a jornada no aprendizado da programação? Quanto tempo você ficou preso no tutorial hell?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Método Map</title>
      <dc:creator>Rodolpho Bravo</dc:creator>
      <pubDate>Tue, 23 Jun 2020 03:24:06 +0000</pubDate>
      <link>https://dev.to/rodolphoasb/metodo-map-2he8</link>
      <guid>https://dev.to/rodolphoasb/metodo-map-2he8</guid>
      <description>&lt;p&gt;O método &lt;em&gt;Map&lt;/em&gt; cria um novo array baseado numa chamada de função para cada elemento do Array.&lt;/p&gt;

&lt;p&gt;A função que será executada para cada elemento é descrita dentro do Map.&lt;/p&gt;

&lt;p&gt;Vamos ver um exemplo para tornar as coisas mais claras:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1. Tenho um Array:&lt;/em&gt;&lt;br&gt;
const array1 = [1, 4, 9, 16]&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2. Quero criar uma função que recebe um elemento e o multiplica por 2&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;function multiplyByTwo(num) {&lt;br&gt;
  return num * 2&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;ou&lt;/p&gt;

&lt;p&gt;const multiplyByTwo = num =&amp;gt; num *2&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3. Vou passar essa função para o Map e ela será executada para cada elemento&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;const newArray = array1.map(multiplyByTwo)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;4. Mostrando o resultado do NewArray temos:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;console.log(newArray) // [2, 8, 18, 32]&lt;/p&gt;

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