<?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: Felipe 0liveira</title>
    <description>The latest articles on DEV Community by Felipe 0liveira (@felipe0liveira).</description>
    <link>https://dev.to/felipe0liveira</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%2F214230%2F9b60a432-df31-4c2f-89f0-e1d2df05e513.jpeg</url>
      <title>DEV Community: Felipe 0liveira</title>
      <link>https://dev.to/felipe0liveira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/felipe0liveira"/>
    <language>en</language>
    <item>
      <title>🚀 SemVer: por que esse `1.2.3` muda sua vida (e seus bugs)</title>
      <dc:creator>Felipe 0liveira</dc:creator>
      <pubDate>Sat, 09 Aug 2025 15:50:03 +0000</pubDate>
      <link>https://dev.to/felipe0liveira/semver-por-que-esse-123-muda-sua-vida-e-seus-bugs-1d64</link>
      <guid>https://dev.to/felipe0liveira/semver-por-que-esse-123-muda-sua-vida-e-seus-bugs-1d64</guid>
      <description>&lt;p&gt;Você já deve ter visto algo assim no &lt;code&gt;package.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^18.2.0"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E aí surge a dúvida:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Mas que raios significam esses números? É só o dev mostrando que sabe contar?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Não, jovem padawan. Isso é &lt;strong&gt;Semantic Versioning&lt;/strong&gt; — o famoso &lt;strong&gt;SemVer&lt;/strong&gt; — e ele é mais importante do que parece.&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 O formato
&lt;/h2&gt;

&lt;p&gt;SemVer segue o padrão:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MAJOR.MINOR.PATCH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplo: &lt;code&gt;2.5.1&lt;/code&gt; significa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;MAJOR (2)&lt;/strong&gt; → Mudanças que quebram compatibilidade (&lt;em&gt;breaking changes&lt;/em&gt;).&lt;br&gt;&lt;br&gt;
Tipo quando você atualiza e metade do seu código para de funcionar 😅.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;MINOR (5)&lt;/strong&gt; → Novos recursos, mas compatíveis com a versão anterior.&lt;br&gt;&lt;br&gt;
É como adicionar novas pizzas no cardápio sem tirar as antigas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PATCH (1)&lt;/strong&gt; → Correções de bugs e ajustes pequenos.&lt;br&gt;&lt;br&gt;
Aquele “remendinho” que ninguém percebe… até perceber.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 Por que importa?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Te ajuda a saber &lt;strong&gt;o tamanho da treta&lt;/strong&gt; antes de atualizar.&lt;/li&gt;
&lt;li&gt;Facilita comunicação entre equipes.&lt;/li&gt;
&lt;li&gt;Evita “surpresas” no deploy — embora a gente saiba que sempre rola.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚠️ O cuidado com &lt;code&gt;^&lt;/code&gt; e &lt;code&gt;~&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;No npm/yarn, esses símbolos definem como a versão pode variar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;^1.2.3&lt;/code&gt; → Pode atualizar &lt;strong&gt;MINOR e PATCH&lt;/strong&gt;, mas não MAJOR.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;~1.2.3&lt;/code&gt; → Pode atualizar só o PATCH.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 Ou seja: aquele &lt;code&gt;npm install&lt;/code&gt; inocente pode te trazer um bug fresquinho se você não prestar atenção.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Moral da história
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Confie no SemVer&lt;/strong&gt; (mas verifique o changelog).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MAJOR&lt;/strong&gt; = risco alto
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MINOR&lt;/strong&gt; = recurso novo
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PATCH&lt;/strong&gt; = bug corrigido
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;E lembre-se: nem todo projeto segue SemVer direito… às vezes, a galera inventa moda. 😏&lt;/p&gt;




&lt;p&gt;💬 &lt;strong&gt;E aí, você segue SemVer ou só atualiza e reza? Conta aí nos comentários.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>semver</category>
      <category>semanticversion</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Definitivamente pontuando tasks</title>
      <dc:creator>Felipe 0liveira</dc:creator>
      <pubDate>Thu, 27 Mar 2025 17:03:50 +0000</pubDate>
      <link>https://dev.to/felipe0liveira/definitivamente-pontuando-tasks-89c</link>
      <guid>https://dev.to/felipe0liveira/definitivamente-pontuando-tasks-89c</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna5letvfd1rwwen8kifi.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%2Fna5letvfd1rwwen8kifi.png" alt=" " width="776" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Matriz de Complexidade e Incerteza
&lt;/h1&gt;

