<?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: Sther</title>
    <description>The latest articles on DEV Community by Sther (@stherzada).</description>
    <link>https://dev.to/stherzada</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1079118%2Fed48596d-4cad-49e7-862e-2201c7968d12.jpg</url>
      <title>DEV Community: Sther</title>
      <link>https://dev.to/stherzada</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stherzada"/>
    <language>en</language>
    <item>
      <title>Como eu aprendi a aprender (e por que a IA não veio pra pensar por você)</title>
      <dc:creator>Sther</dc:creator>
      <pubDate>Tue, 08 Sep 2026 23:48:00 +0000</pubDate>
      <link>https://dev.to/stherzada/como-eu-aprendi-a-aprender-e-por-que-a-ia-nao-veio-pra-pensar-por-voce-fhg</link>
      <guid>https://dev.to/stherzada/como-eu-aprendi-a-aprender-e-por-que-a-ia-nao-veio-pra-pensar-por-voce-fhg</guid>
      <description>&lt;p&gt;Eu entrei na programação de cabeça no finalzinho de 2022. Não foi um caminho gradual, do tipo "vou dar uma olhadinha e ver se gosto", foi mais um "preciso muito seguir esse caminho" dito em voz alta pra mim mesma. Comecei pelo básico: HTML, CSS, JavaScript.&lt;/p&gt;

&lt;p&gt;Fui me aprofundando nos conceitos, caí num bootcamp muito bom do Boticário, daqueles que ainda abriam a porta pra você trabalhar lá dentro (confesso que gostaria de ter aproveitado ainda mais aquela oportunidade), mas foi por ali que consegui meu primeiro emprego e comecei a atuar de fato na área.&lt;/p&gt;

&lt;p&gt;E aí começa a parte que eu quero contar de verdade: como eu aprendi a aprender e por que isso mudou completamente.&lt;/p&gt;

&lt;h2&gt;
  
  
  O aprendizado que eu conheci: Stack Overflow e código Frankenstein
&lt;/h2&gt;

&lt;p&gt;Antigamente, aprender programação era mais ou menos assim: você travava num problema, ia pro Stack Overflow, pesquisava muito e rezava um pai-nosso pra alguém já ter resolvido aquilo antes. Se tivesse resolvido, ótimo. Se não, você improvisava.&lt;/p&gt;

&lt;p&gt;O resultado eram códigos meio Frankenstein, feitos de pedaços colados com um toque generoso de lógica de negócio no meio. Funcionava? Funcionava. Era bonito? Nem sempre. Mas foi assim que eu e boa parte de quem começou naquela época aprendeu que essa era a forma de aprender: pesquisar, quebrar a cabeça, testar, errar, repetir.&lt;/p&gt;

&lt;p&gt;Esse processo lento tinha um valor escondido que eu só fui entender depois: ele me obrigava a realmente entender o problema. Não dava pra pular etapa.&lt;/p&gt;

&lt;h2&gt;
  
  
  A chegada da IA e o salto de aprendizado
&lt;/h2&gt;

&lt;p&gt;Aí chegou a inteligência artificial. Comecei a usar ativamente em 2024, e confesso que foi um salto. Ainda não era boa o suficiente pra tudo, mas ali eu percebi uma coisa: eu não precisava mais gastar dias inteiros numa única feature.&lt;/p&gt;

&lt;p&gt;Só que teve um detalhe importante. Eu ainda me sentia muito júnior no sentido de que estava aprendendo a pesquisar sobre os meus próprios problemas. E como eu ainda não sabia formular bem o que estava enfrentando, os resultados da IA não eram lá muito expressivos. Porque naquela época, e eu sinto que até hoje, vivências ainda contavam muito. A IA te dá o que você sabe pedir, e eu ainda estava aprendendo a pedir.&lt;/p&gt;

&lt;p&gt;Foi aí que caiu a ficha:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Se eu não aprender de verdade, eu não vou conseguir resolver os meus problemas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A IA não ia me salvar de não entender o que eu estava fazendo. Ela ia, no máximo, acelerar a minha ignorância se eu deixasse.&lt;/p&gt;

&lt;p&gt;E foi essa percepção que me fez correr atrás do tempo perdido: buscar conhecimento sobre arquitetura e entender de verdade o negócio em que eu estava atuando na época.&lt;/p&gt;

