<?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: Kauê Fraga Rodrigues</title>
    <description>The latest articles on DEV Community by Kauê Fraga Rodrigues (@kauefraga).</description>
    <link>https://dev.to/kauefraga</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%2F827103%2Fa8194247-c8ac-4861-8833-826b05c40e85.png</url>
      <title>DEV Community: Kauê Fraga Rodrigues</title>
      <link>https://dev.to/kauefraga</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kauefraga"/>
    <language>en</language>
    <item>
      <title>Conhecendo o Node JS</title>
      <dc:creator>Kauê Fraga Rodrigues</dc:creator>
      <pubDate>Sat, 26 Oct 2024 21:12:01 +0000</pubDate>
      <link>https://dev.to/kauefraga/revisando-node-js-90a</link>
      <guid>https://dev.to/kauefraga/revisando-node-js-90a</guid>
      <description>&lt;p&gt;Neste final de semana eu decidi revisar um pouco sobre o JavaScript e o Node. Isso porque eu esbarrei na definição enquanto testava um &lt;a href="https://diciotech.netlify.app/" rel="noopener noreferrer"&gt;projeto que apareceu no feed do meu GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Também planejo estudar alguns tópicos como o event loop e as promises mais profundamente, então uma revisão cai muito bem.&lt;/p&gt;

&lt;p&gt;Aqui vão minhas anotações.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é Node.js
&lt;/h2&gt;

&lt;p&gt;É um ambiente (runtime) que permite a execução de JavaScript pelo lado do servidor. Com ele é possível criar aplicações que executam fora do navegador (aplicações back end, mobile, desktop...).&lt;/p&gt;

&lt;p&gt;Só pra relembrar, JavaScript é uma linguagem de programação interpretada e multiparadigma criada para adicionar interatividade nas páginas web, ou seja, ela foi desenvolvida com o intuito de ser usada no navegador.&lt;/p&gt;

&lt;p&gt;Foi o Node que trouxe essa possibilidade de executar JavaScript fora do navegador.&lt;/p&gt;

&lt;p&gt;Hoje em dia já existem outros ambientes de execução de JavaScript como Deno ou Bun, mas o Node foi o pioneiro, lançado em 2009.&lt;/p&gt;

&lt;p&gt;A capacidade de desenvolver tanto o front end quanto o back end de uma aplicação usando apenas uma linguagem de programação é fantástica. É uma das grandes vantagens do JavaScript, embora alguns profissionais questionem a utilização no lado do servidor. &lt;/p&gt;

&lt;p&gt;Pensando no lema "Write once, run anywhere" do Java, temos o nosso: &lt;strong&gt;learn once, run everywhere&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;O Node é baseado no &lt;a href="https://nodejs.org/en/learn/getting-started/the-v8-javascript-engine" rel="noopener noreferrer"&gt;motor V8&lt;/a&gt;, que é o mesmo do Google Chrome, ele que lê e executa o código JavaScript no navegador. Uma característica importante é que um motor JavaScript é independente do navegador em que ele executa, essa característica foi o que permitiu a criação do Node e dos outros ambientes.&lt;/p&gt;

&lt;p&gt;Existem outros motores de JavaScript:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://spidermonkey.dev/" rel="noopener noreferrer"&gt;SpiderMonkey&lt;/a&gt;, usado pelo Firefox&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.webkit.org/Deep%20Dive/JSC/JavaScriptCore.html" rel="noopener noreferrer"&gt;JavaScriptCore&lt;/a&gt;, utilizado pelo Safari e pelo Bun&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chakra-core/ChakraCore" rel="noopener noreferrer"&gt;Chakra&lt;/a&gt;, era usado pelo Edge, que usa o motor &lt;a href="https://support.microsoft.com/en-us/help/4501095/download-the-new-microsoft-edge-based-on-chromium" rel="noopener noreferrer"&gt;V8 atualmente&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eu disse anteriormente que o JavaScript é considerado uma linguagem interpretada, porém os motores possuem uma etapa de compilação just-in-time (JIT), levando-o a ser uma linguagem interpretada e compilada.&lt;/p&gt;

&lt;p&gt;Importante ressaltar que o Node não tem acesso as APIs de manipulação do DOM, &lt;code&gt;window&lt;/code&gt;, &lt;code&gt;localStorage&lt;/code&gt;, etc. No lugar dessas ele tem sua biblioteca padrão que permite ter acesso ao sistema de arquivos, escutar requisições HTTP, gerar UUIDs, emitir eventos e tantas outras coisas.&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="c1"&gt;// ❌&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;element&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;js-in-server&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// ✅&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;js-is-really-cool.md&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;utf-8&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;content&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;O Node vem equipado com o gerenciador de pacotes NPM (Node Package Manager) que serve para organizar, instalar e resolver as dependências de projetos. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/" rel="noopener noreferrer"&gt;NPM&lt;/a&gt; também é o registrador de pacotes padrão, é onde as bibliotecas e frameworks são registrados para serem utilizados posteriormente.&lt;/p&gt;

&lt;p&gt;Só para esclarecer, existe a ferramenta de gerenciamento de pacotes NPM e o registrador desses pacotes, que também se chama NPM. &lt;a href="https://docs.npmjs.com/about-npm" rel="noopener noreferrer"&gt;Mais sobre aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Alternativas à ferramenta são &lt;a href="https://yarnpkg.com/" rel="noopener noreferrer"&gt;yarn&lt;/a&gt; e &lt;a href="https://pnpm.io/" rel="noopener noreferrer"&gt;pnpm&lt;/a&gt;. O ambiente &lt;a href="https://bun.sh/docs/cli/install" rel="noopener noreferrer"&gt;Bun também tem um gerenciador de pacotes&lt;/a&gt; compatível com o Node e que tem a proposta de ser o substituto mais rápido entre as opções que citei antes.&lt;/p&gt;

&lt;p&gt;Falando do registrador, esse ano surgiu uma espécie de alternativa moderna que diz ser feita para especialmente pensando em Typescript e ESM, o &lt;a href="https://jsr.io/" rel="noopener noreferrer"&gt;JSR&lt;/a&gt;. Só a título de conhecimento, continuo usando e recomendo o NPM.&lt;/p&gt;

&lt;p&gt;Resumindo, se você está começando seus estudos de JavaScript e Node, &lt;strong&gt;use o Node e o NPM&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Depois você decide se vai usar o yarn porque é mais bonitinho, o pnpm pois é mais rápido ou o Bun porque é o melhor (🔥).&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Node
&lt;/h2&gt;

&lt;p&gt;Na instalação você pode seguir o &lt;a href="https://nodejs.org/en/download/prebuilt-installer" rel="noopener noreferrer"&gt;tutorial do site&lt;/a&gt; mas eu recomendo usar um gerenciador de versões porque vai facilitar bastante caso você precise trocar de versão.&lt;/p&gt;

&lt;p&gt;Acredito que esses sejam os principais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/nvm-sh/nvm" rel="noopener noreferrer"&gt;nvm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Schniz/fnm" rel="noopener noreferrer"&gt;fnm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://volta.sh/" rel="noopener noreferrer"&gt;volta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tj/n" rel="noopener noreferrer"&gt;n&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eu uso o &lt;a href="https://asdf-vm.com/guide/getting-started.html" rel="noopener noreferrer"&gt;asdf&lt;/a&gt; junto com o &lt;a href="https://github.com/asdf-vm/asdf-nodejs" rel="noopener noreferrer"&gt;plugin do node&lt;/a&gt;. O asdf é um gerenciador de versões genérico, com ele basta adicionar o plugin da ferramenta/runtime que você quer gerenciar e pronto.&lt;/p&gt;

&lt;p&gt;Prefiro não colocar nada aqui para que não fique desatualizado, minha dica é: use um gerenciador de versões. Abra a documentação dos que citei e leia.&lt;/p&gt;

&lt;h2&gt;
  
  
  Novas funcionalidades
&lt;/h2&gt;

&lt;p&gt;Não são novas novas, mas são legais e não existem desde o começo. Perdão pelo bait...&lt;/p&gt;

&lt;p&gt;Tem um arquivo &lt;code&gt;.env&lt;/code&gt; e quer carregar os valores? &lt;a href="https://nodejs.org/en/learn/command-line/how-to-read-environment-variables-from-nodejs" rel="noopener noreferrer"&gt;Carregamento de variáveis de ambiente&lt;/a&gt;.&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="c1"&gt;// Digamos que você tenha a váriavel SECRET_KEY=jsmelhorquejava&lt;/span&gt;

&lt;span class="c1"&gt;// $ node env.js&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SECRET_KEY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// undefined&lt;/span&gt;

&lt;span class="c1"&gt;// $ node --env-file=.env env.js&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SECRET_KEY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// jsmelhorquejava&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quer escrever testes sem ter que adicionar dependências como &lt;a href="https://jestjs.io/" rel="noopener noreferrer"&gt;Jest&lt;/a&gt;, &lt;a href="https://mochajs.org/" rel="noopener noreferrer"&gt;Mocha&lt;/a&gt; ou &lt;a href="https://vitest.dev/" rel="noopener noreferrer"&gt;Vitest&lt;/a&gt;? O executor de testes nativo foi introduzido de &lt;a href="https://nodejs.org/docs/latest-v20.x/api/test.html" rel="noopener noreferrer"&gt;forma estável na versão 20.x&lt;/a&gt; .&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;assert&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;assert&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;it&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;describe&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;test&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="nf"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user entity&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;it&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;should create user instance&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&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;Quer executar TypeScript? Usa Bun! Brincadeiras à parte, é possível executar código &lt;code&gt;.ts&lt;/code&gt; usando Node, &lt;a href="https://nodejs.org/en/learn/typescript/run-natively" rel="noopener noreferrer"&gt;ainda experimental&lt;/a&gt;.&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="c"&gt;# Usando o Node V22.6.0 pra cima&lt;/span&gt;
node &lt;span class="nt"&gt;--experimental-strip-types&lt;/span&gt; tsisawesome.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por enquanto é isso, pretendo ir atualizando essa revisão pra cobrir mais alguns tópicos que vou revisar, além do que é event loop e sua importância.&lt;/p&gt;

&lt;p&gt;Um fato divertido é que eu desenvolvi meu primeiro servidor HTTP usando Node e foi com ele que descobri que gostava de desenvolvimento back end, um caminho sem volta.&lt;/p&gt;