&lt;p&gt;A Matriz de Complexidade e Incerteza é uma ferramenta visual que ajuda equipes e organizações a compreenderem melhor o grau de dificuldade de um projeto ou iniciativa, levando em consideração dois eixos principais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Complexidade Técnica:&lt;/strong&gt; Representa o nível de conhecimento tecnológico disponível na equipe, a dependência de outros times e o domínio sobre as soluções técnicas necessárias.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Incerteza de Negócios:&lt;/strong&gt; Refere-se ao grau de clareza das regras de negócio envolvidas, o entendimento do problema a ser resolvido e o alinhamento com os objetivos estratégicos.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A combinação desses dois eixos gera uma classificação em diferentes níveis de dificuldade, que vão desde contextos simples (baixa complexidade e baixa incerteza) até cenários altamente desafiadores (alta complexidade e alta incerteza).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Para facilitar a compreensão e comunicação entre times, cada nível de dificuldade é representado por um animal simbólico, que reflete de forma lúdica e intuitiva a situação enfrentada. Além disso, os níveis de dificuldade são numerados com base na sequência de Fibonacci, que ilustra a progressão natural do aumento de esforço e incerteza à medida que os desafios se tornam mais complexos.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  1. Cachorro
&lt;/h3&gt;

&lt;p&gt;Pontuação: 1&lt;br&gt;
Complexidade: Baixa&lt;br&gt;
Incerteza: Baixa&lt;br&gt;
Definição:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conhecemos a tecnologia&lt;/li&gt;
&lt;li&gt;Não temos dependência de outros times&lt;/li&gt;
&lt;li&gt;Regras de negócio bem definidas&lt;/li&gt;
&lt;li&gt;Todos conhecem as regras de negócio&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. Cavalo
&lt;/h3&gt;

&lt;p&gt;Pontuação: 2&lt;br&gt;
Complexidade: Baixa&lt;br&gt;
Incerteza: Média&lt;br&gt;
Definição:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conhecemos a tecnologia&lt;/li&gt;
&lt;li&gt;Não temos dependência de outros times&lt;/li&gt;
&lt;li&gt;Regras de negócio não estão claras&lt;/li&gt;
&lt;li&gt;Alguém do time conhece as regras de negócio&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. Rinoceronte
&lt;/h3&gt;

&lt;p&gt;Ação: Refinar&lt;br&gt;
Pontuação: 3&lt;br&gt;
Complexidade: Baixa&lt;br&gt;
Incerteza: Alta&lt;br&gt;
Definição:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conhecemos a tecnologia&lt;/li&gt;
&lt;li&gt;Não temos dependência de outros times&lt;/li&gt;
&lt;li&gt;Regras de negócio confusas e/ou complexas&lt;/li&gt;
&lt;li&gt;Ninguém conhece as regras de negócio&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. Cavalo
&lt;/h3&gt;

&lt;p&gt;Pontuação: 5&lt;br&gt;
Complexidade: Média&lt;br&gt;
Incerteza: Baixa&lt;br&gt;
Definição:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alguém do time conhece a tecnologia&lt;/li&gt;
&lt;li&gt;Temos pouca dependência de outros times&lt;/li&gt;
&lt;li&gt;Regras de negócio bem definidas&lt;/li&gt;
&lt;li&gt;Todos conhecem as regras de negócio&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. Camelo
&lt;/h3&gt;

&lt;p&gt;Pontuação: 8&lt;br&gt;
Complexidade: Média&lt;br&gt;
Incerteza: Média&lt;br&gt;
Definição:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alguém do time conhece a tecnologia&lt;/li&gt;
&lt;li&gt;Temos pouca dependência de outros times&lt;/li&gt;
&lt;li&gt;Regras de negócio não estão claras&lt;/li&gt;
&lt;li&gt;Alguém do time conhece as regras de negócio&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  6. Girafa
&lt;/h3&gt;

&lt;p&gt;Ação: Refinar&lt;br&gt;
Pontuação: 13&lt;br&gt;
Complexidade: Média&lt;br&gt;
Incerteza: Alta&lt;br&gt;
Definição:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alguém do time conhece a tecnologia&lt;/li&gt;
&lt;li&gt;Temos pouca dependência de outros times&lt;/li&gt;
&lt;li&gt;Regras de negócio confusas e/ou complexas&lt;/li&gt;
&lt;li&gt;Ninguém conhece as regras de negócio&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  7. Rinoceronte
&lt;/h3&gt;

&lt;p&gt;Ação: Quebrar e Refinar&lt;br&gt;
Pontuação: 21&lt;br&gt;
Complexidade: Alta&lt;br&gt;
Incerteza: Baixa&lt;br&gt;
Definição:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ninguém do time conhece a tecnologia&lt;/li&gt;
&lt;li&gt;Temos dependência de outros times&lt;/li&gt;
&lt;li&gt;Regras de negócio bem definidas&lt;/li&gt;
&lt;li&gt;Todos conhecem as regras de negócio&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  8. Girafa
&lt;/h3&gt;