&lt;h2&gt;
  
  
  "Mas como eu vou aprender se a IA resolve por mim?"
&lt;/h2&gt;

&lt;p&gt;Essa é a pergunta que eu mais ouço, e a resposta é mais direta do que parece: &lt;strong&gt;a IA não resolve.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A IA não tem a capacidade de pensar sobre um problema. Se ninguém pensou nele antes, ela não vai pensar por você, não é assim que ela funciona. Ela é excelente em preencher lacunas, sugerir caminhos, otimizar o que já existe. Mas alguém precisa ter desenhado o problema, entendido a regra de negócio e decidido como aquilo começa e como termina.&lt;/p&gt;

&lt;p&gt;E é exatamente por isso que eu acredito que o futuro é sobre arquitetura. Sobre entender como as peças se encaixam antes de escrever a primeira linha. Sobre saber desenhar mentalmente onde o problema nasce e onde você acredita que ele deveria morrer.&lt;/p&gt;

&lt;h2&gt;
  
  
  As arquiteturas que vale a pena conhecer
&lt;/h2&gt;

&lt;p&gt;Quando eu falo em "estudar arquitetura", não é decorar nome bonito pra impressionar em entrevista. É entender a ideia por trás de cada abordagem, porque cada uma resolve um tipo diferente de dor. Aqui vão as principais que eu acho que todo dev deveria ao menos entender o conceito:&lt;/p&gt;

&lt;h3&gt;
  
  
  Domain-Driven Design (DDD)
&lt;/h3&gt;

&lt;p&gt;Talvez a que mais combina com o meu ponto. DDD é uma abordagem que coloca o domínio do negócio no centro de tudo. A ideia é que devs e especialistas do negócio falem a mesma língua (a &lt;em&gt;linguagem ubíqua&lt;/em&gt;), pra que o código reflita a realidade do problema, e não só a cabeça do programador. Conceitos como &lt;em&gt;bounded contexts&lt;/em&gt;, entidades, &lt;em&gt;value objects&lt;/em&gt; e agregados servem pra organizar a complexidade do negócio. Se você não entende o negócio, você não faz DDD, e é por isso que ela é tão relevante nesse novo cenário.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clean Architecture
&lt;/h3&gt;

&lt;p&gt;Popularizada pelo Robert C. Martin (o "Uncle Bob"), a Clean Architecture organiza o sistema em camadas concêntricas. No centro ficam as regras de negócio mais puras; nas bordas, os detalhes como banco de dados, framework e interface. A regra de ouro é a &lt;em&gt;dependency rule&lt;/em&gt;: as dependências sempre apontam pra dentro. Na prática, isso significa que sua lógica de negócio não deveria nem saber qual banco de dados você usa. Troca de banco, troca de framework, troca de UI, o coração continua intacto.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arquitetura Hexagonal (Ports &amp;amp; Adapters)
&lt;/h3&gt;

&lt;p&gt;Prima da Clean Architecture, criada pelo Alistair Cockburn. A ideia é isolar o núcleo da aplicação do mundo externo por meio de &lt;em&gt;ports&lt;/em&gt; (interfaces) e &lt;em&gt;adapters&lt;/em&gt; (implementações). Quer testar sem banco de verdade? Cria um adapter fake. Quer trocar de serviço externo? Troca só o adapter. O núcleo nem percebe. É maravilhosa pra testabilidade e pra manter o negócio desacoplado da tecnologia.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arquitetura em Camadas (Layered / N-tier)
&lt;/h3&gt;

&lt;p&gt;A clássica. Divide a aplicação em camadas horizontais: apresentação, aplicação/negócio, persistência e dados. É simples, é fácil de entender e ainda é a porta de entrada de muita gente. Nem tudo precisa ser sofisticado; às vezes a camada bem-feita já resolve.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arquitetura Orientada a Eventos (Event-Driven)
&lt;/h3&gt;

&lt;p&gt;Aqui os componentes conversam através de eventos, em vez de chamadas diretas. Alguém publica um evento ("pedido criado"), e quem se interessa reage a ele. O grande ganho é o desacoplamento e a escalabilidade: cada parte evolui no seu ritmo e você lida bem com processamento assíncrono. Muito comum em sistemas grandes que precisam aguentar volume.&lt;/p&gt;