&lt;p&gt;Obrigado por ler!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>node</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Open source, learn in public e minha experiência</title>
      <dc:creator>Kauê Fraga Rodrigues</dc:creator>
      <pubDate>Mon, 21 Oct 2024 02:33:54 +0000</pubDate>
      <link>https://dev.to/kauefraga/open-source-learn-in-public-e-minha-experiencia-bd2</link>
      <guid>https://dev.to/kauefraga/open-source-learn-in-public-e-minha-experiencia-bd2</guid>
      <description>&lt;p&gt;Tudo certo? Quero começar a semana fomentando as iniciativas de projetos públicos e trazer um pouco da minha experiência construindo projetos open source.&lt;/p&gt;

&lt;p&gt;Vamos começar colocando os pingos nos is.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é &lt;em&gt;open source&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Open source significa "código aberto" e é uma corrente no mundo da tecnologia que busca a &lt;strong&gt;construção transparente&lt;/strong&gt; e &lt;strong&gt;colaborativa&lt;/strong&gt; de software. É possível ver o código fonte de um &lt;strong&gt;projeto open source&lt;/strong&gt;, entendê-lo, sugerir alterações ou fazê-las por conta própria, entre outras possibilidades.&lt;/p&gt;

&lt;p&gt;Alguns projetos open source:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O conhecido kernel &lt;a href="https://github.com/torvalds/linux" rel="noopener noreferrer"&gt;Linux&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;O sistema de versionamento de código mais utilizado, &lt;a href="https://github.com/git/git" rel="noopener noreferrer"&gt;git&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zen-browser" rel="noopener noreferrer"&gt;Zen browser&lt;/a&gt;, um recente navegador baseado no Firefox&lt;/li&gt;
&lt;li&gt;A rede social &lt;a href="https://github.com/bluesky-social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;O emulador de terminal que uso, &lt;a href="https://github.com/wez/wezterm" rel="noopener noreferrer"&gt;WezTerm&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;E a lista segue. Quantas aplicações e ferramentas que você usa são open source?&lt;/p&gt;

&lt;p&gt;O GitHub é uma plataforma de hospedagem de software (código e afins) que é bastante usada pela comunidade open source porque&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Usa Git&lt;/li&gt;
&lt;li&gt;Tem ótimas ferramentas&lt;/li&gt;
&lt;li&gt;Tem várias funcionalidades que facilitam o trabalho colaborativo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Outro ponto importante, um projeto open source deve ter uma &lt;a href="https://choosealicense.com/" rel="noopener noreferrer"&gt;licença&lt;/a&gt; que restrinja o acesso e as modificações do código para proteger os criadores, contribuidores e até mesmo os usuários.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é &lt;em&gt;learn in public&lt;/em&gt; e &lt;em&gt;build in public&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Learn in public, aprenda em público ou aprendizado público é a &lt;strong&gt;prática de compartilhar a sua jornada de aprendizado&lt;/strong&gt;. É ir na sua rede social favorita e postar isso&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Estou aprendendo x! O conceito y é bem simples mas o z me pegou, alguém pode me ajudar?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Não tenha vergonha! Você vai ter diferentes respostas, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Que legal! Também estou aprendendo x, porém não entendi o conceito y ainda..."&lt;/li&gt;
&lt;li&gt;"Isso é fácil demais, como você não compreende?"&lt;/li&gt;
&lt;li&gt;"O artigo w me ajudou a entender z, dá uma olhada."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O importante é você saber extrair o melhor disso.&lt;/p&gt;

&lt;p&gt;Caso alguém se identifique e diga que não sabe algum tópico que você compreende (um pouco pelo menos), tente explicar da melhor forma que conseguir. &lt;strong&gt;Ensinar é uma das melhores formas de reforçar o conhecimento&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Se a pessoa te oferece ajuda ou mentoria, aproveite, agradeça e pergunte.&lt;/p&gt;

&lt;p&gt;Se alguém for rude ou insensível, pergunte qual foi o erro ou simplesmente ignore/bloqueie.&lt;/p&gt;

&lt;p&gt;Não tenha medo de errar. Se você errar, vão te corrigir e você vai aprender também.&lt;/p&gt;

&lt;p&gt;Vale ressaltar que você não tem só sua rede social pra ser público. Mantenha um blog, comece uma newsletter, poste vídeos no YouTube, faça live na Twitch...&lt;/p&gt;

&lt;p&gt;Build in public ou construa em público é uma especialização do aprendizado público, nele você expõe as dificuldades, erros e aprendizados que você teve na construção de um projeto pessoal ou profissional.&lt;/p&gt;

&lt;p&gt;É uma maneira orgânica e funcional de converter &lt;em&gt;leads&lt;/em&gt;, atrair investidores e criar marca. Um bom exemplo disso é a &lt;a href="https://www.alertpix.live/" rel="noopener noreferrer"&gt;alertpix&lt;/a&gt; do &lt;a href="https://www.youtube.com/@daniellimae" rel="noopener noreferrer"&gt;Daniel&lt;/a&gt; e do &lt;a href="https://bsky.app/profile/horadecodar.dev" rel="noopener noreferrer"&gt;Christopher&lt;/a&gt; que cresceu bastante por conta das publicações no Twitter/X, Instagram e TikTok.&lt;/p&gt;

&lt;p&gt;Pra mim, dois benefícios absurdos de todo esse processo de compartilhar, ensinar, construir, errar e ser ensinado (além do aprendizado) são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Documentação do teu processo. Você cria um histórico, uma trajetória visível que pode ser acompanhada ou revivida no futuro.&lt;/li&gt;
&lt;li&gt;Visibilidade. As pessoas se identificam, querem acompanhar seu progresso e você pode acabar virando referência em determinado assunto.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A visibilidade não é o objetivo, você não deve esperar likes, mas é verdade que ela também aumenta sua "sorte". Inclusive, uma vez li no blog do GitHub um artigo muito bom sobre como publicar o seu trabalho aumenta sua "sorte", &lt;a href="https://github.com/readme/guides/publishing-your-work" rel="noopener noreferrer"&gt;"Publishing your work increases your luck"&lt;/a&gt;, um trecho a seguir:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For every snarky comment, there are 10x as many people admiring your work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Como o criador do movimento descreveu em &lt;a href="https://www.swyx.io/learn-in-public" rel="noopener noreferrer"&gt;"Learn In Public"&lt;/a&gt;, o aprendizado público é o &lt;strong&gt;jeito mais rápido de aprender&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Por que praticar o learn in public (tl;dr)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Acelera seu aprendizado&lt;/li&gt;
&lt;li&gt;Ajuda a criar conexões, o famoso &lt;em&gt;networking&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Contribui para o aprendizado alheio&lt;/li&gt;
&lt;li&gt;Novas oportunidades como consequência da visibilidade&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Como praticar
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Construindo um projeto open source (e divulgando ele)&lt;/li&gt;
&lt;li&gt;Postando um vídeo no YouTube explicando um conceito&lt;/li&gt;
&lt;li&gt;Postando um vídeo ensinando como criar um projeto usando uma tecnologia específica&lt;/li&gt;
&lt;li&gt;Mantendo um blog e escrevendo sobre a construção dos seus projetos, seu dia a dia, suas filosofias sobre software&lt;/li&gt;
&lt;li&gt;Criando um canal na Twitch e fazendo stream construindo software e explicando (live coding)&lt;/li&gt;
&lt;li&gt;Postando vídeos curtos no YouTube ou TikTok dando dicas rápidas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A verdade é que existem muitas maneiras de praticar o learn in public, se você está aprendendo e tornando seu aprendizado público em alguma plataforma/rede social, você está praticando o learn in public.&lt;/p&gt;

&lt;p&gt;Existem várias soluções de blogging como &lt;a href="https://substack.com/" rel="noopener noreferrer"&gt;Substack&lt;/a&gt;, &lt;a href="https://medium.com/" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;, &lt;a href="https://hashnode.com/" rel="noopener noreferrer"&gt;Hashnode&lt;/a&gt;, &lt;a href="https://wordpress.com/pt-br/create-blog/" rel="noopener noreferrer"&gt;WordPress&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;Também existem diversos fóruns onde você pode publicar seus escritos, tipo o &lt;a href="https://www.tabnews.com.br/" rel="noopener noreferrer"&gt;TabNews&lt;/a&gt;, &lt;a href="https://dev.to/"&gt;dev.to&lt;/a&gt; e o &lt;a href="https://www.reddit.com/" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Não esqueça das redes sociais: Twitter/X, Bluesky, Instagram, TikTok, YouTube, Twitch, LinkedIn...&lt;/p&gt;

&lt;h2&gt;
  
  
  Unindo learn in public e open source
&lt;/h2&gt;

&lt;p&gt;Não tem segredo, começar um projeto open source por si só já é praticar o learn in public, a questão é maximizar o alcance dos seus projetos por meio das redes sociais que você usa.&lt;/p&gt;

&lt;p&gt;Quando iniciei meus estudos de desenvolvimento web optei por estudar sozinho, sem falar publicamente sobre, isso em meados de 2021.&lt;/p&gt;

&lt;p&gt;Eu fiquei quase 3 anos na "caverna" e em 2024, quando decidi criar minha conta no Twitter e interagir diretamente com a comunidade dev, minha carreira começou.&lt;/p&gt;

&lt;p&gt;O "boom" da minha integração com a bolha dev foi durante a &lt;a href="https://github.com/zanfranceschi/rinha-de-backend-2024-q1" rel="noopener noreferrer"&gt;segunda edição da Rinha de Backend&lt;/a&gt;, uma competição de soluções back end. Nesse evento compartilhei o desenvolvimento da minha solução, meu aprendizado da linguagem Go e participei de várias discussões sobre o desafio.&lt;/p&gt;

&lt;p&gt;Desde de então postei sobre meus projetos pessoais, estudos e códigos.&lt;/p&gt;

&lt;p&gt;Depois disso fui contratado para fazer uma modificação em um blog sobre computarias e recebi um convite valioso para trabalhar em um projeto confidencial.&lt;/p&gt;

&lt;p&gt;Eu concordo que as oportunidades vieram ao acaso, mas acredito que ser mais público influenciou minha "sorte". Sou grato a isso, ao learn in public, as pessoas que me impulsionaram e as pessoas que interagi e agregaram de alguma forma.&lt;/p&gt;