&lt;p&gt;Ação: Quebrar e Refinar&lt;br&gt;
Pontuação: 34&lt;br&gt;
Complexidade: Alta&lt;br&gt;
Incerteza: Média&lt;br&gt;
Definição:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ninguém do time conhece a tecnologia&lt;/li&gt;
&lt;li&gt;Temos dependência de outros times&lt;/li&gt;
&lt;li&gt;Regras de negócio não estão claras&lt;/li&gt;
&lt;li&gt;Alguém do time conhece as regras de negócio&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  9. Elefante
&lt;/h3&gt;

&lt;p&gt;Ação: Quebrar e Refinar&lt;br&gt;
Pontuação: 55&lt;br&gt;
Complexidade: Alta&lt;br&gt;
Incerteza: Alta&lt;br&gt;
Definição:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ninguém do time conhece a tecnologia&lt;/li&gt;
&lt;li&gt;Temos dependência de outros times&lt;/li&gt;
&lt;li&gt;Regras de negócio confusas e/ou complexas&lt;/li&gt;
&lt;li&gt;Ninguém conhece as regras de negócio&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Esse artigo foi gerado com o auxilio de uma IA Generativa&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Fontes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PM3&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>storypoint</category>
      <category>agile</category>
      <category>scrum</category>
      <category>kanban</category>
    </item>
    <item>
      <title>Iniciando na área de desenvolvimento (guia prático)</title>
      <dc:creator>Felipe 0liveira</dc:creator>
      <pubDate>Mon, 18 Nov 2024 13:38:03 +0000</pubDate>
      <link>https://dev.to/felipe0liveira/iniciando-na-area-de-desenvolvimento-4odp</link>
      <guid>https://dev.to/felipe0liveira/iniciando-na-area-de-desenvolvimento-4odp</guid>
      <description>&lt;p&gt;Entrar na área de desenvolvimento pode parecer desafiador no início. Com termos técnicos, múltiplas linguagens de programação, ferramentas e frameworks surgindo constantemente, é natural sentir-se perdido. No entanto, o desenvolvimento de software é uma carreira repleta de oportunidades, desafios empolgantes e possibilidades de crescimento.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Neste post, vamos compartilhar uma visão prática e acessível para quem está começando na área de desenvolvimento, com base em quase uma década de experiência em desenvolvimento Frontend e Fullstack. Nosso objetivo é ajudar você a entender o que é necessário para iniciar sua jornada, os primeiros passos que você deve dar e como se manter motivado ao longo do caminho.&lt;/p&gt;
&lt;/blockquote&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%2F8qyofdcgck1n8mu7r91j.gif" 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%2F8qyofdcgck1n8mu7r91j.gif" alt="John Travolta" width="480" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Mas por onde começar?
&lt;/h1&gt;

&lt;p&gt;Se você está pensando em entrar no mundo do desenvolvimento, o primeiro passo é entender as diferentes áreas dentro dessa carreira. Isso ajuda a decidir onde concentrar seus esforços inicialmente. Vamos explicar de forma prática e clara:&lt;/p&gt;




&lt;h3&gt;
  
  
  Frontend: A “cara” do software
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;O Frontend é a parte visível de um site ou aplicação, tudo o que o usuário interage diretamente. É como o “design funcional”, onde se criam botões, menus, animações e layouts bonitos e intuitivos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;O que faz um desenvolvedor Frontend?&lt;/strong&gt;&lt;br&gt;
Ele transforma designs (em ferramentas como Figma ou Photoshop) em código funcional, usando linguagens como HTML, CSS e JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplos práticos:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criar o botão de “comprar” em uma loja virtual.&lt;/li&gt;
&lt;li&gt;Fazer uma página se ajustar automaticamente a telas de celular (responsividade).&lt;/li&gt;
&lt;li&gt;Adicionar animações, como imagens que aparecem suavemente ao rolar a página.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se você gosta de combinar lógica com criatividade, o Frontend pode ser um ótimo ponto de partida.&lt;/p&gt;




&lt;h3&gt;
  
  
  Backend: O cérebro por trás da aplicação
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;O Backend é o que acontece “nos bastidores”. Ele cuida de tudo que o usuário não vê, como lógica, banco de dados e servidores.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;O que faz um desenvolvedor Backend?&lt;/strong&gt;&lt;br&gt;
Ele garante que os dados fluam corretamente, que as regras de negócio funcionem e que o sistema seja rápido e seguro. Linguagens como Python, Java, Node.js e PHP são comuns aqui.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplos práticos:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Salvar os dados de um formulário em um banco de dados.&lt;/li&gt;
&lt;li&gt;Processar pagamentos em um e-commerce.&lt;/li&gt;
&lt;li&gt;Implementar uma lógica para recomendar filmes ou produtos com base no perfil do usuário.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se você gosta de resolver problemas lógicos e trabalhar com dados, o Backend pode ser o caminho.&lt;/p&gt;