&lt;h3&gt;
  
  
  Microsserviços vs. Monolito
&lt;/h3&gt;

&lt;p&gt;Não é bem uma "arquitetura", é mais uma decisão de organização. No monolito, tudo vive junto numa aplicação só. Nos microsserviços, você quebra a aplicação em serviços pequenos e independentes, cada um cuidando de uma capacidade de negócio. Cada abordagem tem seu preço, e entender quando usar cada uma vale mais do que saber a definição de cor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Além da arquitetura: entender a própria IA
&lt;/h2&gt;

&lt;p&gt;Estudar arquitetura é metade do caminho. A outra metade, no cenário de hoje, é entender como a IA funciona, não pra virar pesquisadora de machine learning, mas pra usar a ferramenta com consciência.&lt;/p&gt;

&lt;p&gt;Um exemplo concreto: entender o que é um &lt;strong&gt;token&lt;/strong&gt;. Modelos de linguagem não leem "palavras", eles processam texto quebrado em pedacinhos chamados tokens. Isso define o tamanho do contexto que o modelo aguenta, influencia custo e explica por que às vezes ele "esquece" o início de uma conversa longa. Saber disso muda a forma como você conversa com a ferramenta e o quanto você consegue extrair dela.&lt;/p&gt;

&lt;p&gt;Some a isso o hábito de ler documentação (sério), e usar a IA como aliada justamente nos pontos onde a doc é densa ou o conceito é complexo. Deixa a IA te ajudar a entender e otimizar, não a pular o entendimento. A diferença entre as duas coisas é tudo.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que eu levo como lição
&lt;/h2&gt;

&lt;p&gt;A forma como eu conheci o aprendizado em 2022 não é a mesma de hoje. E tudo bem, sabe? O que não pode é continuar aprendendo do mesmo jeito e achar que o mercado vai esperar. Se você não otimizar a sua própria forma de aprender, o mercado te engole. É o famoso "alguém já está pensando nisso".&lt;/p&gt;

&lt;p&gt;Então a lição que eu deixo é essa:&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Pense em como resolver problemas, não em como copiar soluções prontas.&lt;/li&gt;
&lt;li&gt;Proatividade vai ser a sua melhor amiga nos momentos em que a IA não sabe o que fazer, que são justamente os momentos que definem um bom profissional.&lt;/li&gt;
&lt;li&gt;Você não é burra e nem está pra trás. Não é sobre isso. É sobre entender o que pode melhorar e otimizar sempre.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;A IA não veio pra pensar por você. Ela veio pra amplificar quem já sabe pensar. Então continua estudando arquitetura, continua entendendo o negócio, continua desenhando o problema do começo ao fim. O resto é ferramenta.&lt;/p&gt;

&lt;p&gt;Espero ter dito algo que te dê algum insight.&lt;/p&gt;

&lt;p&gt;Câmbio e desligo.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>braziliandevs</category>
      <category>software</category>
    </item>
    <item>
      <title>A importância de um HTML semântico</title>
      <dc:creator>Sther</dc:creator>
      <pubDate>Wed, 03 Sep 2025 22:40:59 +0000</pubDate>
      <link>https://dev.to/stherzada/a-importancia-de-um-html-semantico-58j9</link>
      <guid>https://dev.to/stherzada/a-importancia-de-um-html-semantico-58j9</guid>
      <description>&lt;p&gt;Olá! Eu sou a Sther e hoje quero compartilhar com vocês a importância do HTML semântico.&lt;br&gt;
Muita gente pensa que frontend é só sair colocando &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; e "ser feliz". Mas, a longo prazo, isso pode se transformar em um verdadeiro pesadelo: código confuso, difícil de manter, prejudicial para o SEO e nada acessível para usuários que dependem de tecnologias assistivas.&lt;/p&gt;

&lt;p&gt;Aí que entra o poder da &lt;strong&gt;semântica&lt;/strong&gt; :D&lt;/p&gt;
&lt;h2&gt;
  
  
  🏷️ O que é HTML Semântico?
&lt;/h2&gt;