&lt;p&gt;Sobre os projetos que eu construí publicamente, gostaria de ressaltar&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/kauefraga?tab=repositories&amp;amp;q=learning" rel="noopener noreferrer"&gt;Os repositórios aprendendo alguma tecnologia&lt;/a&gt;, onde eu documentei vários tópicos que aprendi sobre as tecnologias&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kauefraga/esquilo-aniquilador" rel="noopener noreferrer"&gt;Esquilo Aniquilador&lt;/a&gt; - minha solução da segunda edição da Rinha de Backend&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kauefraga/ruke" rel="noopener noreferrer"&gt;ruke&lt;/a&gt; - uma ferramenta para executar comandos configurados em um projeto, inspirada no &lt;a href="https://www.gnu.org/software/make/" rel="noopener noreferrer"&gt;GNU Make&lt;/a&gt; e &lt;a href="https://github.com/casey/just" rel="noopener noreferrer"&gt;just&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kauefraga/themis" rel="noopener noreferrer"&gt;themis&lt;/a&gt; - analisador de perfil do Bluesky, conta 7 contribuidores atualmente&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enfatizei esses porque foram os que eu mais divulguei e tive um feedback bacana. Eu normalmente crio meus projetos públicos e com licença MIT, porém esses escolhidos se sobressaem.&lt;/p&gt;

&lt;p&gt;Obrigado por ter lido! Espero que tenha te ajudado de alguma maneira.&lt;/p&gt;

&lt;p&gt;Onde me encontrar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://www.linkedin.com/in/kauefraga/" rel="noopener noreferrer"&gt;kauefraga&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/kauefraga" rel="noopener noreferrer"&gt;kauefraga&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Bluesky: &lt;a href="https://bsky.app/profile/kauefraga.dev" rel="noopener noreferrer"&gt;kauefraga.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Twitter/X: &lt;a href="https://x.com/rkauefraga" rel="noopener noreferrer"&gt;rkauefraga&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dev.to: &lt;a href="https://dev.to/kauefraga"&gt;kauefraga&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;TabNews: &lt;a href="https://www.tabnews.com.br/kauefraga/conteudos/1" rel="noopener noreferrer"&gt;kauefraga&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Referências:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.redhat.com/pt-br/topics/open-source/what-is-open-source" rel="noopener noreferrer"&gt;RedHat - "O que é open source?"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/he4rt/open-source-e-software-livre-conheca-e-entenda-de-uma-vez-por-todas-o-que-cada-um-significa-15in"&gt;He4rt Developers - "Open Source e Software Livre"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.swyx.io/learn-in-public" rel="noopener noreferrer"&gt;Shawn Wang (swyx) - "Learn In Public"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/devrelbr/aplicando-o-learn-in-public-na-vida-real-3027"&gt;Beatriz Oliveira - "Aplicando o Learn In Public na Vida Real"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://spacecoding.substack.com/p/deploy-na-sexta-010-o-que-e-learn" rel="noopener noreferrer"&gt;Giulia Bordignon - "Deploy na Sexta #010: O que é learn in public?"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/readme/guides/publishing-your-work" rel="noopener noreferrer"&gt;Aaron Francis - "Publishing your work increases your luck"&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>braziliandevs</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Desbravando o poder do markdown</title>
      <dc:creator>Kauê Fraga Rodrigues</dc:creator>
      <pubDate>Mon, 12 Aug 2024 20:56:35 +0000</pubDate>
      <link>https://dev.to/kauefraga/desbravando-o-poder-do-markdown-3jne</link>
      <guid>https://dev.to/kauefraga/desbravando-o-poder-do-markdown-3jne</guid>
      <description>&lt;p&gt;Salve, salve! Vamos aprofundar nossos conhecimentos em markdown.&lt;/p&gt;

&lt;p&gt;Este é o quarto capítulo de uma série sobre markdown, caso queira ler os capítulos anteriores&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://dev.to/kauefraga/aprenda-a-fazer-um-readme-4n36"&gt;Introdução ao markdown e aos READMEs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/kauefraga/personalizando-o-readme-do-seu-projeto-51jm"&gt;Personalizando o README do seu projeto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/kauefraga/personalizando-o-readme-do-seu-perfil-do-github-52ke"&gt;Personalizando o README do seu perfil do GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sem mais delongas, bora pro markdown!&lt;/p&gt;

&lt;h2&gt;
  
  
  Lista de tarefas
&lt;/h2&gt;

&lt;p&gt;Você deve conhecer as listas ordenadas e não-ordenadas, correto?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fulano&lt;/li&gt;
&lt;li&gt;ciclano&lt;/li&gt;
&lt;li&gt;beltrano&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;item&lt;/li&gt;
&lt;li&gt;item&lt;/li&gt;
&lt;li&gt;item&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;E se eu te dissesse que é possível fazer uma lista com marcações?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt; [x] tarefa x
&lt;span class="p"&gt;-&lt;/span&gt; [ ] tarefa y
&lt;span class="p"&gt;-&lt;/span&gt; [ ] tarefa z
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;[x] tarefa x&lt;/li&gt;
&lt;li&gt;[ ] tarefa y&lt;/li&gt;
&lt;li&gt;[ ] tarefa z&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tabelas
&lt;/h2&gt;

&lt;p&gt;Com linhas e colunas, uma tabela pode melhor a visualização e facilitar a busca de informações.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;| Coluna 1 | Coluna 2 | Coluna 3 |
|----------|----------|----------|
| Item 1   | Item 1   | Item 1   |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resultado:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Coluna 1&lt;/th&gt;
&lt;th&gt;Coluna 2&lt;/th&gt;
&lt;th&gt;Coluna 3&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Item 1&lt;/td&gt;
&lt;td&gt;Item 1&lt;/td&gt;
&lt;td&gt;Item 1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Você pode escolher como os textos ficam alinhados e usar os estilos de texto dentro da tabela também.&lt;/p&gt;

&lt;p&gt;Coloque &lt;code&gt;:&lt;/code&gt; no início do divisor e as células vão ficar alinhadas à esquerda. No final, alinhadas à direita. E se você colocar &lt;code&gt;:&lt;/code&gt; no início e no fim do divisor o texto vai ficar centralizado.&lt;/p&gt;

&lt;p&gt;Um exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;| Nome completo  |         Idade |
|:--------------:|--------------:|
|  João &lt;span class="sb"&gt;`Silva`&lt;/span&gt;  | &lt;span class="nt"&gt;&amp;lt;kbd&amp;gt;&lt;/span&gt;27&lt;span class="nt"&gt;&amp;lt;/kbd&amp;gt;&lt;/span&gt; |
| Ana &lt;span class="ge"&gt;*Carvalho*&lt;/span&gt; |            20 |
| Beatriz Souza  |        &lt;span class="gs"&gt;**35**&lt;/span&gt; |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nome completo&lt;/th&gt;
&lt;th&gt;Idade&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;João &lt;code&gt;Silva&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ana &lt;em&gt;Carvalho&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Beatriz Souza&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;35&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A tag &lt;code&gt;kbd&lt;/code&gt; serve pra mostrar entradas do teclado, veja mais na &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd" rel="noopener noreferrer"&gt;documentação da mdn sobre kbd&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Sobre tabelas é isso, bem simples, não?&lt;/p&gt;

&lt;p&gt;A formatação das tabelas no markdown pode dificultar bastante a leitura, então tente sempre manter as tabelas bem formatadas.&lt;/p&gt;

&lt;p&gt;Uma dica pra quem usa o Visual Studio Code: instale a extensão &lt;a href="https://marketplace.visualstudio.com/items?itemName=darkriszty.markdown-table-prettify" rel="noopener noreferrer"&gt;Markdown Table Prettifier&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vídeos
&lt;/h2&gt;

&lt;p&gt;Colocar uma demonstração visual de um conceito ou projeto pode ser poderoso, mas nem todos os processadores de markdown tem uma sintaxe pronta pra isso.&lt;/p&gt;

&lt;p&gt;A forma mais simples e totalmente compatível é usando HTML puro.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;align=&lt;/span&gt;&lt;span class="s"&gt;"center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;video&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"320"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"240"&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"video.mp4"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"video/mp4"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/video&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;esta é a legenda do vídeo (caption)&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;br&gt;
    &lt;br&gt;
  &lt;br&gt;
  &lt;/p&gt;
&lt;p&gt;sim, não tem um vídeo -_-&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;div&lt;/code&gt; para centralizar e o parágrafo (&lt;code&gt;p&lt;/code&gt;) não são necessários, você pode remover caso queira. Recomendo que dê uma olhada na &lt;a href="https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/video" rel="noopener noreferrer"&gt;documentação da tag &lt;code&gt;video&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Não testei mas quero compartilhar que de acordo com uma &lt;a href="https://github.blog/news-insights/product-news/video-uploads-available-github/" rel="noopener noreferrer"&gt;postagem no blog do GitHub&lt;/a&gt; é possível apenas colocar um link que termine com a extensão mp4 ou mov e o GitHub cuida da renderização para você.&lt;/p&gt;

&lt;p&gt;Outra forma de expor uma demonstração é usando um gif, que foi o que eu fiz no projeto &lt;a href="https://github.com/kauefraga/ruke#ruke" rel="noopener noreferrer"&gt;Ruke&lt;/a&gt; (porque eu não conhecia a tag &lt;code&gt;video&lt;/code&gt;). Você converte o vídeo para o formato gif usando uma plataforma ou ferramenta e usa a sintaxe de imagem.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;texto alternativo&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;demonstracao.gif&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tenha em mente que gifs têm a qualidade reduzida e ausência de áudio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Notas de rodapé (&lt;em&gt;footnotes&lt;/em&gt;)
&lt;/h2&gt;

&lt;p&gt;Sabe aquelas referências da Wikipédia[^1], então...&lt;/p&gt;

&lt;p&gt;Nunca utilizei mas pode fazer sentido no seu documento ou em documentos grandes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Aqui está meu texto falando e do nada pneumoultramicroscopicossilicovulcanoconiótico[^pneu].

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;^pneu&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="sx"&gt;doença&lt;/span&gt; pulmonar causada ao inalar partículas finas de sílica provenientes de atividades vulcânicas.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Identificação de títulos (&lt;em&gt;heading IDs&lt;/em&gt;)
&lt;/h2&gt;

&lt;p&gt;Mesmo invisível é muito útil. Serve para você mudar a âncora daquele título/subtítulo e isso é útil quando você tem um título grande ou com emojis.&lt;/p&gt;