&lt;h3&gt;
  
  
  Fullstack: O "faz tudo"
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Um desenvolvedor Fullstack é como um “canivete suíço” da programação. Ele trabalha tanto no Frontend quanto no Backend, conectando os dois lados.&lt;/p&gt;
&lt;/blockquote&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%2Fjdcsdrhfvmv43endepy9.gif" 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%2Fjdcsdrhfvmv43endepy9.gif" alt="Mulher baquetando o ar" width="480" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que faz um desenvolvedor Fullstack?&lt;/strong&gt;&lt;br&gt;
Ele entende o suficiente de ambos os mundos para construir um sistema completo, desde a interface até a lógica e o banco de dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplos práticos:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criar um blog do zero: da página inicial ao armazenamento das postagens.&lt;/li&gt;
&lt;li&gt;Construir uma aplicação que mostre produtos e permita comprá-los, lidando com o design e o pagamento.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ser Fullstack é ideal para quem gosta de aprender um pouco de tudo e busca flexibilidade.&lt;/p&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%2Fnlpqbnitxrzkfw8l7hpn.gif" 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%2Fnlpqbnitxrzkfw8l7hpn.gif" alt="menina com duvida" width="400" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Qual escolher primeiro?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt; Se você gosta de design, interação visual e de ver resultados rápidos.&lt;br&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Se prefere lógica, trabalhar “nos bastidores” e lidar com dados.&lt;br&gt;
&lt;strong&gt;Fullstack:&lt;/strong&gt; Se quer explorar tudo e ter uma visão ampla (ideal para quem não sabe por onde começar).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Independentemente do caminho, o importante é dar o primeiro passo! O próximo tópico trará as ferramentas e linguagens essenciais para cada área.&lt;/em&gt; 🚀&lt;/p&gt;




&lt;h1&gt;
  
  
  JavaScript: O Alicerce da Web e Além
&lt;/h1&gt;

&lt;p&gt;Se existe uma linguagem de programação que todo iniciante deveria considerar, essa linguagem é o JavaScript. Extremamente versátil, o JavaScript (ou simplesmente JS) é uma das tecnologias mais utilizadas no desenvolvimento de software. Ele começou como a “linguagem da web”, mas hoje é muito mais do que isso, sendo uma poderosa ferramenta tanto para Frontend, Backend e até mesmo áreas além do desenvolvimento tradicional.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Por que aprender JavaScript?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Onipresença na Web:&lt;/strong&gt;&lt;br&gt;
Quase todos os sites que você acessa dependem de JavaScript. Ele é responsável por adicionar dinamismo e interatividade às páginas, como menus, animações e formulários que “respondem” ao usuário.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Versatilidade&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Com JavaScript, você pode desenvolver para diferentes plataformas:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt; Criar interfaces visuais com frameworks como React, Vue.js ou Angular.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend:&lt;/strong&gt; Construir servidores robustos usando Node.js.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aplicativos Mobile:&lt;/strong&gt; Desenvolver apps para Android e iOS com React Native.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aplicações Desktop:&lt;/strong&gt;&lt;br&gt;
Criar softwares multiplataforma com Electron.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inteligência Artificial e Data Science:&lt;/strong&gt;&lt;br&gt;
Sim, até áreas como IA estão sendo exploradas com bibliotecas JS, como TensorFlow.js.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comunidade e Recursos&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;O JavaScript tem uma comunidade global gigantesca. Isso significa que você encontrará muitos tutoriais, vídeos, fóruns e ferramentas gratuitas para aprender e resolver dúvidas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Alta Empregabilidade:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;JS é uma habilidade essencial para desenvolvedores Frontend e muito valorizada por Fullstack e Backend. Empresas de todos os tamanhos, de startups a gigantes como Google e Facebook, usam JavaScript em seus projetos.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  O Potencial do JavaScript
&lt;/h2&gt;

