<?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: Larissa Azevedo</title>
    <description>The latest articles on DEV Community by Larissa Azevedo (@lariazevedo).</description>
    <link>https://dev.to/lariazevedo</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%2F541201%2F6b11ece8-cf56-4575-b8d4-5604c7e0e710.png</url>
      <title>DEV Community: Larissa Azevedo</title>
      <link>https://dev.to/lariazevedo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lariazevedo"/>
    <language>en</language>
    <item>
      <title>Segurança no Front-end: dos ataques à prevenção</title>
      <dc:creator>Larissa Azevedo</dc:creator>
      <pubDate>Mon, 16 Jun 2025 18:25:37 +0000</pubDate>
      <link>https://dev.to/lariazevedo/seguranca-no-front-end-dos-ataques-a-prevencao-6b0</link>
      <guid>https://dev.to/lariazevedo/seguranca-no-front-end-dos-ataques-a-prevencao-6b0</guid>
      <description>&lt;p&gt;Se você ainda acha que segurança na web é responsabilidade exclusiva do back-end ou do time de segurança, é hora de rever esse conceito. &lt;/p&gt;

&lt;p&gt;Cada linha de código que você escreve no front-end tem impacto direto não só na experiência do usuário, mas também na proteção dos dados, na integridade do sistema e na reputação do produto que você ajuda a construir.&lt;/p&gt;

&lt;p&gt;Durante minha palestra “Segurança no Front-End”, eu trouxe exatamente essa reflexão: a segurança começa no seu código, na interface e no que você entrega para o navegador. E quando você entende isso, percebe que o front não é só uma camada de apresentação, mas uma parte fundamental na defesa do sistema.&lt;/p&gt;

&lt;p&gt;Muito mais do que entender conceitos técnicos isolados, desenvolver com segurança é uma mentalidade. É estar constantemente se perguntando se o que você desenvolve não abre brechas para invasões ou vazamento de dados, e como você pode estar ciente de novas formas de invasão para se prevenir delas.&lt;/p&gt;




&lt;h2&gt;
  
  
  Por que segurança no front-end importa tanto?
&lt;/h2&gt;

&lt;p&gt;Se tem uma coisa que você precisa internalizar é que o front-end é a porta de entrada do seu sistema. É o primeiro lugar onde o usuário interage e, da mesma forma, onde uma pessoa mal-intencionada tenta explorar qualquer brecha possível.&lt;/p&gt;

&lt;p&gt;Existe um mito muito comum entre desenvolvedores, especialmente aqueles que estão começando a aprofundar em arquitetura, que segurança é coisa de back-end, de infraestrutura ou, pior ainda, “coisa do time de segurança”. Isso não é só falso, como também é perigoso.&lt;/p&gt;

&lt;p&gt;Se o seu código roda no navegador, ele é público. Ele está acessível, inspecionável e, portanto, vulnerável se não for construído com cuidado. Isso significa que qualquer erro, qualquer configuração errada, qualquer input não validado, qualquer dado sensível mal gerenciado, pode abrir uma porta enorme para vazamento de informações, sequestro de sessão, roubo de identidade ou até ataques que derrubam o sistema.&lt;/p&gt;

&lt;p&gt;E mais do que isso: o usuário não sabe (e não quer saber) se foi o back-end, o front-end, a API, o servidor ou o banco de dados que falhou. O que ele sabe é que &lt;u&gt;foi o seu sistema que não protegeu ele&lt;/u&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  De quem é a responsabilidade?
&lt;/h2&gt;

&lt;p&gt;A resposta mais honesta é: de todo mundo. Mas, especificamente no front-end, existem responsabilidades diretas e intransferíveis.&lt;/p&gt;

&lt;p&gt;Se você está construindo a interface, você precisa garantir que:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Nenhum dado sensível seja exposto ou trafegue de forma insegura&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Toda interação do usuário que gere ações sensíveis esteja protegida contra falsificação de requisição, execução de scripts maliciosos ou roubo de sessão&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Os dados que você envia pro back-end estejam validados, sanitizados e dentro dos padrões que impedem exploração maliciosa&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No fim das contas, a segurança do sistema também começa na sua tela.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quais são as ameaças que rondam o front-end?
&lt;/h2&gt;

&lt;p&gt;Pra quem acha que segurança é só preocupação com o back-end, entender essas ameaças é o primeiro choque de realidade.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cross-Site Scripting (XSS)
&lt;/h3&gt;

&lt;p&gt;O XSS é, disparado, um dos ataques mais comuns em aplicações web. E o pior: é também um dos mais fáceis de acontecer quando quem desenvolve não entende segurança no front.&lt;/p&gt;

&lt;p&gt;Basicamente, o atacante injeta um script malicioso que será executado no navegador da vítima. Isso permite, por exemplo, que ele roube cookies, tokens de autenticação, dados sensíveis e até sequestre a conta do usuário.&lt;/p&gt;

&lt;p&gt;Na prática, qualquer campo que aceite entrada do usuário sem sanitização vira uma brecha em potencial. Um input de nome, um campo de comentário, uma URL com query string, qualquer coisa.&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%2Fjm3cmo1iz1r9rwi8x9nn.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%2Fjm3cmo1iz1r9rwi8x9nn.png" alt="Exemplo de busca sendo realizada e refletindo o conteúdo na página" width="501" height="255"&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%2Fkiw6zv090fz28qvikrz8.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%2Fkiw6zv090fz28qvikrz8.png" alt="Execução de um script de alerta indicando vulnerabilidade" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como prevenir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Nunca renderize dados do usuário diretamente no DOM sem sanitização&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use bibliotecas como &lt;code&gt;DOMPurify&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure corretamente a Content Security Policy (CSP) da aplicação&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trabalhe sempre com HTTPS para impedir interceptação&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Cross-Site Request Forgery (CSRF)
&lt;/h3&gt;

&lt;p&gt;Esse é o clássico golpe da ação forçada. Imagine que você está logado no seu internet banking e, sem perceber, acessa um site malicioso que, de forma escondida, faz uma requisição para transferir dinheiro da sua conta. Você não vê, não percebe, mas a ação acontece, porque o navegador carrega seus cookies de sessão automaticamente.&lt;/p&gt;