&lt;p&gt;Qual link você prefere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;github.com/kauefraga/anubis#um-titulo-realmente-muito-grande-lorem-ipsum-blablabla&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;github.com/kauefraga/anubis#titulo-lorem&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Imagino que a segunda opção, afinal, o título vai estar escrito no texto e não precisa necessariamente estar na url.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Um título realmente muito grande lorem ipsum blablabla {#titulo-lorem}&lt;/span&gt;

&lt;span class="gu"&gt;### Um subtítulo não muito grande mas grande {#subtitulo}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado do texto é o mesmo mas a âncora não, estará encurtada.&lt;/p&gt;

&lt;h2&gt;
  
  
  Superscript e subscript
&lt;/h2&gt;

&lt;p&gt;Aquele texto em cima ou embaixo, tipo em expoentes ou quantidade de moléculas.&lt;/p&gt;

&lt;p&gt;Também vai depender do seu processador markdown, mas a solução em HTML é a seguinte:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;x&lt;span class="nt"&gt;&amp;lt;sup&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/sup&amp;gt;&lt;/span&gt; e H&lt;span class="nt"&gt;&amp;lt;sub&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/sub&amp;gt;&lt;/span&gt;O

Este texto &lt;span class="nt"&gt;&amp;lt;sup&amp;gt;&lt;/span&gt;é muito&lt;span class="nt"&gt;&amp;lt;/sup&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;sub&amp;gt;&lt;/span&gt;legal&lt;span class="nt"&gt;&amp;lt;/sub&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;x&lt;sup&gt;2&lt;/sup&gt; e H2O&lt;/p&gt;

&lt;p&gt;Este texto &lt;sup&gt;é muito&lt;/sup&gt; legal&lt;/p&gt;

&lt;h2&gt;
  
  
  Diagramas mermaid
&lt;/h2&gt;

&lt;p&gt;Em plataformas que usem &lt;a href="https://mermaid.js.org" rel="noopener noreferrer"&gt;Mermaid&lt;/a&gt; é possível usar markdown para fazer diagramas (e vários tipos deles). O GitHub e o GitLab, por exemplo, suportam esses diagramas.&lt;/p&gt;

&lt;p&gt;Existem diversos tipos de diagramas e está tudo bem documentado. Infelizmente, o dev.to não suporta os diagramas mermaid então vou ficar devendo o código mas fique com essas duas imagens.&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%2Fw4gjabx5lkbwv3vdf6do.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%2Fw4gjabx5lkbwv3vdf6do.png" alt="diagrama de sequência" width="447" height="328"&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%2Fl4s76v5tmo29c7y63vzl.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%2Fl4s76v5tmo29c7y63vzl.png" alt="Diagrama de classe" width="663" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É isso! Te agradeço por acompanhar até aqui, espero que tenha gostado e aprendido algo novo ao longo do caminho.&lt;/p&gt;

&lt;p&gt;Com este capítulo, eu finalizo essa série de markdown. É claro que na medida necessária irei atualizando esses 4 textos.&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>braziliandevs</category>
      <category>writing</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Personalizando o README do seu perfil do GitHub</title>
      <dc:creator>Kauê Fraga Rodrigues</dc:creator>
      <pubDate>Mon, 13 May 2024 16:45:32 +0000</pubDate>
      <link>https://dev.to/kauefraga/personalizando-o-readme-do-seu-perfil-do-github-52ke</link>
      <guid>https://dev.to/kauefraga/personalizando-o-readme-do-seu-perfil-do-github-52ke</guid>
      <description>&lt;p&gt;Opa, tranquilo? Bora deixar o README do teu GitHub bonitão!&lt;/p&gt;

&lt;p&gt;Antes de começar realmente, se você não sabe o que é README nem markdown eu recomendo fortemente que veja os outros artigos dessa série.&lt;/p&gt;

&lt;p&gt;O README do GitHub é o cartão de visita do seu perfil. Antes de personalizar ele, você precisa criar ele.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando README
&lt;/h2&gt;

&lt;p&gt;Crie um repositório com o mesmo nome do seu perfil. Como meu nome de usuário é "kauefraga" o nome do repositório seria "kauefraga" também.&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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fguide-1.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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fguide-1.png" alt="criando repositório seu-nome-de-usuario/seu-nome-de-usuario" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para facilitar seu trabalho já inclua o arquivo README no seu repositório.&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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fguide-2.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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fguide-2.png" alt="incluindo o arquivo README e criando o repositório de fato" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feito isso você está pronto para customizar o seu README.&lt;/p&gt;

&lt;p&gt;Eu recomendo que você coloque as seguintes informações:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O que você gosta de fazer&lt;/li&gt;
&lt;li&gt;Planos para o ano atual&lt;/li&gt;
&lt;li&gt;Projetos&lt;/li&gt;
&lt;li&gt;As tecnologias (tech stack) e ferramentas que você usa&lt;/li&gt;
&lt;li&gt;Contato&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vale ressaltar que o README deve ficar com a sua cara, com o que você gostar e achar que deve ter. Reflita sua extravagância, seu minimalismo, suas cores favoritas, tudo que te represente.&lt;/p&gt;

&lt;p&gt;Para editar pelo próprio GitHub clique no lápis para editar, veja a seguir.&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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fguide-3.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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fguide-3.png" alt="entrando no modo de edição do README" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A partir de agora é contigo, totalmente pessoal. Vou deixar vários materiais e inspirações de estilos e layouts.&lt;/p&gt;

&lt;p&gt;Uma coisa que eu gostaria de ressaltar, eu gosto de ter um README bonitinho e algumas pessoas (recrutadores, outros desenvolvedores, etc.) olham sim, porém não leve tão a sério. Faça porque você quer falar um pouco sobre quem você é e expor informações técnicas suas.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Readme Stats
&lt;/h3&gt;

&lt;p&gt;Com esses cards você pode mostrar informações relevantes do seu perfil do GitHub e personalizar as cores.&lt;/p&gt;

&lt;p&gt;Veja o &lt;a href="https://github.com/anuraghazra/github-readme-stats" rel="noopener noreferrer"&gt;repositório&lt;/a&gt; ou vá direto para a &lt;a href="https://github.com/anuraghazra/github-readme-stats?tab=readme-ov-file#github-stats-card" rel="noopener noreferrer"&gt;seção dos cards&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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fgithub-stats.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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fgithub-stats.png" alt="demo dos stats" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Skill Icons
&lt;/h3&gt;

&lt;p&gt;Quer expor as tecnologias que você usa, está estudando ou querendo estudar? Tá na mão!&lt;/p&gt;

&lt;p&gt;Veja o &lt;a href="https://skillicons.dev/" rel="noopener noreferrer"&gt;site&lt;/a&gt; ou vá direto na &lt;a href="https://github.com/tandpfun/skill-icons#specifying-icons" rel="noopener noreferrer"&gt;documentação&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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fskill-icons.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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fskill-icons.png" alt="demo dos skill icons" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Se você não viu ainda, na seção &lt;a href="https://kauefraga.github.io/blog/about/#sobre-mim" rel="noopener noreferrer"&gt;sobre mim&lt;/a&gt; do blog eu uso os &lt;em&gt;skill icons&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Markdown Badges
&lt;/h3&gt;

&lt;p&gt;Veja o &lt;a href="https://github.com/Ileriayo/markdown-badges" rel="noopener noreferrer"&gt;repositório markdown badges&lt;/a&gt; e o &lt;a href="https://github.com/alexandresanlim/Badges4-README.md-Profile" rel="noopener noreferrer"&gt;badges for readme.md profile&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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fbadges.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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fbadges.png" alt="demo das badges" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Snake Game
&lt;/h3&gt;

&lt;p&gt;Você deve conhecer o jogo da cobrinha, certo? Imagina uma cobrinha comendo suas contribuições no seu gráfico de contribuições.&lt;/p&gt;

&lt;p&gt;Veja o &lt;a href="https://github.com/Platane/snk" rel="noopener noreferrer"&gt;repositório&lt;/a&gt; e um &lt;a href="https://dev.to/henriquelopes42/como-adicionar-o-snake-game-jogo-da-cobrinha-no-seu-perfil-do-github-40m2"&gt;tutorial de como adicionar no seu perfil&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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fsnake-game.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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fsnake-game.png" alt="demo da cobrinha comendo os commits" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Wakatime
&lt;/h3&gt;

&lt;p&gt;Quer exibir métricas do seu tempo em &lt;em&gt;x&lt;/em&gt; projeto ou usando &lt;em&gt;y&lt;/em&gt; linguagem de programação? Comece a usar o &lt;a href="https://wakatime.com/" rel="noopener noreferrer"&gt;wakatime&lt;/a&gt; e veja esse artigo também, &lt;a href="https://airton.dev/article/exibindo-no-github-metricas-de-tempo-gasto-em-linguagens-usando-wakatime/" rel="noopener noreferrer"&gt;"Exibindo no Github métricas de tempo gasto em linguagens usando Wakatime"&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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fwakatime.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%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fwakatime.png" alt="demo do wakatime direto do artigo do Airton Zanon" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspirações
&lt;/h2&gt;

&lt;p&gt;Não tem nada melhor que ter opções para se inspirar, né? Aqui vão alguns READMEs que eu considero legais. Clique na imagem para ir até o README.&lt;/p&gt;

&lt;p&gt;Começando com o meu 😂&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kauefraga/kauefraga" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Fmeu-readme.png" alt="meu readme" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sem frufru? Olha esse do Filipe&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/datsfilipe/datsfilipe" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Freadme-datsfilipe.png" alt="readme do datsfilipe" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simples mas nem tanto? O Lucas amassou aqui&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/LucasMorais1998/LucasMorais1998" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Freadme-lucasmorais1998.png" alt="readme do lucasmorais1998" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nessa mesma ideia, a Tifany arrasou também&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pinuya/pinuya" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Freadme-pinuya.png" alt="readme da pinuya" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Continuando...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/hiroshimorowaka/hiroshimorowaka" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Freadme-hiroshimorowaka.png" alt="readme do hiroshimorowaka" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/cherryramatisdev/cherryramatisdev" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Freadme-cherryramatisdev.png" alt="readme da cherryramatisdev" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/JuMayumiC/JuMayumiC" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Freadme-jumayumic.png" alt="readme da jumayumic" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/cr-0w/cr-0w" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Freadme-cr-0w.png" alt="readme do cr-0w" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/joevtap/joevtap" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Freadme-joevtap.png" alt="readme do joevtap" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/erickcestari/erickcestari" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Freadme-erickcestari.png" alt="readme do erickcestari" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/NFTSZ/NFTSZ" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fkauefraga%2Fblog%2Fmain%2Fcontent%2Fposts%2Fpersonalizando-o-readme-do-seu-perfil-do-github%2Fimages%2Freadme-nftsz.png" alt="readme da nftsz" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Recomendações
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://youtu.be/TsaLQAetPLU" rel="noopener noreferrer"&gt;Como personalizar o seu perfil no GitHub (Readme) da Rafaella Ballerini&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/kibumLaura/status/1754254161615491117" rel="noopener noreferrer"&gt;Guia resumido da Laura Kibum&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Estarei aberto para dúvidas ou sugestões por aqui ou pelo &lt;a href="https://twitter.com/rkauefraga" rel="noopener noreferrer"&gt;Twitter/X&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Muito obrigado por ter lido até aqui ❤.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>github</category>
      <category>braziliandevs</category>
      <category>writing</category>
    </item>
    <item>
      <title>Personalizando o README do seu projeto</title>
      <dc:creator>Kauê Fraga Rodrigues</dc:creator>
      <pubDate>Sun, 24 Mar 2024 11:29:57 +0000</pubDate>
      <link>https://dev.to/kauefraga/personalizando-o-readme-do-seu-projeto-51jm</link>
      <guid>https://dev.to/kauefraga/personalizando-o-readme-do-seu-projeto-51jm</guid>
      <description>&lt;p&gt;Opa, tudo tranquilo?&lt;/p&gt;