&lt;p&gt;Imagine que você quer construir um sistema completo. O JavaScript permite isso com as seguintes ferramentas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt; Com frameworks como React, você pode criar interfaces modernas e dinâmicas, como as que vemos em redes sociais ou e-commerces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend:&lt;/strong&gt; Usando Node.js, é possível criar servidores que processam milhões de solicitações por dia. Exemplo? A Netflix usa Node.js para parte de sua plataforma.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Banco de Dados:&lt;/strong&gt; O JavaScript trabalha bem com bancos de dados modernos como o MongoDB, que usa a mesma estrutura de objetos que o JS (JSON).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API e Integrações:&lt;/strong&gt; Você pode construir sistemas que se conectam com outros serviços, como gateways de pagamento, redes sociais ou sistemas internos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Projetos Criativos:&lt;/strong&gt; Com bibliotecas como Three.js, você pode criar experiências 3D para a web. Quer fazer jogos? Experimente o Phaser.js.&lt;/p&gt;




&lt;h2&gt;
  
  
  Começando com JavaScript
&lt;/h2&gt;

&lt;p&gt;Aqui está um plano inicial para explorar o JS:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Aprenda o básico:&lt;/strong&gt; Entenda variáveis, funções, loops e eventos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore o DOM:&lt;/strong&gt; Descubra como manipular elementos de uma página web.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crie pequenos projetos:&lt;/strong&gt; Um jogo simples, um cronômetro ou uma lista de tarefas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avance para frameworks:&lt;/strong&gt; Experimente React para o Frontend e Node.js para o Backend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aprofunde-se com APIs e bancos de dados:&lt;/strong&gt; Conecte suas aplicações ao mundo real.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;O JavaScript é a porta de entrada para muitas áreas do desenvolvimento e continua sendo uma das linguagens mais procuradas no mercado. Nos próximos tópicos, vamos falar sobre ferramentas práticas e dicas para você se aprofundar ainda mais. Seu futuro na tecnologia pode começar aqui!&lt;/p&gt;
&lt;/blockquote&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%2F2ik8me5bctekxez6veyn.gif" 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%2F2ik8me5bctekxez6veyn.gif" alt="seila, só achei no giphy memo" width="480" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chegamos ao final deste guia prático, e espero que você tenha se sentido inspirado(a) e mais preparado(a) para dar o primeiro passo na sua carreira em desenvolvimento. A tecnologia é um campo dinâmico, cheio de desafios e oportunidades, e o mais importante é começar, mesmo que pareça desafiador no início. Cada linha de código escrita é um passo em direção a um futuro cheio de possibilidades.&lt;/p&gt;

&lt;p&gt;Seja explorando o Frontend, o Backend ou se aventurando como Fullstack, lembre-se: a curiosidade e a prática constante são suas maiores aliadas. E, como vimos, o JavaScript é uma ferramenta poderosa para iniciar essa jornada, conectando você às várias possibilidades da programação.&lt;/p&gt;

&lt;p&gt;Agradeço por dedicar seu tempo à leitura deste post e por confiar nessa visão prática de quem já passou pelos desafios e conquistas dessa área. Agora é a sua vez de brilhar!&lt;/p&gt;

&lt;p&gt;👉 Compartilhe suas ideias! Tem dúvidas, quer compartilhar sua experiência ou até mesmo sugerir outros tópicos para explorarmos? Deixe um comentário! Vou adorar saber o que você pensa e ajudar na sua caminhada.&lt;/p&gt;

&lt;p&gt;Bem-vindo(a) à área de desenvolvimento! O mundo da tecnologia precisa de pessoas como você. 🌟&lt;/p&gt;

&lt;p&gt;Até a próxima...&lt;/p&gt;

&lt;p&gt;Autor: &lt;a href="https://github.com/felipe0liveira" rel="noopener noreferrer"&gt;Felipe Oliveira&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Liberar espaço deletando os node_modules/</title>
      <dc:creator>Felipe 0liveira</dc:creator>
      <pubDate>Mon, 17 Aug 2020 13:20:27 +0000</pubDate>
      <link>https://dev.to/felipe0liveira/liberar-espaco-deletando-os-nodemodules-nh8</link>
      <guid>https://dev.to/felipe0liveira/liberar-espaco-deletando-os-nodemodules-nh8</guid>
      <description>&lt;p&gt;Pra quem não sabe a pastinha node_modules, armazena todos os "modulos" e bibliotecas que usamos em nosso projeto, porém na maioria das vezes nós temos mais de 1 projeto que usam uma mesma dependência, na minha maquina em questão, tenho por volta de 40 repositórios que usam o &lt;code&gt;npm&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Por conta disso, tenho muito espaço sendo utilizado em disco e pra dar uma boa aliviada, uma alternativa super interessante é simplesmente apagar as pastas &lt;code&gt;node_modules&lt;/code&gt; de cada projeto.&lt;/p&gt;