&lt;p&gt;Como prevenir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Configure cookies com atributos como &lt;code&gt;SameSite=Strict&lt;/code&gt;, &lt;code&gt;HttpOnly&lt;/code&gt; e &lt;code&gt;Secure&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adote tokens anti-CSRF nas requisições sensíveis.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sempre verifique os cabeçalhos &lt;u&gt;Origin&lt;/u&gt; e &lt;u&gt;Referer&lt;/u&gt; para garantir que a requisição veio de onde deveria.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;E, claro, implemente MFA.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2F7a8xkfjscnehi74pmz73.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%2F7a8xkfjscnehi74pmz73.png" alt="Formas de prevenção de CSRF em JS" width="484" height="217"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Injeção de SQL (Sim, o front participa desse risco)
&lt;/h3&gt;

&lt;p&gt;Apesar do SQL Injection ser um ataque direcionado ao back-end, a verdade é que quem não valida o que envia do front ajuda (e muito) a abrir essa porta.&lt;/p&gt;

&lt;p&gt;Se você não controla o que o usuário digita e não valida os dados antes de enviar, você está passando input sujo que, se o back-end não tratar corretamente, vira uma bomba na mão do banco de dados.&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%2Fuvrz8l8gcbug36dzpifk.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%2Fuvrz8l8gcbug36dzpifk.png" alt="Exemplo de injeção de SQL" width="800" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como prevenir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Valide e sanitize absolutamente tudo que o usuário digita&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nunca confie que “o backend cuida disso”. Validação no front não substitui a do back, mas ela impede que algo nocivo chegue na sua aplicação&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Ataques de Força Bruta
&lt;/h3&gt;

&lt;p&gt;Se o seu sistema permite infinitas tentativas de login sem bloqueio, parabéns: você acabou de facilitar a vida de quem quer adivinhar senhas.&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%2Fdlpax0sdhcrnpbnnce4c.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%2Fdlpax0sdhcrnpbnnce4c.png" alt="Exemplo de ataque de força bruta" width="800" height="294"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como prevenir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Limite tentativas de login&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adicione CAPTCHA a partir de um número razoável de tentativas inválidas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sempre implemente autenticação de dois fatores&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;E eduque os usuários e os times sobre a importância de senhas seguras&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Vulnerabilidades de configuração
&lt;/h3&gt;

&lt;p&gt;Se você já deixou uma chave de API exposta no código do front-end, você sabe do que estou falando. E se não sabe, eu te conto: qualquer segredo que vai pro navegador está, imediatamente, acessível pra qualquer pessoa que abrir o DevTools.&lt;/p&gt;

&lt;p&gt;Isso vale pra qualquer dado que você deixou no &lt;code&gt;localStorage&lt;/code&gt;, &lt;code&gt;sessionStorage&lt;/code&gt; ou até fixo em arquivos de configuração expostos no front-end.&lt;/p&gt;

&lt;p&gt;Como prevenir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Nunca armazene segredos no front-end&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cuide da configuração dos headers HTTP de segurança&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trabalhe com tokens que expiram rapidamente e que possam ser rotacionados&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;E revise constantemente o que está público no seu bundle e no armazenamento local&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Além disso, é importante revisar frequentemente quem tem acesso a quais partes do sistema e se essa permissão está de acordo com o que o usuário deve acessar. Por exemplo, um profissional que foi recentemente desligado não deve mais ter acesso a áreas críticas do sistema ou doo código, e se tiver, isso é uma falha de segurança.&lt;/p&gt;




&lt;h3&gt;
  
  
  Como trabalhar com autenticação segura no front-end?
&lt;/h3&gt;

&lt;p&gt;Essa é uma das perguntas mais recorrentes e também uma das mais negligenciadas por muitos times.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cookies
&lt;/h3&gt;

&lt;p&gt;São uma boa opção desde que configurados corretamente. Eles são enviados automaticamente para o servidor no mesmo domínio e podem ser protegidos usando atributos como &lt;code&gt;HttpOnly&lt;/code&gt;, &lt;code&gt;Secure&lt;/code&gt; e &lt;code&gt;SameSite&lt;/code&gt;. Porém, se não forem bem configurados, são alvo fácil para ataques como CSRF e XSS.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tokens
&lt;/h3&gt;

&lt;p&gt;Usar JWT ou OAuth com tokens pode ser uma escolha interessante, especialmente em arquiteturas sem estado. No entanto, armazenar tokens no localStorage ou sessionStorage abre portas para ataques XSS, já que qualquer script malicioso consegue acessar esses dados.&lt;/p&gt;

&lt;p&gt;O caminho mais seguro? Sempre que possível, use cookies com HttpOnly para tokens sensíveis e mantenha os tokens de acesso em memória, rotacionando frequentemente.&lt;/p&gt;




&lt;h3&gt;
  
  
  Boas práticas que &lt;strong&gt;não são negociáveis&lt;/strong&gt; no front
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Sanitização e validação de toda entrada de usuário&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nunca armazenar dados sensíveis no navegador além do estritamente necessário&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sempre trabalhar com HTTPS e configurar os headers de segurança corretamente&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Definir políticas de Content Security Policy robustas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Feedback controlado, com erros genéricos para quem não deveria ver detalhes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Manter dependências e bibliotecas sempre atualizadas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;E claro, tratar privacidade de dados como pilar, especialmente considerando a LGPD&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Ferramentas que todo dev front deveria conhecer (e usar)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;OWASP ZAP para varredura de segurança&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nmap para análise de rede&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Burp Suite para inspeção e manipulação de requisições&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nessus para scanner de vulnerabilidades&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;E claro, ferramentas como Snyk, Dependabot e npm audit para gestão de vulnerabilidades em dependências&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Além disso, consulte o &lt;a href="https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/README" rel="noopener noreferrer"&gt;site da OWASP&lt;/a&gt; para entender mais sobre segurança na web.&lt;/p&gt;




&lt;h3&gt;
  
  
  A LGPD te envolve também
&lt;/h3&gt;

&lt;p&gt;Se você coleta dados, você responde por eles. Se você guarda informações sensíveis que não faz sentido, se mantém dados do usuário oouu cliente quando não há motivo… você não só aumenta sua superfície de ataque, como também se expõe legalmente.&lt;/p&gt;

&lt;p&gt;Portanto, pratique &lt;strong&gt;Privacy by Design&lt;/strong&gt;: quanto menos dado você coleta e armazena, menor é seu risco.&lt;/p&gt;