&lt;p&gt;Segundo o &lt;a href="https://developer.mozilla.org/pt-BR/docs/Glossary/Semantics" rel="noopener noreferrer"&gt;MDN Web Docs&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Semântica:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Na programação, a semântica se refere ao significado de um trecho de código — por exemplo, "que efeito tem a execução dessa linha de JavaScript?" ou "que finalidade ou função esse elemento HTML tem" (em vez de "como ele se parece?").&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ou seja, não é sobre a aparência de um elemento, mas sobre o significado e o papel que ele exerce dentro da página.&lt;/p&gt;

&lt;p&gt;Um exemplo simples:&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="c"&gt;&amp;lt;!-- Ruim: sem semântica --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;Meu título principal&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;Seção de artigos&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;Rodapé&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Bom: com semântica --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Meu título principal&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;section&amp;gt;&lt;/span&gt;Seção de artigos&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;Rodapé&lt;span class="nt"&gt;&amp;lt;/footer&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Com o uso correto, navegadores, mecanismos de busca e leitores de tela conseguem entender melhor a estrutura do conteúdo.&lt;/p&gt;

&lt;h2&gt;
  
  
  📈 HTML Semântico e SEO
&lt;/h2&gt;

&lt;p&gt;O SEO (Search Engine Optimization) é um dos maiores aliados de quem quer destacar um site nos mecanismos de busca.&lt;/p&gt;

&lt;p&gt;Um dos erros mais comuns é usar vários &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; na mesma página: isso confunde o bot do Google,  e ele não sabe qual título considerar como o principal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&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="c"&gt;&amp;lt;!-- Errado --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Sobre nós&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Produtos&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Contato&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Correto --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Minha Empresa&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Sobre nós&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Produtos&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Contato&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;A hierarquia correta de cabeçalhos ajuda os “bots” a entenderem a estrutura da informação e melhora o ranqueamento do site.&lt;/p&gt;

&lt;h2&gt;
  
  
  ♿ HTML Semântico e Acessibilidade
&lt;/h2&gt;

&lt;p&gt;A acessibilidade é uma das funcionalidades principais do site, gosto de imaginar que garante que qualquer pessoa consiga navegar pelo seu site, inclusive quem utiliza leitores de tela.&lt;/p&gt;

&lt;p&gt;Veja a diferença que uma boa estrutura faz:&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;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Blog da Sther&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#artigos"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Artigos&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#sobre"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Sobre&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"artigos"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Por que HTML semântico importa?&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Explicação do conteúdo…&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Com essa organização, o leitor de tela consegue identificar cabeçalho, menu, conteúdo principal e artigos de forma clara.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 ARIA: Quando a Semântica Precisa de Ajuda
&lt;/h2&gt;

&lt;p&gt;Nem sempre apenas as tags são suficientes. Em elementos dinâmicos  como carrosséis, abas ou menus dropdown  é possível usar atributos ARIA para dar mais contexto às tecnologias assistivas.&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;role=&lt;/span&gt;&lt;span class="s"&gt;"region"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Carrossel de imagens"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Imagem anterior"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;◀&lt;span class="nt"&gt;&amp;lt;/button&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;"foto1.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Pôr do sol na praia"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"false"&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;"foto2.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Montanha nevada"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Próxima imagem"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;▶&lt;span class="nt"&gt;&amp;lt;/button&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;Aqui, o &lt;code&gt;role="region"&lt;/code&gt; indica que se trata de um carrossel, e o &lt;code&gt;aria-label&lt;/code&gt; descreve os botões para quem não consegue vê-los. Assim, a experiência de navegação se torna mais inclusiva e acessível.&lt;/p&gt;

&lt;p&gt;O HTML semântico vai muito além de um detalhe técnico: ele é a base para sites mais organizados, acessíveis e preparados para o futuro.&lt;br&gt;
Praticar boas escolhas de tags e atributos não só facilita a vida de quem desenvolve, como também melhora a experiência de quem navega.&lt;/p&gt;