&lt;p&gt;Para não precisar acessar cada diretório, basta abrir o seu terminal e ir para a pasta do seu workspace e rodar o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~ &lt;span class="nv"&gt;$ &lt;/span&gt;find &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-name&lt;/span&gt; node_modules &lt;span class="nt"&gt;-type&lt;/span&gt; d &lt;span class="nt"&gt;-print0&lt;/span&gt;|xargs &lt;span class="nt"&gt;-0&lt;/span&gt; &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; &lt;span class="nt"&gt;--&lt;/span&gt;
&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%2Fi%2Fba4lz5l2cgr64cgliz8g.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%2Fi%2Fba4lz5l2cgr64cgliz8g.png" alt="Terminal" width="697" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esse comando basicamente é dividido em duas partes, a primeira é responsável por procurar todos os diretórios com o nome &lt;code&gt;node_modules&lt;/code&gt; e retornar seu caminho completo para o segundo comando que tem a atribuição de deletar, a partir de um caminho e,&lt;/p&gt;

&lt;p&gt;All Done Galera!&lt;/p&gt;

&lt;p&gt;Espero ter ajudado &amp;lt;3&lt;/p&gt;

</description>
      <category>npm</category>
      <category>node</category>
      <category>modules</category>
      <category>linux</category>
    </item>
    <item>
      <title>Frontend - Testes E2E</title>
      <dc:creator>Felipe 0liveira</dc:creator>
      <pubDate>Tue, 14 Apr 2020 19:20:39 +0000</pubDate>
      <link>https://dev.to/felipe0liveira/frontend-testes-e2e-63g</link>
      <guid>https://dev.to/felipe0liveira/frontend-testes-e2e-63g</guid>
      <description>&lt;p&gt;Atualmente, são vários os motivos para implementar testes end-to-end em uma aplicação.&lt;/p&gt;

&lt;p&gt;Basicamente, o principal motivo de um teste automatizado é a prevenção de futuros problemas e bugs, que em muitos casos são invisíveis para o desenvolvedor, principalmente em grandes projetos.&lt;br&gt;
Outro cenário bem comum que os testes e2e se aplicam, são as execuções em massa como: cadastro, login, consulta, etc.&lt;/p&gt;

&lt;p&gt;Um teste &lt;strong&gt;e2e&lt;/strong&gt; permitirá testar todos os cenários, sendo eles válidos ou inválidos, em muito menos tempo que uma pessoa pode fazer.&lt;br&gt;
Dos frameworks disponibilizados atualmente, um dos mais famosos para &lt;strong&gt;JavaScript&lt;/strong&gt; é o &lt;strong&gt;Protractor&lt;/strong&gt; que, juntamente ao &lt;strong&gt;Jasmine&lt;/strong&gt;, entregará as ferramentas necessárias para cobrir com testes toda a sua aplicação.&lt;/p&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%2Fd2eip9sf3oo6c2.cloudfront.net%2Ftags%2Fimages%2F000%2F000%2F016%2Ffull%2Fprotractor.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%2Fd2eip9sf3oo6c2.cloudfront.net%2Ftags%2Fimages%2F000%2F000%2F016%2Ffull%2Fprotractor.png" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O &lt;a href="https://www.protractortest.org/" rel="noopener noreferrer"&gt;site oficial&lt;/a&gt; do &lt;strong&gt;Protractor&lt;/strong&gt; fornece uma ótima documentação que te ajudará a iniciar nesse mundo dos testes.&lt;br&gt;
Se você tem uma dúvida ou até mesmo uma observação, sinta-se à vontade para comentar esse post.&lt;/p&gt;

&lt;p&gt;E não se esqueça de aplicar &lt;a href="https://dev.to/felipe0liveira/sua-alma-na-documentacao-docsoul-25f6"&gt;&lt;strong&gt;DocSoul&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>e2e</category>
      <category>protractor</category>
      <category>javascript</category>
      <category>jasmine</category>
    </item>
    <item>
      <title>Sua alma na documentação - DocSoul</title>
      <dc:creator>Felipe 0liveira</dc:creator>
      <pubDate>Tue, 14 Apr 2020 19:19:39 +0000</pubDate>
      <link>https://dev.to/felipe0liveira/sua-alma-na-documentacao-docsoul-25f6</link>
      <guid>https://dev.to/felipe0liveira/sua-alma-na-documentacao-docsoul-25f6</guid>
      <description>&lt;p&gt;Em minha concepção, é necessário entender que ter &lt;em&gt;“boas práticas”&lt;/em&gt; não é como aprender uma nova linguagem e sim aplicar uma vertente de lógica visando um entendimento e manutenção futura de um código.&lt;/p&gt;

&lt;p&gt;O mais comum é quando um desenvolvedor precisa alterar uma aplicação que não foi codificada com &lt;em&gt;“boas práticas”&lt;/em&gt;, sendo necessário muitas vezes, refatorar e perder tempo com coisas que deveriam ser muito mais simples.&lt;/p&gt;