&lt;p&gt;Continuando a série sobre READMEs, agora vamos falar da personalização 🤩&lt;/p&gt;

&lt;p&gt;Vamos usar markdown para customizar o README do seu projeto com seções, frases, ícones/insígnias, etc. Se você não tem ideia do que é markdown e README, recomendo ler o primeiro artigo desta série, &lt;a href="https://dev.to/kauefraga/aprenda-a-fazer-um-readme-4n36"&gt;Introdução ao markdown e aos READMES&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Estruturando o README
&lt;/h2&gt;

&lt;p&gt;Pense no &lt;strong&gt;modo que você quer expor as informações do seu projeto&lt;/strong&gt;. Defina uma hierarquia e use vários identificadores (seções, negrito, código...).&lt;/p&gt;

&lt;p&gt;Depois de fazer alguns projetos e espiar um bocado de projetos alheios, eu normalmente estruturo meu projeto da seguinte forma:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Título ou nome do projeto&lt;/li&gt;
&lt;li&gt;Descrição&lt;/li&gt;
&lt;li&gt;Funcionalidades&lt;/li&gt;
&lt;li&gt;Como instalar/rodar/usar&lt;/li&gt;
&lt;li&gt;Licença&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;É isso! Simples, não?&lt;/p&gt;

&lt;p&gt;Você pode adicionar mais informações, mas eu acredito que essas sejam essenciais.&lt;/p&gt;

&lt;p&gt;Se você não sabe o que adicionar, pense em quais informações são importantes para o projeto. Eu tenho algumas sugestões:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;documente as tecnologias e a escolha delas&lt;/li&gt;
&lt;li&gt;descreva a arquitetura, os padrões de projetos e o porquê dessas decisões&lt;/li&gt;
&lt;li&gt;dedique uma seção a sua API (interna ou não)&lt;/li&gt;
&lt;li&gt;liste as variáveis de ambiente necessárias para executar o projeto&lt;/li&gt;
&lt;li&gt;exemplifique a utilização do projeto (código ou imagem/vídeo)&lt;/li&gt;
&lt;li&gt;explique os passos necessários para contribuir&lt;/li&gt;
&lt;li&gt;mencione os contribuidores&lt;/li&gt;
&lt;li&gt;diga se tem testes e como roda-los&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Estilizando essas informações com markdown
&lt;/h2&gt;

&lt;p&gt;Fique atento, em algumas partes eu vou adicionar só a opção discutida (incremental mesmo) e em outras eu vou reescrever boa parte do código já mostrado porque alguma coisinha ali foi alterada.&lt;/p&gt;

&lt;h3&gt;
  
  
  Especifique o título
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dica&lt;/strong&gt;: tente criar um nome explicativo e memorável para o seu projeto, por mais difícil que isso seja 😅&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Título do projeto&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Centralizado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&lt;/span&gt; &lt;span class="na"&gt;align=&lt;/span&gt;&lt;span class="s"&gt;'center'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Nome do projeto&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Não é possível centralizar com markdown, por isso usamos HTML.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adicione insígnias legais ao seu projeto
&lt;/h3&gt;

&lt;p&gt;Veja no site &lt;a href="https://shields.io" rel="noopener noreferrer"&gt;shields.io&lt;/a&gt;. Segue as que eu mais uso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linguagem mais utilizada&lt;/li&gt;
&lt;li&gt;Último commit&lt;/li&gt;
&lt;li&gt;Palavras/frase estática&lt;/li&gt;
&lt;li&gt;Licença&lt;/li&gt;
&lt;li&gt;Downloads (GitHub releases, crates.io, npm...)&lt;/li&gt;
&lt;li&gt;Versão mais recente
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Título do projeto&lt;/span&gt;

&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;Linguagem mais utilizada&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://img.shields.io/github/languages/top/:nomedeusuario/:nomedorepositorio&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;Último commit&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://img.shields.io/github/last-commit/:nomedeusuario/:nomedorepositorio&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;README bem legal&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://img.shields.io/badge/readme-bem_legal-8A2BE2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Centralizado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;align=&lt;/span&gt;&lt;span class="s"&gt;'center'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Nome do projeto&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;'https://img.shields.io/github/languages/top/:nomedeusuario/:nomedorepositorio'&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;'Linguagem mais utilizada'&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;'https://img.shields.io/github/last-commit/:nomedeusuario/:nomedorepositorio'&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;'Último commit'&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;'https://img.shields.io/badge/readme-bem_legal-8A2BE2'&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;'README bem legal'&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lembre-se de trocar as informações &lt;code&gt;:nomedeusuario&lt;/code&gt; e &lt;code&gt;:nomedorepositorio&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Coloque uma descrição
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Título do projeto&lt;/span&gt;

&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;Linguagem mais utilizada&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://img.shields.io/github/languages/top/:nomedeusuario/:nomedorepositorio&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;Último commit&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://img.shields.io/github/last-commit/:nomedeusuario/:nomedorepositorio&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;README bem legal&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://img.shields.io/badge/readme-bem_legal-8A2BE2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

Esta é a descrição do meu projeto super legal.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Descrição como citação:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gt"&gt;&amp;gt; Esta é a descrição do meu projeto super legal.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Centralizado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;align=&lt;/span&gt;&lt;span class="s"&gt;'center'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Nome do projeto&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Esta é a descrição do meu projeto super legal.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;'https://img.shields.io/github/languages/top/:nomedeusuario/:nomedorepositorio'&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;'Linguagem mais utilizada'&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;'https://img.shields.io/github/last-commit/:nomedeusuario/:nomedorepositorio'&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;'Último commit'&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;'https://img.shields.io/badge/readme-bem_legal-8A2BE2'&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;'README bem legal'&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Diga quais são as funcionalidades
&lt;/h3&gt;

&lt;p&gt;As funcionalidades podem ser capacidades, rotas ou o que seu projeto fizer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;### Funcionalidades&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; Este projeto é capaz de automatizar um processo muito chato
&lt;span class="p"&gt;-&lt;/span&gt; Este projeto é muito performático
&lt;span class="p"&gt;-&lt;/span&gt; Este projeto é amigável e intuitivo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Features&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; [x] Este projeto é capaz de receber requisições e responder
&lt;span class="p"&gt;-&lt;/span&gt; [x] Este projeto é capaz de lidar com requisições simultaneamente, graças ao controle de concorrência implementado
&lt;span class="p"&gt;-&lt;/span&gt; [ ] Este projeto pode teletransportar uma pessoa para qualquer lugar do planeta a qualquer momento
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perceba a alteração das palavras (funcionalidades e features), nível da seção (h3 e h2) e lista (não-marcada e marcada). Faça como quiser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como instalar e rodar
&lt;/h3&gt;

&lt;p&gt;Aqui você precisa descrever o processo de instalação e execução/utilização do seu projeto.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Como instalar e rodar&lt;/span&gt;
&lt;span class="p"&gt;
1.&lt;/span&gt; Clone o repositório
&lt;span class="p"&gt;2.&lt;/span&gt; Instale as dependências
&lt;span class="p"&gt;3.&lt;/span&gt; Execute o comando x

&lt;span class="nt"&gt;&amp;lt;-----&amp;gt;&lt;/span&gt;bash
git clone https://github.com/usuario/repositorio.git
cd repositorio

npm i
go mod download
cargo build

npm run start
go run cmd/main.go
cargo run src/main.rs
&lt;span class="nt"&gt;&amp;lt;-----&amp;gt;&lt;/span&gt;

Obs.: uma observação muito interessante.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Substitua esses &lt;code&gt;&amp;lt;-----&amp;gt;&lt;/code&gt; por crases triplas (bloco de código).&lt;/p&gt;

&lt;h3&gt;
  
  
  Instrua contribuidores
&lt;/h3&gt;

&lt;p&gt;Uma seção dedicada a como contribuir pode ser muito útil. Detalhe o processo de contribuição.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Contribuindo&lt;/span&gt;

Sinta-se livre para contribuir, criar uma issue para reportar um bug, sugerir um alteração na API, uma melhoria ou uma feature. Fique à vontade.

&lt;span class="gu"&gt;### Como contribuir&lt;/span&gt;
&lt;span class="p"&gt;
1.&lt;/span&gt; Faça um fork desse repositório
&lt;span class="p"&gt;2.&lt;/span&gt; Clone seu fork na sua máquina
&lt;span class="p"&gt;3.&lt;/span&gt; Faça alterações, commit e dê push
&lt;span class="p"&gt;4.&lt;/span&gt; Abra um pull request (escreva uma mensagem descritiva sobre o que você alterou)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mencionar os seus contribuidores e declarar sua gratidão é bacana também. Coloque o ícone dos seus contribuidores.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;### Contribuidores&lt;/span&gt;