&lt;p&gt;Obrigada por te lido até aqui, câmbio desligo.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>html</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Front-end além de pintar botão!</title>
      <dc:creator>Sther</dc:creator>
      <pubDate>Wed, 02 Jul 2025 13:26:24 +0000</pubDate>
      <link>https://dev.to/stherzada/front-end-alem-de-pintar-botao-50pb</link>
      <guid>https://dev.to/stherzada/front-end-alem-de-pintar-botao-50pb</guid>
      <description>&lt;p&gt;Oi, pessoal! Eu sou a Sther, e esse é um &lt;em&gt;blogpost&lt;/em&gt; sobre meu aprendizado em usar cache no front-end.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SIM, CACHE NO FRONTEND!&lt;/strong&gt; Achou que front-end era só pintar botão ou pensar em componente mobile first?&lt;/p&gt;

&lt;p&gt;Bom… tambémmm é. XD&lt;/p&gt;

&lt;p&gt;Porém temos umas coisas bem legais que podemos aproveitar nele, e uma delas é o ✨cache✨. &lt;/p&gt;

&lt;p&gt;Você sabia que ele não vive só no back-end? Então, bora ver como funciona!&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que usar cache no front-end?
&lt;/h2&gt;

&lt;p&gt;Às vezes, a gente tem aquele dado que não muda com frequência, e queremos evitar requisições desnecessárias toda vez que a página for atualizada. &lt;br&gt;
Aí entra o cache no front, que pode salvar nossa performance e até melhorar a experiência do usuário.&lt;/p&gt;


&lt;h2&gt;
  
  
  Aqui são algumas formas de fazer cache no front:
&lt;/h2&gt;

&lt;p&gt;ㅤ&lt;/p&gt;
&lt;h3&gt;
  
  
  🟡 SessionStorage
&lt;/h3&gt;

&lt;p&gt;Guarda os dados enquanto a aba está aberta. É ótimo para dados temporários que não precisam sobreviver a um refresh completo.&lt;/p&gt;

&lt;p&gt;Mas, como você acessa isso?&lt;/p&gt;

&lt;p&gt;Segue aqui um exemplo:&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="nx"&gt;sessionStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;nome&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;Sther&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;sessionStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;nome&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 'Sther'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Quando posso usar isso?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Em um formulário de múltiplas etapas. O usuário pode navegar entre os passos sem perder o progresso, mas se fechar a aba… já era!&lt;/p&gt;




&lt;h3&gt;
  
  
  🟢 LocalStorage
&lt;/h3&gt;

&lt;p&gt;O meu preferido! Ele persiste os dados mesmo após fechar o navegador. Ideal para lembrar preferências do usuário, temas, login, etc.&lt;/p&gt;

&lt;p&gt;Mas como posso acessar isso?&lt;/p&gt;

&lt;p&gt;Segue um exemplo, ele é muito parecido com o SessionStorage quando vamos fazer a chamada:&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="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;tema&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;dark&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tema&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;tema&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 'dark'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo real:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Shopify utiliza isso no processo de checkout (&lt;a href="https://shopify.dev/docs/api/checkout-ui-extensions/2024-10/apis/storage" rel="noopener noreferrer"&gt;veja aqui&lt;/a&gt;). Quando você adiciona um produto ao carrinho, os dados são salvos no LocalStorage, se você recarregar a página, o carrinho continua lá! Isso dá uma sensação de continuidade super fluida.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Outros exemplos de uso que são conhecidos:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lembrar o tema claro/escuro da aplicação&lt;/li&gt;
&lt;li&gt;Salvar o token de autenticação (embora não seja recomendado)&lt;/li&gt;
&lt;li&gt;Lembrar filtros ou preferências em uma listagem de produtos&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔵 IndexedDB
&lt;/h3&gt;

&lt;p&gt;É um banco de dados completo no navegador. Suporta dados estruturados e de grande volume, diferente dos dois acima que são key-value simples. É mais complexo de usar porém muito poderoso!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como posso acessar?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O acesso ao IndexedDB é assíncrono e um pouco mais verboso:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;indexedDB&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;meuBanco&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onsuccess&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="c1"&gt;// Aqui você pode começar a ler e escrever dados&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onerror&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&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;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Erro ao abrir o banco&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;event&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;&lt;strong&gt;Exemplo real:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O Google Docs usa IndexedDB para salvar seus documentos offline. Mesmo se você perder a conexão, ele continua funcionando e depois sincroniza com o servidor e também PWAs que precisam funcionar sem conexão!&lt;/p&gt;




&lt;p&gt;Olha quanta coisa bacana dá pra fazer além de pintar alguns botões, hahaha&lt;/p&gt;