&lt;p&gt;Outra situação, é quando um desenvolvedor tem um projeto em desenvolvimento e decide parar a codificação para continuar futuramente.&lt;/p&gt;

&lt;p&gt;Se este desenvolvedor fez seu código utilizando boas práticas e até mesmo fazendo &lt;strong&gt;DocSoul&lt;/strong&gt;, terá um ganho de tempo, simplificando e agilizando seu trabalho.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nomenclatura de variáveis
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;É muito importante que você deixe que uma variável seja auto explicativa, ou seja, quando um Dev se deparar com ela, ele saberá exatamente o propósito da mesma.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Por exemplo, ao invés de utilizar:&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;elapsed&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Utilize:&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;daysSinceModification&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;agesOfUsers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jamais pense em usar:&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;nameString&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;theUsers&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quando somente o necessário é o melhor:&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;users&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Funções
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Uma função tem o propósito de nomenclatura muito semelhante ao de uma variável, portanto, deixe sua função nomeada de forma com que o desenvolvedor, ao acessar, saiba exatamente sua finalidade.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Por exemplo, imagine que temos uma função que convida um usuário, utilizando seu e-mail. Nesse caso, poderíamos fazer desta forma (uma das formas mais comuns):&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;conv&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;usuario&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;Basicamente, a abreviação ‘conv’ no nome da função acima significa ‘convidar’ e o parâmetro é chamado de ‘usuário’ pois identificará este por meio de seu email.&lt;br&gt;
Porém, o ideal seria fazer:&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;convidarUsuario&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;email&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;Desta maneira, a função tem um nome claro independente de onde for chamada!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ter boas práticas é somente o primeiro passo para ter organização, qualidade e eficiência em seus projetos. O ideal é conciliar com &lt;strong&gt;DocSoul&lt;/strong&gt;, que vai além das boas práticas, é uma cultura a ser desenvolvida e incentivada, tanto por desenvolvedores quanto pela empresa, deixando sua marca no documento, para que quando um desenvolvedor visualize seu código, além de entender a lógica e suas tomadas de decisões, reconheça e entenda que além da linha de raciocínio desenvolvida para aquele código, tem sua marca registrada.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Valeu pessoal!&lt;/p&gt;

</description>
      <category>documentacao</category>
      <category>javascript</category>
      <category>docsoul</category>
      <category>docummentation</category>
    </item>
    <item>
      <title>[MacOS] Biometria para 'sudo' no terminal</title>
      <dc:creator>Felipe 0liveira</dc:creator>
      <pubDate>Wed, 25 Mar 2020 17:04:23 +0000</pubDate>
      <link>https://dev.to/felipe0liveira/macos-biometria-para-sudo-no-terminal-3fpg</link>
      <guid>https://dev.to/felipe0liveira/macos-biometria-para-sudo-no-terminal-3fpg</guid>
      <description>&lt;h1&gt;
  
  
  Por que?
&lt;/h1&gt;

&lt;p&gt;Todos nós sabemos que para utilizar o sudo no terminal precisamos digitar nossa senha de super usuário ou admin. Não seria muito interessante se sempre que precisarmos usar nossa senha, pudessemos usar a biometria do nosso Macbook?&lt;/p&gt;

&lt;h1&gt;
  
  
  Para quem?
&lt;/h1&gt;

&lt;p&gt;Esse tutorial é válido somente para usuários dos Macbooks com Sensor Biométrico.&lt;/p&gt;

&lt;h1&gt;
  
  
  Como fazer?
&lt;/h1&gt;

&lt;p&gt;1 - Vamos abrir o arquivo &lt;code&gt;/etc/pam.d/sudo&lt;/code&gt; através do terminal utilizando o editor de sua preferência, no meu caso utilizarei o nano, que já vem por padrão instalado no MacOS a partir do comando: &lt;code&gt;sudo nano /etc/pam.d/sudo&lt;/code&gt;&lt;/p&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%2F8rdyi4z4161sbb060ncr.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%2F8rdyi4z4161sbb060ncr.png" alt="Evidência sudo original" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2 - Com o arquivo aberto, vamos adicionar uma nova forma de autenticação para ele por meio da linha &lt;code&gt;auth       sufficient     pam_tid.so&lt;/code&gt; que deve ser adicionada na segunda linha do arquivo&lt;/p&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%2F5mquxy1d1736aroid56h.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%2F5mquxy1d1736aroid56h.png" alt="Evidência pam_tid.so" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3 - Para fechar o arquivo basta pressionar &lt;code&gt;control + x&lt;/code&gt; (^X) em seguida digite &lt;code&gt;y&lt;/code&gt; para confirmar que quer salvar o arquivo e depois é só apertar &lt;code&gt;return&lt;/code&gt; para sobrescrever o arquivo atual.&lt;/p&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%2F9y6645y50damktfgsnxj.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%2F9y6645y50damktfgsnxj.png" alt="Evidência Salvar" width="800" height="67"&gt;&lt;/a&gt;&lt;/p&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%2Fxk4do34zniog84v8vd5i.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%2Fxk4do34zniog84v8vd5i.png" alt="Evidência Sobrescrever" width="800" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Obs.: Com tudo feito, não se esqueça de encerrar o terminal para que ele recarregue as configurações de permissão e então você pode validar a alteração com o comando &lt;code&gt;sudo echo hello&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;É isso pessoal, qualquer coisa é só comentar...&lt;/p&gt;