&lt;h2&gt;
  
  
  Segurança não é uma opção, é sua responsabilidade
&lt;/h2&gt;

&lt;p&gt;Quando você entende que segurança não é uma camada, mas um pilar do seu trabalho, sua visão sobre desenvolvimento muda. Você deixa de ser só alguém que resolve tarefas e passa a ser parte ativa da construção de sistemas robustos, profissionais e confiáveis.&lt;/p&gt;

&lt;p&gt;E não tem sensação melhor do que olhar pro seu próprio código e saber que ele não só funciona, mas protege quem usa.&lt;/p&gt;

&lt;p&gt;Se você chegou até aqui, quero te ouvir:&lt;br&gt;
Quais práticas você já aplica?&lt;br&gt;
Qual dessas te deixou mais reflexiva hoje?&lt;br&gt;
E qual ferramenta de segurança ainda tá na sua lista pra dominar?&lt;/p&gt;




&lt;p&gt;📲 Me acompanhe nas redes para mais conteúdos de front-end e carreira:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/lari.sazevedo/?hl=pt-br" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt; - &lt;a href="https://www.linkedin.com/in/larissasazevedo/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; - &lt;a href="https://www.youtube.com/@lari.sazevedo" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>frontend</category>
      <category>owasp</category>
      <category>security</category>
    </item>
    <item>
      <title>Ferramentas do GitHub que otimizam o trabalho de qualquer dev</title>
      <dc:creator>Larissa Azevedo</dc:creator>
      <pubDate>Tue, 15 Apr 2025 20:16:45 +0000</pubDate>
      <link>https://dev.to/lariazevedo/ferramentas-do-github-que-otimizam-o-trabalho-de-qualquer-dev-jd0</link>
      <guid>https://dev.to/lariazevedo/ferramentas-do-github-que-otimizam-o-trabalho-de-qualquer-dev-jd0</guid>
      <description>&lt;p&gt;Se até esse momento tu só usa o GitHub para adicionar seus projetos, sem nem sequer caprichar um pouco na documentação dele, você está deixando de se beneficiar com diversas ferramentas que vão otimizar a forma como tu coda, colabora e se desenvolve.&lt;/p&gt;

&lt;p&gt;A ideia desse artigo é te mostrar como o GitHub vai muito além do versionamento e como você pode explorar esse ecossistema a seu favor, inclusive com exemplos reais de como uso cada recurso no meu dia a dia para você já começar a aplicar.&lt;/p&gt;

&lt;p&gt;Bora lá?&lt;/p&gt;




&lt;h2&gt;
  
  
  1. GitHub Actions: Automatize tudo, desde compilação, testes e pipelines
&lt;/h2&gt;

&lt;p&gt;O GitHub Actions é a ferramenta de automação nativa do GitHub. Com ela, você pode configurar workflows que executam desde testes e linters até deploys e atualizações de dependências.&lt;/p&gt;

&lt;p&gt;Como eu uso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rodar testes automatizados a cada push&lt;/li&gt;
&lt;li&gt;Rodar o lint antes de permitir um merge&lt;/li&gt;
&lt;li&gt;Deploy automático de sites com Vercel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Na &lt;a href="https://docs.github.com/pt/actions" rel="noopener noreferrer"&gt;documentação&lt;/a&gt; existem modelos prontos de fluxos de trabalho que você pode utilizar, vale a pena conferir.&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%2Flozy4yqybpigw36sjw9l.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%2Flozy4yqybpigw36sjw9l.png" alt="GitHub Actions" width="800" height="280"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. GitHub Codespaces: Desenvolva de qualquer lugar
&lt;/h2&gt;

&lt;p&gt;Já pensou em abrir seu VSCode com todo o ambiente do projeto pronto, só que direto do navegador? O Codespaces permite isso. É um ambiente de desenvolvimento seguro, configurável e dedicado que funcione como e onde você desejar.&lt;/p&gt;

&lt;p&gt;Para que serve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Colaboração mais ágil com outros devs&lt;/li&gt;
&lt;li&gt;Trabalhar em dispositivos com menos potência&lt;/li&gt;
&lt;li&gt;Garantir que todo mundo está usando o mesmo setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Como eu uso:&lt;/p&gt;

&lt;p&gt;Se me veio aquela ideia na mente e eu quero desenvolver, sem ter que configurar tudo do zero, é uma boa opção. Ou mesmo quando há algum ajuste a ser feito em uma pull request, eu posso utilizar o Codespaces para fazer o ajuste sem ter que alterar meu ambiente de desenvolvimento com outro trabalho em andamento. É produtivo!&lt;/p&gt;

&lt;p&gt;Conheça mais dele &lt;a href="https://github.com/features/codespaces" rel="noopener noreferrer"&gt;aqui&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%2Fhl229r84wh8kuoxirenn.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%2Fhl229r84wh8kuoxirenn.png" alt="GitHub Codespaces" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3. GitHub Projects: Gestão de tarefas dos seus próprios projetos
&lt;/h2&gt;

&lt;p&gt;O GitHub Projects é uma espécie de Trello embutido no GitHub — só que muito mais integrado. Você pode criar quadros com colunas, conectar issues e pull requests, e acompanhar o progresso do time sem sair da plataforma.&lt;/p&gt;

&lt;p&gt;Como eu uso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Em projetos open source ou pessoais, organizo ideias, bugs e melhorias com colunas de "To do", "In progress" e "Done" nos próprios repositórios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assim não preciso de outra ferramenta que disperse as informações ou que me dificulte de atualizar.&lt;/p&gt;

&lt;p&gt;Integração poderosa: combine com GitHub Actions para mover cards automaticamente com base em eventos (ex: PR merged)&lt;/p&gt;

&lt;p&gt;Conheça mais dele &lt;a href="https://docs.github.com/pt/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects" rel="noopener noreferrer"&gt;aqui&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%2Fhv32i0kh51pn2pqeia4v.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%2Fhv32i0kh51pn2pqeia4v.png" alt="GitHub Projects" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. GitHub Pages: Sites direto do repositório
&lt;/h2&gt;

&lt;p&gt;O GitHub Pages é uma ferramenta que permite hospedar sites estáticos diretamente de um repositório no GitHub, sem você precisar configurar servidor ou gastar com hospedagem. É muito utilizado por devs para portfólios, documentações e páginas institucionais de projetos.&lt;/p&gt;