&lt;p&gt;É &lt;strong&gt;ÓBVIO&lt;/strong&gt; que o back-end tem seu papel essencial, mas pensando em performance, experiência do usuário e praticidade, vale a pena explorar o que temos disponível no navegador.&lt;/p&gt;

&lt;p&gt;É isso, pessoal, obrigada por terem lido até aqui!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Câmbio e desligo!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>frontend</category>
      <category>braziliandevs</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Como foi voltar para o desenvolvimento?</title>
      <dc:creator>Sther</dc:creator>
      <pubDate>Tue, 03 Sep 2024 17:15:35 +0000</pubDate>
      <link>https://dev.to/stherzada/como-foi-voltar-para-o-desenvolvimento-3kmg</link>
      <guid>https://dev.to/stherzada/como-foi-voltar-para-o-desenvolvimento-3kmg</guid>
      <description>&lt;p&gt;Oi, eu sou a &lt;strong&gt;Sthefany Sther&lt;/strong&gt;, mas você pode me conhecer como Sther ou Stherzada. Neste texto, quero compartilhar minha experiência no mundo do desenvolvimento. Para quem não me acompanha nas redes, vou dar um breve contexto. Eu fazia lives de live coding na Twitch e, diga-se de passagem, sou uma ótima comunicadora. Fui contratada por uma empresa como Tech Community, mas como o projeto não estava avançando, fui realocada como Product Manager. Desde então, fiquei nessa posição por um tempo.&lt;/p&gt;

&lt;p&gt;Minha experiência como &lt;em&gt;Product Manager&lt;/em&gt; foi muito boa. Eu criava dashboards, organizava tarefas, melhorava fluxos e, claro, ajudava o time da maneira que conseguia. Sinto que essa experiência me enriqueceu muito como profissional, mas ainda assim, eu sentia aquela vontade de estar no meio de campo, criando features incríveis, sabe? Queria codar. Para não perder o ritmo de aprendizado em programação, continuei fazendo live coding, desenvolvendo projetos mais simples, como meu &lt;a href="https://new-portfolio-liart-six.vercel.app" rel="noopener noreferrer"&gt;portfólio&lt;/a&gt; e o &lt;a href="https://github.com/stherzada/tindev" rel="noopener noreferrer"&gt;Tindev&lt;/a&gt;. Esse conhecimento me permitia ir além do "Jira" no meu trabalho, pois eu sabia um pouco sobre programação.&lt;/p&gt;

&lt;p&gt;Até que apareceu uma oportunidade através de um dos viewers da minha live, que hoje, além de parceiro de trabalho, é meu amigo, me deu a chance de voltar para o desenvolvimento. &lt;/p&gt;

&lt;p&gt;Fiz a entrevista e expliquei que era Product Manager, mas que desejava muito voltar para o desenvolvimento. Tentei destacar meus pontos fortes, e, cara, essa entrevista foi maravilhosa, pois tive a sensação de que estava seguindo o que realmente queria, e não sendo induzida.&lt;/p&gt;

&lt;p&gt;Uma semana depois, fui chamada para trabalhar onde estou hoje, na Carcará. Pretendo muito, no futuro, escrever sobre minha experiência aqui, porque vocês não imaginam o quanto eu mudei nesse tempo. A Carcará é uma empresa da Deco, onde implementamos e-commerce e buscamos a melhor performance possível. &lt;/p&gt;

&lt;p&gt;Meu onboarding foi diferenciado; conheci quase todos pessoalmente por conta do Team Building, o que me deu uma noção melhor de quem é quem. Depois de todos esses processos, hoje estou implementando uma loja que, até agora, não caiu a ficha que estou fazendo.&lt;/p&gt;

&lt;p&gt;O resumo disso tudo é que, se você tem um desejo e vontade, corra atrás. Mostre-se de alguma forma, seja através de código de aprendizado ou de uma grande implementação, documentando seu processo. Deixe que o mundo te enxergue de alguma maneira. Não há receita certa para o sucesso, mas existem formas de alcançá-lo.&lt;/p&gt;

&lt;p&gt;Obrigada por ter lido até aqui. &lt;em&gt;Câmbio, desligo.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>programming</category>
      <category>braziliandevs</category>
    </item>
  </channel>
</rss>