</description>
      <category>macos</category>
      <category>sudo</category>
      <category>fingerprint</category>
      <category>terminal</category>
    </item>
    <item>
      <title>Visual Studio Online - Minhas considerações</title>
      <dc:creator>Felipe 0liveira</dc:creator>
      <pubDate>Tue, 05 Nov 2019 08:33:16 +0000</pubDate>
      <link>https://dev.to/felipe0liveira/visual-studio-code-online-minhas-consideracoes-3pa3</link>
      <guid>https://dev.to/felipe0liveira/visual-studio-code-online-minhas-consideracoes-3pa3</guid>
      <description>&lt;p&gt;Vejo como um enorme passo para a galera &lt;strong&gt;dev&lt;/strong&gt;, principalmente aqueles que trabalham com múltiplos &lt;strong&gt;ambientes&lt;/strong&gt; e em múltiplos &lt;strong&gt;dispositivos&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Já vejo a alta possibilidade de ser &lt;strong&gt;produtivo&lt;/strong&gt; utilizando um &lt;strong&gt;tablet&lt;/strong&gt;, o real desenvolvimento por meio de alguma plataforma &lt;strong&gt;mobile&lt;/strong&gt; parece estar crescendo de uma forma muito concreta.&lt;/p&gt;

&lt;p&gt;Segue um dos posts falando sobre o &lt;a href="https://devblogs.microsoft.com/visualstudio/announcing-visual-studio-online-public-preview/" rel="noopener noreferrer"&gt;#vsonline&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bora discutir sobre galera...&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>vsonline</category>
      <category>developmnt</category>
    </item>
    <item>
      <title>CSS Buttons - Dopamina</title>
      <dc:creator>Felipe 0liveira</dc:creator>
      <pubDate>Mon, 26 Aug 2019 08:39:59 +0000</pubDate>
      <link>https://dev.to/felipe0liveira/css-buttons-dopamine-3ehj</link>
      <guid>https://dev.to/felipe0liveira/css-buttons-dopamine-3ehj</guid>
      <description>&lt;p&gt;O que nos precisamos fazer, como desenvolvedores, designers, project owners, etc.&lt;/p&gt;

&lt;p&gt;É satisfazer o usuário em cada passo que ele avança dentro da aplicação, sendo desde um login, até uma aprovação.&lt;/p&gt;

&lt;p&gt;É claro que existem muitas formas de fazer isso, a questão é que muitas vezes podemos dar esse gostinho de dopamina totalmente satisfatória com simples botões.&lt;/p&gt;




&lt;h2&gt;
  
  
  Upload buttons
&lt;/h2&gt;

&lt;p&gt;💡&lt;strong&gt;Tips:&lt;/strong&gt; submit, survey, file upload, to shop...&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/iremlopsum/embed/MwrpMK?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/davidmogar/embed/XXJXVE?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Floating action button (FAB)
&lt;/h2&gt;

&lt;p&gt;💡&lt;strong&gt;Tips:&lt;/strong&gt; quick actions, social media, main menu...&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/CSS3fx/embed/RNYaoE?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Pre action button
&lt;/h2&gt;

&lt;p&gt;💡&lt;strong&gt;Tips:&lt;/strong&gt; delete, confirm, submit...&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/YikesItsMikes/embed/zGOELd?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Slide dopamine
&lt;/h2&gt;

&lt;p&gt;💡&lt;strong&gt;Tips:&lt;/strong&gt; delete submit, to shop...&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/chrisdothtml/embed/xbmddV?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Share buttons
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tips:&lt;/strong&gt; quick actions, social networks, menu...&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/keithchis/embed/QjoqRO?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Comenta aí qual é sua animação favorita.&lt;/p&gt;

&lt;p&gt;Espero que tenha gostado 🤘&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>css</category>
      <category>buttons</category>
      <category>design</category>
    </item>
  </channel>
</rss>