Meus agradecimentos a essas pessoas incríveis:

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;![notshwuy GitHub profile picture&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://github.com/notshwuy.png?size=50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;](https://github.com/notshwuy)
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;![FelipeMCassiano GitHub profile picture&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://github.com/FelipeMCassiano.png?size=50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;](https://github.com/FelipeMCassiano)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exponha a licença
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Licença&lt;/span&gt;

Este projeto está sob a licença y - Veja a &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;LICENÇA&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://github.com/usuario/repositorio/blob/main/LICENSE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; para mais informações.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Resultado final
&lt;/h2&gt;

&lt;p&gt;Veja como ficou o README copiando e colando direto daqui:&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%2Fraw.githubusercontent.com%2Fkauefraga%2Fmy-articles%2Fmain%2Fimages%2F2024-03-24-personalizando-o-readme-do-seu-projeto-1.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%2Fraw.githubusercontent.com%2Fkauefraga%2Fmy-articles%2Fmain%2Fimages%2F2024-03-24-personalizando-o-readme-do-seu-projeto-1.png" alt="Resultado final" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Basicamente é isso. Lembra que o README é um "cartão de visitas" para o seu projeto? O que você quer mostrar aos seus visitantes? Você deve montar seu README pensando nas informações que são relevantes para o seu projeto. A partir disso, escreva e refine ao longo do tempo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fun fact&lt;/strong&gt;: dependendo do lugar que você pretende colocar seu README (GitHub, GitLab, Bitbucket...) pode existir um &lt;em&gt;superset&lt;/em&gt; do markdown como diz &lt;a href="https://www.markdownguide.org/extended-syntax/#lightweight-markup-languages" rel="noopener noreferrer"&gt;o Markdown Guide em &lt;em&gt;extended syntax&lt;/em&gt;&lt;/a&gt;, que adiciona marcações e melhora o comportamento de algumas existentes.&lt;/p&gt;

&lt;p&gt;Se você usa o Visual Studio Code para escrever seus READMEs, eu tenho extensões para recomendar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=bierner.markdown-checkbox" rel="noopener noreferrer"&gt;Markdown Checkbox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=bierner.markdown-emoji" rel="noopener noreferrer"&gt;Markdown Emoji&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid" rel="noopener noreferrer"&gt;Markdown Mermaid (diagramas e fluxogramas)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=bierner.markdown-preview-github-styles" rel="noopener noreferrer"&gt;Markdown GitHub Styles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint" rel="noopener noreferrer"&gt;Markdown Lint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Também selecionei alguns dos meus melhores READMEs para você ter uma ideia de como eu faço:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/kauefraga/esquilo-aniquilador" rel="noopener noreferrer"&gt;esquilo aniquilador&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kauefraga/eco" rel="noopener noreferrer"&gt;eco&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kauefraga/ariprog" rel="noopener noreferrer"&gt;ariprog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kauefraga/anime-archive" rel="noopener noreferrer"&gt;anime archive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kauefraga/node-typescript-server" rel="noopener noreferrer"&gt;node typescript server&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Obrigado por ler 💜&lt;/p&gt;

</description>
      <category>learning</category>
      <category>braziliandevs</category>
      <category>writing</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Introdução ao markdown e aos READMEs</title>
      <dc:creator>Kauê Fraga Rodrigues</dc:creator>
      <pubDate>Mon, 18 Mar 2024 01:09:33 +0000</pubDate>
      <link>https://dev.to/kauefraga/aprenda-a-fazer-um-readme-4n36</link>
      <guid>https://dev.to/kauefraga/aprenda-a-fazer-um-readme-4n36</guid>
      <description>&lt;p&gt;Olá, tudo certo?&lt;/p&gt;

&lt;p&gt;Hoje vou falar sobre o que é um README, o que é markdown, como escrever um README básico e por que você deveria aprender a sintaxe markdown e escrever READMEs. Bora? &lt;/p&gt;

&lt;h2&gt;
  
  
  O que é um README
&lt;/h2&gt;

&lt;p&gt;Começando pelo começo, você provavelmente já viu projetos de outros desenvolvedores ou instalou um projeto, uma solução ou um jogo de origem duvidosa e se deparou com aquele arquivo &lt;code&gt;README&lt;/code&gt;, &lt;code&gt;README.txt&lt;/code&gt; ou &lt;code&gt;README.md&lt;/code&gt;. Caso nunca tenha visto, tudo bem.&lt;/p&gt;

&lt;p&gt;A tradução de &lt;em&gt;read me&lt;/em&gt; é "leia me" e, resumidamente, um README é um arquivo que fica junto de um projeto e serve como um cartão de visita para o mesmo, contendo informações sobre o projeto como: objetivo, capacidade, instalação, documentação em geral, licença, etc.&lt;/p&gt;

&lt;p&gt;Deu pra perceber a importância dos READMEs?&lt;/p&gt;

&lt;p&gt;Um README geralmente é escrito em markdown, uma linguagem de marcação assim como o HTML. Dito isso, a forma mais comum desse arquivo é essa: &lt;code&gt;README.md&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é markdown
&lt;/h2&gt;

&lt;p&gt;Markdown é uma linguagem de marcação simplificada e de fácil uso. O primeiro processador de markdown foi o próprio &lt;a href="https://daringfireball.net/projects/markdown" rel="noopener noreferrer"&gt;Markdown&lt;/a&gt; feito pelo John Gruber com a linguagem de programação Perl. Ele tinha o objetivo de ser uma ferramenta de conversão de markdown para HTML.&lt;/p&gt;

&lt;p&gt;Atualmente existem vários processadores Markdown e variações (ou &lt;em&gt;supersets&lt;/em&gt;) da sintaxe, permitindo novas marcações e diferentes saídas. Por exemplo, de markdown para PDF.&lt;/p&gt;

&lt;p&gt;Veja um resumo ou &lt;em&gt;cheatsheet&lt;/em&gt; da sintaxe markdown:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Isto é um título ou um h1 em HTML
## Isto é um subtítulo ou um h2 em HTML
### Você já entendeu... vai até o h6 ou ######

Isto é um parágrafo e a palavra **negrito** está em negrito, enquanto a palavra *itálico* está em itálico. ~~riscado~~ e [link](https://example.com).

- eu sou um item em uma lista desordenada
- eu sou outro item na lista desordenada
- eu sou mais um item

&amp;gt; Uma citação blablablablablabla

1. eu sou o primeiro item de uma lista ordenada
2. eu sou o segundo item
3. eu sou o terceiro!

![este é o texto alternativo de uma imagem](https://example.com/imagem.png)

--- 

Estou abaixo do divisor horizontal.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E o resultado:&lt;/p&gt;

&lt;h2&gt;
  
  
  Isto é um subtítulo ou um h2 em HTML
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Você já entendeu... vai até o h6 ou
&lt;/h3&gt;

&lt;p&gt;Isto é um parágrafo e a palavra &lt;strong&gt;negrito&lt;/strong&gt; está em negrito, enquanto a palavra &lt;em&gt;itálico&lt;/em&gt; está em itálico. &lt;del&gt;riscado&lt;/del&gt; e &lt;a href="https://example.com" rel="noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;eu sou um item em uma lista desordenada&lt;/li&gt;
&lt;li&gt;eu sou outro item na lista desordenada&lt;/li&gt;
&lt;li&gt;eu sou mais um item&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Uma citação blablablablablabla&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;eu sou o primeiro item de uma lista ordenada&lt;/li&gt;
&lt;li&gt;eu sou o segundo item&lt;/li&gt;
&lt;li&gt;eu sou o terceiro!&lt;/li&gt;
&lt;/ol&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%2Fexample.com%2Fimagem.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%2Fexample.com%2Fimagem.png" alt="este é o texto alternativo de uma imagem" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Estou abaixo do divisor horizontal.&lt;/p&gt;

&lt;p&gt;Uma ótima referência para você se aprofundar é o &lt;a href="https://www.markdownguide.org" rel="noopener noreferrer"&gt;Markdown Guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que aprender markdown e escrever READMEs
&lt;/h2&gt;

&lt;p&gt;Markdown é uma linguagem de marcação que tem uma sintaxe simples, pode ser convertida para HTML e, com isso, ela pode ser usada para escrever textos formatados. Por ser fácil de ler e escrever, o markdown tem uma alta adoção na comunidade de desenvolvimento de software. &lt;/p&gt;

&lt;p&gt;Saber markdown facilita muito sua vida ao oferecer uma sintaxe simples e ser convertido em HTML, além de ser quase uma convenção (se não for) no quesito escrita técnica.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resumo (tl;dr)
&lt;/h2&gt;

&lt;p&gt;Markdown é uma sintaxe simples que pode ser convertida para HTML e, com isso, ela pode ser usada para escrever textos formatados. Por ser fácil de ler e escrever, o markdown tem uma alta adoção na comunidade de desenvolvimento de software. &lt;/p&gt;

&lt;p&gt;O README é como um cartão de visitas e serve para expor os detalhes mais relevantes de um projeto. Pode ser qualquer tipo de arquivo mas normalmente é escrito usando markdown, então um README geralmente tem a extensão &lt;code&gt;.md&lt;/code&gt; para demonstrar isso.&lt;/p&gt;

&lt;p&gt;Para conhecer a sintaxe, veja essa &lt;em&gt;cheatsheet&lt;/em&gt;: &lt;a href="https://www.markdownguide.org/cheat-sheet" rel="noopener noreferrer"&gt;Markdown Cheat Sheet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fun fact&lt;/strong&gt;: esse texto foi escrito inteiramente em markdown e faz parte de uma série sobre READMEs :)&lt;/p&gt;

&lt;p&gt;Obrigado por ler ❤&lt;/p&gt;

</description>
      <category>learning</category>
      <category>braziliandevs</category>
      <category>writing</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Eco: minha implementação em Rust do programa echo</title>
      <dc:creator>Kauê Fraga Rodrigues</dc:creator>
      <pubDate>Sat, 24 Feb 2024 13:21:12 +0000</pubDate>
      <link>https://dev.to/kauefraga/eco-minha-implementacao-em-rust-do-programa-echo-34jh</link>
      <guid>https://dev.to/kauefraga/eco-minha-implementacao-em-rust-do-programa-echo-34jh</guid>
      <description>&lt;p&gt;&lt;em&gt;Hey, folks!&lt;/em&gt; Hoje quero falar sobre o meu mini-projeto, chamado "eco". &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Minha implementação em Rust do programa echo.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;O programa &lt;code&gt;echo&lt;/code&gt; basicamente pega argumentos (entrada) e imprime eles na tela do seu console (&lt;em&gt;stdout&lt;/em&gt;). O eco, atualmente, faz isso também. Escolhi esse nome porque eu sempre li o programa &lt;code&gt;echo&lt;/code&gt; como /ɛko/. Como eu disse, o &lt;code&gt;echo&lt;/code&gt; pega a entrada e devolve a mesma coisa, similar a uma reverberação, um &lt;strong&gt;eco&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A iniciativa do projeto surgiu quando pesquisei por projetos para fazer em Rust, quero praticar!&lt;/p&gt;

&lt;p&gt;A implementação inicial (v0.1.0) foi bem simples, como esperado. Veja o código do commit &lt;a href="https://github.com/kauefraga/eco/commit/516992e1dd25c1206feed3d10ccd597acc4fc7a8" rel="noopener noreferrer"&gt;516992e&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="k"&gt;mut&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Vec&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;args&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="nf"&gt;.collect&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="cm"&gt;/*
     * Read the `remove` docstring.
     * This `remove(0)` is the worst case,
     * all the arguments are going to be
     * shifted to the left, everytime.
     */&lt;/span&gt;
    &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="nf"&gt;.remove&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="k"&gt;mut&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;String&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;arg&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="nf"&gt;.push_str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nd"&gt;format!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{arg} "&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="nf"&gt;.trim&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;ol&gt;
&lt;li&gt;Pega os argumentos passados;&lt;/li&gt;
&lt;li&gt;Remove o primeiro argumento, pois ele é o caminho do executável;&lt;/li&gt;
&lt;li&gt;Inicializa uma string dinâmica, chamada &lt;em&gt;output&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Itera sobre os argumentos adicionando cada argumento com o formato "argumento-tal " (argumento + espaço) ao final da string &lt;em&gt;output&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Imprime a string &lt;em&gt;output&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Agora na versão 0.1.2, o código está assim:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;collections&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;VecDeque&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;process&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="k"&gt;mut&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;VecDeque&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;args&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="nf"&gt;.collect&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="nf"&gt;.pop_front&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;is_help_needed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="nf"&gt;.len&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"-h"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;||&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="nf"&gt;.len&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"--help"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;is_help_needed&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Example: eco-rs Bom dia!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="k"&gt;mut&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;String&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;arg&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="nf"&gt;.push_str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nd"&gt;format!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{arg} "&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="nf"&gt;.trim&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;Alterações:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Na linha &lt;code&gt;args.remove(0)&lt;/code&gt; havia possibilidade de otimização e mesmo sem conhecer VecDeque, que deve ser um vetor bidirecional (entrada e saída por ambos os lados), a fiz. Essa estrutura de dados possibilita a saída de um elemento do início sem precisar mover os elementos posteriores para trás, o que é vantajoso aqui.&lt;/li&gt;
&lt;li&gt;Adicionei um menu de ajuda, que tá bem vazio por sinal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A distribuição está sendo feito pelo crates.io em &lt;a href="https://crates.io/crates/eco-rs" rel="noopener noreferrer"&gt;eco-rs&lt;/a&gt;. Infelizmente a crate "eco" já existia. O legal é que ao executar o comando &lt;code&gt;cargo install eco-rs&lt;/code&gt; o Cargo pega a crate e compila na arquitetura do seu computador. Com isso, eu não preciso compilar para todas as arquiteturas disponíveis e manter as releases no GitHub também (deveria, quem não gosta de só baixar o executável e pronto?).&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusão
&lt;/h3&gt;

&lt;p&gt;tl;dr: o projeto eco é, atualmente, apenas uma implementação em Rust do programa &lt;code&gt;echo&lt;/code&gt; que pega os argumentos de entrada, junta eles em uma string e imprime a string final na saída do terminal. &lt;/p&gt;

&lt;p&gt;Pretendo fazer mais umas funcionalidades como colorir palavras específicas e criar uma sintaxe de marcação para estilizar também.&lt;/p&gt;

&lt;p&gt;Se quiser acompanhar o projeto, veja &lt;a href="https://github.com/kauefraga/eco" rel="noopener noreferrer"&gt;o repositório eco&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Você pode me achar no:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/kauefraga" rel="noopener noreferrer"&gt;kauefraga&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;TabNews: &lt;a href="https://www.tabnews.com.br/kauefraga" rel="noopener noreferrer"&gt;kauefraga&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;DevTo: &lt;a href="https://dev.to/kauefraga"&gt;kauefraga&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Twitter/X: &lt;a href="https://twitter.com/rkauefraga" rel="noopener noreferrer"&gt;rkauefraga&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Obrigado por ler! ❤&lt;/p&gt;

</description>
      <category>rust</category>
      <category>braziliandevs</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>Funcionalidades do Rust</title>
      <dc:creator>Kauê Fraga Rodrigues</dc:creator>
      <pubDate>Mon, 19 Feb 2024 23:32:07 +0000</pubDate>
      <link>https://dev.to/kauefraga/funcionalidades-do-rust-2bem</link>
      <guid>https://dev.to/kauefraga/funcionalidades-do-rust-2bem</guid>
      <description>&lt;p&gt;Olá! Se você quer saber um pouco mais sobre as &lt;strong&gt;principais&lt;/strong&gt; funcionalidades do Rust, então acho que posso ajudar. Bora 👊&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A linguagem de programação Rust tem várias features peculiares e legais! Uma coleção de técnicas que deram certo em outras linguagens e paradigmas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Features abordadas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zero-cost abstractions&lt;/li&gt;
&lt;li&gt;Data Ownership ou Ownership&lt;/li&gt;
&lt;li&gt;Algebraic Type System ou Algebraic Data Types&lt;/li&gt;
&lt;li&gt;Polymorphism&lt;/li&gt;
&lt;li&gt;Async/await&lt;/li&gt;
&lt;li&gt;Meta programming&lt;/li&gt;
&lt;li&gt;Cargo&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Zero-cost abstractions
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;"What you don't use, you don't pay for. What you do use, you couldn't hand code any better"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Direto do C++.&lt;/p&gt;

&lt;p&gt;As abstrações (pattern matching, iterators, generics, collections...) de recursos-base (for loops, if/else, raw pointers...) da linguagem não devem consumir nenhum recurso além daqueles já consumidos. Zero custo!&lt;/p&gt;

&lt;h3&gt;
  
  
  Ownership
&lt;/h3&gt;

&lt;p&gt;Baseado no RAII (Resource Acquisition Is Initialization) design pattern do C++. Esse padrão de projeto diz: recursos como memória alocada, file handles e database connections devem estar presos a um tempo de vida. Quando um objeto é criado, os recursos são adquiridos e quando o objeto é destruído, os recursos são liberados. Simples. Esse padrão é tão útil porque liberar os recursos é algo facilmente esquecido, você pode ter escrito bastante código antes de precisar liberar e esqueceu, resultando em &lt;em&gt;memory leaks&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Tão útil que... Rust integrou ele diretamente na linguagem e assim surgiu o Ownership. Para não precisar lembrar usar esse padrão, o próprio compilador vai te forçar a seguir um conjunto de regras chamado de "ownership e borrowing rules", caso essas regras não sejam seguidas, você verá erros na tela em tempo de compilação (&lt;em&gt;compile time&lt;/em&gt;). &lt;/p&gt;

&lt;p&gt;Ownership Rules&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cada valor em Rust tem uma variável que é sua dona, ou seja, cada valor tem um dono.&lt;/li&gt;
&lt;li&gt;Só pode existir um dono de uma vez.&lt;/li&gt;
&lt;li&gt;Quando um dono sai de escopo, o valor é largado ou &lt;em&gt;dropped&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Essas regras são combinadas com as chamadas &lt;em&gt;borrowing rules&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Borrowing Rules&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Em um momento qualquer, você pode ter uma referência mutável ou infinitas referências imutáveis.&lt;/li&gt;
&lt;li&gt;Referências DEVEM sempre ser válidas. SEM NULL/NIL NESSA PO@#$!! &lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Algebraic Type System
&lt;/h3&gt;

&lt;p&gt;Algebraic data types ou ADTs permitem a criação de tipos compostos usando &lt;em&gt;sum types&lt;/em&gt; e &lt;em&gt;product types&lt;/em&gt;. Geralmente implementado em linguagens funcionais, como Haskell.&lt;/p&gt;

&lt;p&gt;Um &lt;em&gt;product type&lt;/em&gt; é um tipo composto de dois ou mais tipos. Pense em um tipo usuário que tem nome e idade, outros dois tipos, dentro dele. Classes (OO) são um exemplo de product type. Basicamente, toda linguagem que tem um sistema de tipos, tem &lt;em&gt;product types&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Um &lt;em&gt;sum type&lt;/em&gt; é um tipo que pode ser representado por uma lista finita de opções válidas (como um enum).&lt;/p&gt;

&lt;h3&gt;
  
  
  Polymorphism
&lt;/h3&gt;

&lt;p&gt;Direto do paradigma de orientação a objetos (OOP), polimorfismo é a capacidade que um objeto ou uma função têm de assumir múltiplas formas ou se comportar diferente dependendo do contexto em que é usada. O polimorfismo geralmente é implementado a partir da herança (&lt;em&gt;inheritance&lt;/em&gt;). Já no Rust, o polimorfismo é implementado com &lt;em&gt;traits&lt;/em&gt; e &lt;em&gt;generics&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Traits definem um conjunto de funções/métodos que um tipo pode implementar, parecido com interfaces em outras linguagens. Lembre-se, tipos podem implementar múltiplos traits e traits podem ter implementações por padrão (default).&lt;/p&gt;

&lt;p&gt;Generics te permitem escrever código abstrato em relação ao tipo, que te leva a código reutilizável e eficiente. Você pode dizer que um tipo necessário para uma função, não é algo específico, mas algo que implemente funções específicas.&lt;/p&gt;

&lt;p&gt;O sistema de traits (&lt;em&gt;trait system&lt;/em&gt;) em Rust tem sua raiz nas &lt;em&gt;type classes&lt;/em&gt; do Haskell. Rust implementa o &lt;em&gt;trait system&lt;/em&gt; juntamente do ownership/borrowing e lifetimes, que são um dos motivos da garantia de &lt;em&gt;memory-safety&lt;/em&gt;. Alguns benefícios em relação a herança:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexibilidade e composição&lt;/li&gt;
&lt;li&gt;Não-invasivo e extensível&lt;/li&gt;
&lt;li&gt;Evita o problema de classes bases frágeis (&lt;em&gt;fragile base class problem&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Static dispatch by default e performance&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Async/await
&lt;/h3&gt;

&lt;p&gt;Rust roubou a sintaxe &lt;code&gt;async/await&lt;/code&gt; para programação assíncrona da linguagem de programação JavaScript. O paradigma assíncrono permite que tarefas sejam executadas independentemente e concorrentemente sem bloquear a execução do programa principal. O JavaScript usa Promises para representar o resultado de uma operação assíncrona e para utilizar esse resultado é necessário usar os métodos &lt;code&gt;.then()&lt;/code&gt;, &lt;code&gt;.catch()&lt;/code&gt; e &lt;code&gt;.finally()&lt;/code&gt;. O problema é que esses métodos podem levar a um código aninhado e complexo. A sintaxe &lt;code&gt;async/await&lt;/code&gt; no JavaScript permite que código assíncrono seja escrito da forma como código síncrono é escrito, sem usar then, catch e finally. No final é só um syntactic sugar para trabalhar com as Promises.&lt;/p&gt;

&lt;p&gt;O Rust adotou a programação assíncrona de maneira parecida. Notação &lt;code&gt;async&lt;/code&gt; antes de &lt;code&gt;fn&lt;/code&gt; e &lt;code&gt;.await?&lt;/code&gt; a cada chamada assíncrona. O ponto de interrogação serve para propagar erros. Como em JavaScript, &lt;code&gt;async/await&lt;/code&gt; em Rust é um syntactic sugar para trabalhar com Futures (similar a Promises). Algumas diferenças do Rust para o JavaScript:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O &lt;code&gt;async/await&lt;/code&gt; em Rust segue o princípio de abstração sem custo (zero-cost abstraction).&lt;/li&gt;
&lt;li&gt;Em Rust, Futures foram moldados para serem preguiçosos (lazy), ou seja, eles não começam até que sejam explicitamente chamados e "esperados" (&lt;em&gt;awaited&lt;/em&gt;). Com isso, Futures podem ser agendados, compostos e combinados com outros Futures sem esforço desnecessário. No JavaScript, quando uma Promise é criada a operação assíncrono já começa em seguida, mesmo se a Promise não tiver sido "esperada" (&lt;em&gt;awaited&lt;/em&gt;) ainda.&lt;/li&gt;
&lt;li&gt;JavaScript é single-threaded e tem uma implementação que cria a ilusão do paralelismo. Rust tem paralelismo de verdade, podendo executar operações concorrentes em paralelo usando múltiplas threads.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Meta programming
&lt;/h3&gt;

&lt;p&gt;O Rust tem uma feature muito poderosa, os macros. Para entender os macros, vamos falar de meta programação.&lt;/p&gt;

&lt;p&gt;Meta programação é uma técnica que permite um programa a manipular ou gerar código durante a compilação (&lt;em&gt;compile time&lt;/em&gt;) ou execução (&lt;em&gt;runtime&lt;/em&gt;). Macros são um recurso do Rust que permite o desenvolvedor a definir uma sintaxe customizada e fazer geração de código ou transformação de código. Eles permitem a meta programação com uma forma de escrever código que gera ou altera outro código durante a compilação (&lt;em&gt;compile time&lt;/em&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  Cargo
&lt;/h3&gt;

&lt;p&gt;Inspirado no NPM (node package manager) do NodeJS, o Cargo é a ferramenta oficial de building e gerenciamento de pacotes do Rust. Com simples comandos no terminal é possível instalar as dependências de um projeto, compilar o projeto, testar o projeto, etc. O crates.io é onde ficam as caixas/crates, os pacotes do ecossistema Cargo. O &lt;code&gt;package.json&lt;/code&gt; em JavaScript é o &lt;code&gt;cargo.toml&lt;/code&gt; em Rust.&lt;/p&gt;

&lt;p&gt;Obrigado por ler! ❤&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://youtu.be/4YU_r70yGjQ" rel="noopener noreferrer"&gt;Rust is not a faster horse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/784JWR4oxOI" rel="noopener noreferrer"&gt;All Rust features explained&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>rust</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Introdução ao Rust</title>
      <dc:creator>Kauê Fraga Rodrigues</dc:creator>
      <pubDate>Sun, 18 Feb 2024 15:08:24 +0000</pubDate>
      <link>https://dev.to/kauefraga/introducao-ao-rust-463o</link>
      <guid>https://dev.to/kauefraga/introducao-ao-rust-463o</guid>
      <description>&lt;p&gt;Olá! Se você quer aprender ou está estudando a linguagem de programação Rust assim como eu, acho que aqui consegui sintetizar bem a linguagem nesse texto introdutório. Bora lá!!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Rust é uma linguagem de programação eficiente e segura. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Na seção "Por que Rust?" do site &lt;a href="https://www.rust-lang.org" rel="noopener noreferrer"&gt;Rust Lang&lt;/a&gt; eles dizem: Rust é rápido e tem consumo de memória eficiente; Rust é confiável porque tem um rico sistema de tipos, além do modelo "ownership" que garante &lt;em&gt;memory-safety&lt;/em&gt; e &lt;em&gt;thread-safety&lt;/em&gt;; Programar em Rust é produtivo pois tem uma ótima documentação, boas mensagens de erro do compilador e fantásticas ferramentas (como compilador, gerenciador de pacotes, formatador...). No mesmo site, a linguagem é recomendada para fazer CLIs (interfaces de linha de comando), WebAssembly, Networking e Embedded programming (embarcados). &lt;/p&gt;

&lt;p&gt;Não se limitando a esses campos, Rust é visto no desenvolvimento de sistemas operacionais, jogos, APIs, Web, Crypto e a lista continua aumentando. Tem um futuro brilhante. &lt;/p&gt;

&lt;p&gt;As principais ferramentas do Rust são: Rustup e Cargo.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rustup serve para gerenciar o Rust (versão, plataforma...)&lt;/li&gt;
&lt;li&gt;Cargo serve para gerenciar seu projeto em Rust, desde a criação até o build.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sobre o gerenciador de pacotes:&lt;/p&gt;

&lt;p&gt;Cada pacote no Rust tem diversas features que podem ser desabilitadas ou não, reduzindo o tempo de compilação e o tamanho do executável final.&lt;/p&gt;

&lt;p&gt;Os pacotes são instalados e publicados com a ferramenta Cargo e são distribuídos pelo &lt;a href="https://crates.io" rel="noopener noreferrer"&gt;crates.io&lt;/a&gt; (assim como o &lt;a href="https://www.npmjs.com" rel="noopener noreferrer"&gt;npmjs.com&lt;/a&gt;). Além disso, a documentação dos pacotes é centralizada em &lt;a href="https://docs.rs" rel="noopener noreferrer"&gt;docs.rs/nome-no-pacote&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Para aprender Rust:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://doc.rust-lang.org/rust-by-example" rel="noopener noreferrer"&gt;Rust by examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://doc.rust-lang.org/book" rel="noopener noreferrer"&gt;Rust book&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@letsgetrusty" rel="noopener noreferrer"&gt;Let's Get Rusty&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;De acordo com &lt;a href="https://youtu.be/4YU_r70yGjQ" rel="noopener noreferrer"&gt;esse vídeo&lt;/a&gt; (Rust is not a faster horse), Rust não é um substituto para C, você está procurando Zig. Rust não é um substituto para C++, você está procurando Go. "Rust não é um cavalo mais rápido, é um foguete!".&lt;/p&gt;

&lt;p&gt;É isso! Pretendo postar mais conteúdo sobre Rust. Inclusive, quem viu minha primeira postagem (&lt;a href="https://dev.to/kauefraga/aprendendo-rust-4pb5"&gt;Aprendendo Rust&lt;/a&gt;) sabe que eu já tenho alguns textos escritos, vou adapta-los e publicá-los, ao final espero ter uma espécie de guia introdutório da linguagem de programação Rust.&lt;/p&gt;

&lt;p&gt;Obrigado por ler! ❤&lt;/p&gt;

&lt;p&gt;Se quiserem, escrevi também sobre algumas funcionalidades do Rust em &lt;a href="https://dev.to/kauefraga/funcionalidades-do-rust-2bem"&gt;outra postagem&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>braziliandevs</category>
      <category>rust</category>
    </item>
    <item>
      <title>Aprendendo Rust</title>
      <dc:creator>Kauê Fraga Rodrigues</dc:creator>
      <pubDate>Sun, 18 Feb 2024 00:49:06 +0000</pubDate>
      <link>https://dev.to/kauefraga/aprendendo-rust-4pb5</link>
      <guid>https://dev.to/kauefraga/aprendendo-rust-4pb5</guid>
      <description>&lt;p&gt;Olá! 👋&lt;/p&gt;

&lt;p&gt;Assisti &lt;a href="https://www.youtube.com/live/aXQenZGvLrQ" rel="noopener noreferrer"&gt;uma live do Navarro&lt;/a&gt; sobre a Rinha de Backend em que ele usa a linguagem de programação Rust. Ao assisti-lo codando e explicando (não vou mentir, ele tem uma ótima didática) fiquei fascinado pela linguagem. Eu já tive contato com ela ao fazer o curso de Rust da Alura, mas confesso que não dei continuidade.&lt;/p&gt;

&lt;p&gt;Dessa vez, cativado, pretendo ir adiante com a linguagem e fazer dela, parte das minhas ferramentas. Com o meu espírito entusiasta, acabei me empolgando nos estudos hoje e escrevi três textos introdutórios para mim, sobre Rust, algumas de suas funcionalidades e seu carro-chefe, Ownership. Para quem quiser ver (e quem sabe corrigir):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/rkauefraga/status/1758958622518743272" rel="noopener noreferrer"&gt;Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/rkauefraga/status/1759008932385755258" rel="noopener noreferrer"&gt;Rust Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/rkauefraga/status/1759011206629621985" rel="noopener noreferrer"&gt;Rust Ownership&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/rkauefraga/status/1759049552101789881" rel="noopener noreferrer"&gt;Rust Cargo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Partindo disso, gostaria de saber quais tópicos vocês recomendam para entender Rust e ser um Rustáceo de verdade 🤣&lt;/p&gt;

&lt;p&gt;Brincadeiras à parte, pretendo me aprofundar no Ownership/Borrowing e seguir meus estudos pela &lt;a href="https://doc.rust-lang.org/book" rel="noopener noreferrer"&gt;documentação principal&lt;/a&gt; e pelo &lt;a href="https://doc.rust-lang.org/rust-by-example" rel="noopener noreferrer"&gt;Rust by examples&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Quais funcionalidades, projetos, conceitos da linguagem Rust vocês recomendam para entender a linguagem Rust e se tornar minimamente proficiente?&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>braziliandevs</category>
      <category>rust</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