&lt;p&gt;Para que serve:&lt;br&gt;
Permite criar e publicar sites a partir de arquivos HTML, CSS e JavaScript diretamente do repositório. O GitHub gera um domínio gratuito (&lt;a href="https://seunome.github.io" rel="noopener noreferrer"&gt;https://seunome.github.io&lt;/a&gt;) e mantém seu site sincronizado com o conteúdo da branch configurada (geralmente main ou docs).&lt;/p&gt;

&lt;p&gt;Como eu uso:&lt;br&gt;
Crio páginas para meus projetos usando o domínio fornecido pelo GitHub Pages. Facilita demais a minha vida!&lt;/p&gt;

&lt;p&gt;Conheça mais dele &lt;a href="https://pages.github.com/" rel="noopener noreferrer"&gt;aqui&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%2Fltugsx31rp3sq5z866l7.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%2Fltugsx31rp3sq5z866l7.png" alt="GitHub Pages" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5. GitHub Copilot — Seu par de programação com IA
&lt;/h2&gt;

&lt;p&gt;O GitHub Copilot é um assistente de código que utiliza IA para sugerir trechos de código enquanto você digita. Baseado no Codex (da OpenAI), ele aprende com seu contexto e antecipa o que você está tentando escrever.&lt;/p&gt;

&lt;p&gt;Para que serve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aumentar a velocidade de escrita de código&lt;/li&gt;
&lt;li&gt;Reduzir tarefas repetitivas&lt;/li&gt;
&lt;li&gt;Explorar padrões de solução que talvez você não conhecesse&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Como eu uso:&lt;br&gt;
Utilizo para fazer refatorações mais rápidas, escrita de testes e pedir sugestões de código em momentos de bloqueio.&lt;/p&gt;

&lt;p&gt;Importante: não aceite tudo no automático. Use como ponto de partida, sempre validando o que está sendo sugerido, até para ajudar no seu raciocínio na hora de codar.&lt;/p&gt;

&lt;p&gt;Conheça mais dele &lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;aqui&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%2F8zgtdwmg83tsq08j5i14.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%2F8zgtdwmg83tsq08j5i14.png" alt="GitHub Copilot" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Outras ferramentas que valem conhecer
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://docs.github.com/pt/discussions" rel="noopener noreferrer"&gt;GitHub Discussions&lt;/a&gt;: fórum dentro do repo para debates e perguntas.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/security/advanced-security" rel="noopener noreferrer"&gt;Security&lt;/a&gt; &amp;amp; &lt;a href="https://docs.github.com/pt/code-security/getting-started/dependabot-quickstart-guide" rel="noopener noreferrer"&gt;Dependabot&lt;/a&gt;: alertas e atualizações automáticas de segurança para suas dependências.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7. Onde/como aprender mais
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/pt" rel="noopener noreferrer"&gt;GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/apps/github-learning-lab" rel="noopener noreferrer"&gt;GitHub Learning Lab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://skills.github.com/" rel="noopener noreferrer"&gt;GitHub Skills&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Conclusão
&lt;/h2&gt;

&lt;p&gt;O GitHub não é só uma vitrine do seu código, é um ecossistema de produtividade completo para devs. Se você quer se destacar profissionalmente, seja júnior ou sênior, vale a pena investir tempo em dominar essas ferramentas. Elas encurtam caminhos, reduzem erros e mostram maturidade na sua forma de desenvolver.&lt;/p&gt;

&lt;p&gt;E aí, qual dessas ferramentas você já usou? Qual quer começar a explorar essa semana?&lt;/p&gt;




&lt;p&gt;📲 Me acompanhe nas redes para mais conteúdos de front-end e carreira:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/lari.sazevedo/?hl=pt-br" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt; - &lt;a href="https://www.linkedin.com/in/larissasazevedo/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; - &lt;a href="https://www.youtube.com/@lari.sazevedo" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>github</category>
      <category>productivity</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Como transformar seu README do GitHub em uma vitrine profissional irresistível</title>
      <dc:creator>Larissa Azevedo</dc:creator>
      <pubDate>Thu, 10 Apr 2025 12:33:29 +0000</pubDate>
      <link>https://dev.to/lariazevedo/como-transformar-seu-readme-do-github-em-uma-vitrine-profissional-irresistivel-44li</link>
      <guid>https://dev.to/lariazevedo/como-transformar-seu-readme-do-github-em-uma-vitrine-profissional-irresistivel-44li</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;“O GitHub pode ser só um repositório de código — ou pode ser a vitrine que vai atrair sua próxima grande oportunidade. A escolha é sua.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Em 2020, escrevi um &lt;a href="https://www.linkedin.com/pulse/criando-um-readmemd-sensacional-para-seu-perfil-santos-de-azevedo/?lipi=urn%3Ali%3Apage%3Ad_flagship3_pulse_read%3BcaiyNBiVRSG5rLPssMIG7w%3D%3D" rel="noopener noreferrer"&gt;artigo&lt;/a&gt; ensinando como criar um README.md “sensacional” no GitHub. De lá pra cá, muita coisa mudou. O mercado mudou. O comportamento dos recrutadores mudou. E eu mudei também.&lt;/p&gt;

&lt;p&gt;Hoje, com quase 10 anos de experiência em desenvolvimento web e ajudando devs a evoluírem suas carreiras, percebo que o GitHub vai muito além de código. Ele é um dos espaços mais poderosos para demonstrar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O que você domina;&lt;/li&gt;
&lt;li&gt;Como você pensa;&lt;/li&gt;
&lt;li&gt;O impacto que você gera;&lt;/li&gt;
&lt;li&gt;E principalmente: como você se posiciona.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neste artigo, quero te mostrar como transformar seu README em um verdadeiro portfólio interativo — que comunica suas habilidades técnicas, mas também seu branding, sua trajetória e seu diferencial.&lt;/p&gt;

&lt;p&gt;Vamos juntos?&lt;/p&gt;




&lt;h2&gt;
  
  
  Como criar o repositório com README personalizado no GitHub
&lt;/h2&gt;

&lt;p&gt;Antes de qualquer mágica acontecer, você precisa criar um repositório público com o exato nome do seu usuário no GitHub. Por exemplo: se seu usuário for @seunome, o repositório deve se chamar seunome.&lt;/p&gt;

&lt;p&gt;📌 Importante:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O repositório precisa ser público.&lt;/li&gt;
&lt;li&gt;Marque a opção de incluir um README.md na criação do repositório.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assim que fizer isso, o próprio GitHub vai exibir uma mensagem especial avisando que você desbloqueou a funcionalidade de personalizar seu perfil com o README desse repositório.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;É nesse momento que o seu GitHub deixa de ser só um repositório de código… e começa a ser uma vitrine poderosa do seu potencial como dev.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Anatomia de um README com impacto
&lt;/h2&gt;

&lt;p&gt;Agora que você já tem o repositório, é hora de criar um README que realmente represente quem você é, o que você sabe fazer e onde você quer chegar.&lt;/p&gt;

&lt;p&gt;Aqui estão os principais elementos para incluir:&lt;/p&gt;




&lt;h3&gt;
  
  
  ✍️ 1. Introdução com branding pessoal
&lt;/h3&gt;

&lt;p&gt;Comece com uma saudação acolhedora, seguida de uma frase que mostre quem você é e o que te move como profissional.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;👋 Olá, eu sou a Larissa Azevedo!  

Frontend Software Engineer | Microsoft MVP | Mentora de Carreira | Palestrante  

🚀 Minha missão é ajudar devs a alcançarem o ápice de suas carreiras na programação, unindo código, comunicação e propósito.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  🧠 2. Stack e especialidades
&lt;/h3&gt;

&lt;p&gt;Liste as tecnologias com as quais você trabalha e destaque sua zona de especialização. Pode ser com ícones, badges ou listas simples.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Stack:
React | Next.js | TypeScript | Node.js | Prisma | MySQL | Jest | Testing Library | Cypress  

Design &amp;amp; Estilo:
TailwindCSS | MUI | Styled Components | SASS | BEM 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  📂 3. Projetos com contexto, propósito e diferencial
&lt;/h3&gt;

&lt;p&gt;Evite listar projetos soltos sem explicação. Use descrições curtas para mostrar por que você fez e o que aprendeu/entregou.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🔗 [Projeto Nome do Projeto](link)
&amp;gt; Aplicação criada para resolver [problema X]. Utilizei [tecnologias].  
&amp;gt; Destaque: [implementação específica, aprendizado, resultado ou métrica].
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  📊 4. Como mostrar evolução (contribuições, histórico, insights)
&lt;/h3&gt;

&lt;p&gt;O gráfico de contribuição, os commits e os repositórios organizados contam uma história. Mostre constância, curiosidade e progressão.&lt;/p&gt;

&lt;p&gt;Você também pode incluir seções como:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📈 Em aprendizado:
- Clean Architecture no Front-end
- Testes E2E com Playwright

💡 Próximos passos:
- Finalizar projeto X
- Contribuir com Open Source em Y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  🌐 5. Links estratégicos
&lt;/h3&gt;

&lt;p&gt;Conecte seu GitHub ao seu ecossistema digital.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📲 Me encontre em outros cantos da internet:  LinkedIn | Newsletter | YouTube | Portfólio

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

&lt;/div&gt;






&lt;h3&gt;
  
  
  🎨 6. Visual e identidade (emojis, badges, gifs, imagens, storytelling)
&lt;/h3&gt;

&lt;p&gt;Solte a criatividade! Personalidade é um diferencial. Você pode usar emojis, badges, gifs curtos ou até uma colagem visual feita no Canva.&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%2Fj8nbxi8kblnsxe0py1u3.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%2Fj8nbxi8kblnsxe0py1u3.png" alt="Resultado do README da Larissa seguindo o artigo" width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Ferramentas que ajudam
&lt;/h2&gt;

&lt;p&gt;🛡 Geradores de badges&lt;br&gt;
&lt;a href="http://shields.io/" rel="noopener noreferrer"&gt;Shields.io&lt;/a&gt;&lt;br&gt;
&lt;a href="https://simpleicons.org/" rel="noopener noreferrer"&gt;Simple Icons&lt;/a&gt;&lt;br&gt;
&lt;a href="https://forthebadge.com/" rel="noopener noreferrer"&gt;Markdown Badge Generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📈 Stats e contribuições&lt;br&gt;
&lt;a href="https://github.com/anuraghazra/github-readme-stats" rel="noopener noreferrer"&gt;GitHub Readme Stats&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/ryo-ma/github-profile-trophy" rel="noopener noreferrer"&gt;GitHub Profile Trophy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧱 Layout com markdown&lt;br&gt;
&lt;a href="https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet" rel="noopener noreferrer"&gt;Markdown Cheatsheet&lt;/a&gt;&lt;br&gt;
&lt;a href="https://emojipedia.org/" rel="noopener noreferrer"&gt;Emojipedia&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📣 Compartilhe seu perfil e ajude outros devs!
&lt;/h2&gt;

&lt;p&gt;Criou um README com mais impacto e propósito? Poste no LinkedIn, compartilhe seu link e marque este artigo!&lt;/p&gt;

&lt;p&gt;Vamos fortalecer a comunidade mostrando como o GitHub pode ser muito mais do que código — pode ser seu diferencial no mercado.&lt;/p&gt;




&lt;p&gt;📲 Me acompanhe nas redes para mais conteúdos de front-end e carreira:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/lari.sazevedo/?hl=pt-br" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt; - &lt;a href="https://www.linkedin.com/in/larissasazevedo/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; - &lt;a href="https://www.youtube.com/@lari.sazevedo" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>github</category>
      <category>showdev</category>
      <category>readme</category>
    </item>
    <item>
      <title>Clean Code no Front-end</title>
      <dc:creator>Larissa Azevedo</dc:creator>
      <pubDate>Wed, 09 Apr 2025 13:07:32 +0000</pubDate>
      <link>https://dev.to/nodebr/clean-code-no-front-end-587m</link>
      <guid>https://dev.to/nodebr/clean-code-no-front-end-587m</guid>
      <description>&lt;p&gt;Escrever código limpo vai muito além de seguir boas práticas técnicas — é sobre construir legados sustentáveis dentro dos projetos e ser reconhecida como uma profissional que entrega valor de forma consistente.&lt;/p&gt;

&lt;p&gt;Durante a palestra Clean Code no Front-End, que compartilhei em parceria com a NodeBr no evento &lt;a href="https://www.youtube.com/watch?v=q3ym7qMMtjI" rel="noopener noreferrer"&gt;NodeBR [Campinas] #002 - The Fun Part of NodeJs - Part 2&lt;/a&gt;, falei sobre como aplicar os princípios do Clean Code de forma prática no dia a dia de quem trabalha com desenvolvimento front-end. &lt;/p&gt;

&lt;p&gt;E mais do que isso: como essas práticas podem &lt;strong&gt;fortalecer sua imagem profissional, facilitar a colaboração em equipe e garantir mais segurança, escalabilidade e manutenibilidade&lt;/strong&gt; para as aplicações.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que Clean Code importa?
&lt;/h2&gt;

&lt;p&gt;Você já parou pra pensar que o código que você escreve hoje será lido — talvez várias vezes — por outras pessoas (ou por você mesma no futuro)?&lt;/p&gt;

&lt;p&gt;Estudos mostram que, em média, para cada 10 linhas lidas, escrevemos 1 linha de código. Isso significa que legibilidade e clareza não são luxo — são necessidade.&lt;/p&gt;

&lt;p&gt;Código limpo é um ato de respeito com quem vai manter e evoluir seu trabalho. E mais: é também um diferencial competitivo para quem quer crescer como dev.&lt;/p&gt;

&lt;p&gt;Entendido sua importância, vamos olhar mais para o conceito.&lt;/p&gt;

&lt;h2&gt;
  
  
  Princípios
&lt;/h2&gt;

&lt;p&gt;Durante a palestra, discutimos os pilares clássicos que fazem parte da filosofia do Clean Code — e como aplicá-los com sabedoria no dia a dia:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DRY (Don’t Repeat Yourself)&lt;/strong&gt;: Evite duplicações. Sempre que possível, reutilize funções e abstrações já existentes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;KISS (Keep It Simple, Stupid)&lt;/strong&gt;: Soluções simples são mais fáceis de manter, testar e expandir.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;YAGNI (You Aren’t Gonna Need It)&lt;/strong&gt;: Não implemente o que ainda não é necessário. Evite lógica prematura.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Boas práticas
&lt;/h2&gt;

&lt;p&gt;Também é importante aplicar boas práticas de desenvolvimento:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Nomes significativos&lt;/strong&gt;: Variáveis e funções devem se explicar sozinhas. Um bom nome reduz necessidade de comentários.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Funções curta e coesas&lt;/strong&gt;: Cada função deve ter uma única responsabilidade. Código modular é mais legível e testável.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Evite código morto e comentários inúteis&lt;/strong&gt;: Comente apenas quando necessário e opte sempre por deixar o próprio código o mais autoexplicativo possível.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Organização de pastas e componentes&lt;/strong&gt;: Estruture o projeto de forma que qualquer pessoa consiga navegar e entender as responsabilidades dos arquivos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Componentização e separação de responsabilidades&lt;/strong&gt;: Cada módulo/component deve ter uma função bem definida dentro do sistema.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Evite escopo global e variáveis mal controladas&lt;/strong&gt;: Utilize const e let com consciência, limitando escopo sempre que possível.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ok, mas e no front-end? Tem algo mais?
&lt;/h2&gt;

&lt;p&gt;Vamos olhar mais algumas boas práticas do clean code no front-end, já que é a principal pauta do artigo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Organização de diretórios e arquivos
&lt;/h3&gt;

&lt;p&gt;No front-end, a estrutura do projeto impacta diretamente na produtividade e manutenção.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agrupe por funcionalidades&lt;/li&gt;
&lt;li&gt;Separe responsabilidades: componentes, serviços, contextos, hooks, estilos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dica prática: mantenha a estrutura simples no início, mas extensível com o crescimento do projeto.&lt;/p&gt;

&lt;h3&gt;
  
  
  Componentização e reutilização
&lt;/h3&gt;

&lt;p&gt;Evite repetir código criando componentes reutilizáveis e com responsabilidades bem definidas.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
Crie um &lt;code&gt;&amp;lt;Button /&amp;gt;&lt;/code&gt; genérico que aceita variações por props, ao invés de recriar o mesmo botão 10 vezes.&lt;/p&gt;

&lt;p&gt;Assim você:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deixa uma melhor legibilidade&lt;/li&gt;
&lt;li&gt;Facilita nos testes&lt;/li&gt;
&lt;li&gt;Torna uma refatoração mais segura&lt;/li&gt;
&lt;li&gt;Padroniza o visual da aplicação&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Nomes claros e autoexplicativos
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Evite
const x = true;

// Prefira
const isUserLoggedIn = true;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Isso vale para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Props dos componentes&lt;/li&gt;
&lt;li&gt;Hooks personalizados&lt;/li&gt;
&lt;li&gt;Estados e variáveis&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Separação de responsabilidades (SoC)
&lt;/h3&gt;

&lt;p&gt;Não misture lógica, visual e efeitos colaterais.&lt;/p&gt;

&lt;p&gt;Como aplicar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coloque regras de negócio em hooks&lt;/li&gt;
&lt;li&gt;Separe estilo com CSS-in-JS, Tailwind ou SCSS&lt;/li&gt;
&lt;li&gt;Evite lógica complexa dentro do JSX&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Use funções pequenas e coesas
&lt;/h3&gt;

&lt;p&gt;Funções grandes tendem a se tornar difíceis de manter.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Prefira isso
function validateUserData(data) { ... }
function submitUserData(data) { ... }
function refreshUI(data) { ... }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cada uma com uma única responsabilidade.&lt;/p&gt;

&lt;h3&gt;
  
  
  Comentários com propósito
&lt;/h3&gt;

&lt;p&gt;Evite comentários redundantes. Prefira documentar de forma útil com JSDoc:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/**
 * Calcula a área de um triângulo.
 * @param {number} base
 * @param {number} height
 * @returns {number}
 */
function calculateTriangleArea(base, height) {
  return (base * height) / 2;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Manipulação de eventos e DOM
&lt;/h3&gt;

&lt;p&gt;Mesmo com frameworks, entenda o que está por trás:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use delegação de eventos com parcimônia&lt;/li&gt;
&lt;li&gt;Evite múltiplos manipuladores desnecessários&lt;/li&gt;
&lt;li&gt;Centralize lógica de eventos em handlers nomeados&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Async/Await com tratamento de erros
&lt;/h3&gt;

&lt;p&gt;Sempre trate exceções de forma clara:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
  const response = await fetchData();
  updateUI(response);
} catch (error) {
  showToast("Erro ao buscar dados");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bastante coisa, não é?&lt;/p&gt;

&lt;h2&gt;
  
  
  Clean Code é para todas as fases da carreira
&lt;/h2&gt;

&lt;p&gt;Não importa se você é dev júnior, pleno ou sênior — o compromisso com um código limpo começa desde cedo. E cada Code Review, refatoração ou nova funcionalidade é uma oportunidade de aplicar esses princípios.&lt;/p&gt;

&lt;p&gt;Como mencionei durante a apresentação: o código limpo que você escreve hoje pode ser o código que você mesma vai agradecer por ter deixado legível amanhã.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ferramentas que ajudam nesse processo
&lt;/h2&gt;

&lt;p&gt;Algumas ferramentas que foram citadas na palestra e que podem facilitar essa missão no dia a dia:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Linters e formatadores (ESLint, Prettier): Garantem padronização e ajudam a evitar deslizes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testes automatizados (Jest, Testing Library): Com código desacoplado, testar fica mais fácil — e confiável.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CI/CD (GitHub Actions, Jenkins): Automatizam análise de qualidade e ajudam a manter o padrão mesmo em times grandes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Escrever um código limpo te faz crescer profissionalmente
&lt;/h2&gt;

&lt;p&gt;Mais do que uma prática técnica, adotar o Clean Code é uma atitude de maturidade profissional. Devs que se preocupam com clareza, legibilidade, manutenibilidade e escalabilidade do seu código ganham não só o respeito dos times, mas também visibilidade — e isso influencia diretamente nas oportunidades de promoção, liderança e reconhecimento.&lt;/p&gt;

&lt;p&gt;Se você leu até aqui, quero que compartilhe comigo como você escreve um código limpo no seu dia a dia :D&lt;/p&gt;

&lt;p&gt;📲 Me acompanhe nas redes para mais conteúdos de front-end e carreira:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/lari.sazevedo/?hl=pt-br" rel="noopener noreferrer"&gt;Instagram &lt;/a&gt; - &lt;a href="https://www.linkedin.com/in/larissasazevedo/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; - &lt;a href="https://www.youtube.com/@lari.sazevedo" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💼 E acompanhe também a NodeBr trazendo cada vez mais conteúdo incrível para você:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://linktr.ee/nodebr" rel="noopener noreferrer"&gt;Acompanhe a comunidade NodeBR&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/live/q3ym7qMMtjI?si=CLbeizWqs5hgYKZb" rel="noopener noreferrer"&gt;Assista à live completa do evento no YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>nodebr</category>
      <category>cleancode</category>
      <category>frontend</category>
    </item>
    <item>
      <title>🎤Comece já a palestrar!</title>
      <dc:creator>Larissa Azevedo</dc:creator>
      <pubDate>Fri, 24 Jun 2022 03:28:47 +0000</pubDate>
      <link>https://dev.to/lariazevedo/comece-ja-a-palestrar-4pfd</link>
      <guid>https://dev.to/lariazevedo/comece-ja-a-palestrar-4pfd</guid>
      <description>&lt;p&gt;Palestrar é uma ótima forma de compartilhar seu conhecimento com outras pessoas, além de poder alavancar muito a sua carreira e te expor a muitas oportunidades. &lt;/p&gt;

&lt;p&gt;Não se sabote pensando que o seu conteúdo é "simples demais" ou "básico", ele certamente será útil para alguém, principalmente quem não conhece o assunto que você compartilha.&lt;/p&gt;

&lt;p&gt;E não se cobre demais a respeito do nível ou complexidade que você terá no começo, conforme estiver tendo mais experiência, a forma como seu conteúdo é abordado irá evoluir, tranquilize-se quanto a isso.&lt;/p&gt;

&lt;p&gt;Em relação ao conteúdo que você pode palestrar, pode ser qualquer assunto, especialmente o que conhece ou trabalha e também o que deseja aprender, ensinar outras pessoas é uma das formas mais eficientes de se entender sobre um assunto, além da vivência. Trazer seu ponto de vista e experiência será um baita diferencial na sua apresentação.&lt;/p&gt;

&lt;p&gt;Então, entendido que você pode SIM palestrar, vamos ver o que precisa fazer e se atentar para fazer uma ótima palestra.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que precisa para começar?
&lt;/h2&gt;

&lt;p&gt;Vejamos, então, as primeiras e mais importantes etapas:&lt;/p&gt;

&lt;h3&gt;
  
  
  Saiba do que você irá falar
&lt;/h3&gt;

&lt;p&gt;Liste algumas opções e escolha um tema que queira palestrar. Busque responder algumas perguntas para ter uma ideia de como decidir, como &lt;em&gt;O que é isso?&lt;/em&gt;, &lt;em&gt;Para que serve isso?&lt;/em&gt;, &lt;em&gt;Como usa isso?&lt;/em&gt;, &lt;em&gt;Quando usa isso?&lt;/em&gt;, &lt;em&gt;Por que usa isso?&lt;/em&gt; , &lt;em&gt;Qual importância isso tem na sua vida e na vida de outras pessoas?&lt;/em&gt; e entre várias outras.&lt;/p&gt;

&lt;h3&gt;
  
  
  Defina os objetivos da sua palestra
&lt;/h3&gt;

&lt;p&gt;Analise o que você quer que as pessoas absorvam do conteúdo que você irá abordar, seja as características de uma tecnologia, os diferentes casos de uso de uma ferramenta, como tomar determinada decisão, ou até mesmo o que precisam saber sobre determinada coisa. Dessa forma será muito mais fácil para você elaborar seu conteúdo e para seu público entender. Lembre-se que deve ter um começo, meio e fim, garanta que nada será mencionado e deixado esquecido, sem conexão com o assunto principal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Atente-se ao local (presencial/online)
&lt;/h3&gt;

&lt;p&gt;Ao preparar a sua apresentação, garanta para quem lhe assiste a boa captação do que você fala, gesticula, apresenta e interage, independente de estar presencialmente ou a distância.&lt;/p&gt;

&lt;h3&gt;
  
  
  Saiba qual seu público (iniciantes/experientes)
&lt;/h3&gt;

&lt;p&gt;Não tente abraçar o mundo, foque apenas no público destinado o seu conteúdo, e especifique-o ao divulgar sua palestra. &lt;/p&gt;

&lt;h3&gt;
  
  
  Apresente para um público pequeno (grupo de amigos/colegas de trabalho)
&lt;/h3&gt;

&lt;p&gt;Em casos onde ainda sinta um certo bloqueio, receio ou vergonha, acomode-se com um grupo menor de pessoas e apresente diversas vezes, com a prática você estará mais confortável.&lt;/p&gt;

&lt;h3&gt;
  
  
  Divulgue sua palestra
&lt;/h3&gt;

&lt;p&gt;Não hesite nesse ponto, chame as pessoas para conhecer o que você sabe. Publique em suas redes, avise as pessoas, não sinta vergonha de compartilhar seu trabalho.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparando sua apresentação
&lt;/h2&gt;

&lt;p&gt;Vejamos agora o que fazer para seus slides, lembrando que se tratam de uma ferramenta de apoio e não o conglomerado de seus estudos e anotações.&lt;/p&gt;

&lt;h3&gt;
  
  
  Crie uma apresentação e título atraentes
&lt;/h3&gt;

&lt;p&gt;Abdique dos temas prontos e sem graça do Power Point, vale até pegar um template do &lt;a href="https://www.canva.com/" rel="noopener noreferrer"&gt;Canva&lt;/a&gt; ou do &lt;a href="https://prezi.com/pt/" rel="noopener noreferrer"&gt;Prezi&lt;/a&gt; e capriche na identidade visual. A respeito do título, use algo que chame atenção e que passe a ideia do que será encontrado na sua apresentação.&lt;/p&gt;

&lt;p&gt;Alguns exemplos que eu utilizei em palestras minhas para te ajudar:&lt;br&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%2F5q2jkw492hj9spd7x3sn.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%2F5q2jkw492hj9spd7x3sn.png" alt="Slide inicial da palestra Precisamos falar sobre acessibilidade web - Construindo uma web acessiva" width="800" height="449"&gt;&lt;/a&gt;&lt;br&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%2Fvcxsrvuyruiiodgzosvr.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%2Fvcxsrvuyruiiodgzosvr.png" alt="Slide inicial da palestra React vs NextJs - O que tem de diferente?" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Evite muitos textos nos slides
&lt;/h3&gt;

&lt;p&gt;Como já foi mencionado, a ideia de utilizar um slide é de dar apoio ao conteúdo que você está apresentando, a atenção deve estar na sua fala ao invés de no slide. Portanto cuidado com a quantidade de texto que colocar, lembrando que deve ficar legível e com a ortografia correta.&lt;/p&gt;

&lt;h3&gt;
  
  
  Utilize elementos visuais à sua apresentação
&lt;/h3&gt;

&lt;p&gt;Traga imagens, vídeos, gráficos, exemplos, o quanto conseguir trazer de conteúdo visual acerca do seu tema para ajudar na compreensão de quem assiste. E não esqueça de dar as devidas explicações sobre esses elementos, como também mencionar suas fontes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Utilize tópicos para guiar seu conteúdo
&lt;/h3&gt;

&lt;p&gt;Além de facilitar a compreensão para quem assiste, te ajuda a elaborar e apresentar. Lembre-se do começo, meio e fim. &lt;/p&gt;

&lt;h3&gt;
  
  
  Disponibilize o material usado após a palestra
&lt;/h3&gt;

&lt;p&gt;É uma ótima forma de manter um bom material de consulta para quem assistiu sua palestra.&lt;/p&gt;

&lt;h2&gt;
  
  
  Começando a palestrar
&lt;/h2&gt;

&lt;p&gt;Seguimos agora com atenções que devem ser dadas quando estiver apresentando:&lt;/p&gt;

&lt;h3&gt;
  
  
  Atente-se ao seu linguajar e sua performance (no palco/em frente à câmera)
&lt;/h3&gt;

&lt;p&gt;Não fique igual uma estátua, gesticule, articule bem quando for falar, utilize tanto da linguagem verbal quanto a corporal e se possível, ande pelo palco ou entre as pessoas da sala.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mantenha-se alerta e prepare-se para lidar com imprevistos
&lt;/h3&gt;

&lt;p&gt;É preferível que corra tudo bem, mas não se pode contar sempre com a sorte. Mantenha a calma e aja rápido caso aconteça algo que esteja fora dos seus planos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Comece com uma história (ou uma piada)
&lt;/h3&gt;

&lt;p&gt;Além de conectar o público logo no começo, você cria um ponto de partida para o seu conteúdo. Quem já viu minhas palestras já me viu contando piadas no início, faço isso tanto para fazer essa quebra de gelo como também mostrar um pouco de quem eu sou além da palestra. Ao preferir contar uma história, conecte-a ao seu conteúdo, pode ser uma situação fictícia ou vivenciada por você.&lt;/p&gt;

&lt;h3&gt;
  
  
  Envolva os participantes
&lt;/h3&gt;

&lt;p&gt;Incentive perguntas, questione quem já presenciou a situação que você narrou, conecte-se com seu espectador.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dicas adicionais
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ao finalizar, esteja aberto à feedbacks
&lt;/h3&gt;

&lt;p&gt;Ao fazer isso você saberá o que fez de bom e o pode melhorar na sua apresentação, acolha e aplique o que te falarem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Não se prepare de última hora
&lt;/h3&gt;

&lt;p&gt;Pesquise, elabore histórias, traga exemplos, valide suas informações, trabalhe duro para fornecer o melhor conteúdo possível.&lt;/p&gt;

&lt;h3&gt;
  
  
  Treine o quanto for possível (e mais um pouco)
&lt;/h3&gt;

&lt;p&gt;Qaunto mais fizer, mais fácil fica. Não ache que está bom, sempre tem o que melhorar.&lt;/p&gt;

&lt;p&gt;Sempre que faço minhas palestras, coloco todos esses tópicos em ação. Você adicionaria algum à lista? Me conta nos comentários e me chama pra conversar nas &lt;a href="https://beacons.ai/usakimodoki" rel="noopener noreferrer"&gt;minhas redes&lt;/a&gt; :D&lt;/p&gt;

&lt;p&gt;Um abraço e até a próxima ✨&lt;/p&gt;

</description>
      <category>palestrar</category>
      <category>speaking</category>
      <category>braziliandevs</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
