<?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: Kevin Oliveira</title>
    <description>The latest articles on DEV Community by Kevin Oliveira (@kvnol).</description>
    <link>https://dev.to/kvnol</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%2F86573%2F425ab2c1-81ae-4c55-b539-1d5ffdc971c4.jpg</url>
      <title>DEV Community: Kevin Oliveira</title>
      <link>https://dev.to/kvnol</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kvnol"/>
    <language>en</language>
    <item>
      <title>Deixe seu frontend mais consistente com componentes positionless</title>
      <dc:creator>Kevin Oliveira</dc:creator>
      <pubDate>Thu, 24 Aug 2023 19:17:45 +0000</pubDate>
      <link>https://dev.to/kvnol/deixe-seu-frontend-mais-consistente-com-componentes-positionless-1l62</link>
      <guid>https://dev.to/kvnol/deixe-seu-frontend-mais-consistente-com-componentes-positionless-1l62</guid>
      <description>&lt;p&gt;Por mais que muita gente diga por aí que front-end é fácil, não é. E só nós pessoas de front-end sabemos disso, pois pode até parecer simples posicionar elementos com CSS numa tela, mas será que está sendo feito da melhor forma?&lt;/p&gt;

&lt;p&gt;E são essas boas práticas que levam muito tempo para entrar na cabeça de uma pessoa iniciante, ter o conhecimento de como posicionar, alinhar ou separar elementos numa tela. E vou deixar meus cinco centavos sobre isso neste post.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mas de onde surgiu o termo "positionless"?
&lt;/h2&gt;

&lt;p&gt;Confesso que esse termo surgiu na minha cabeça (até pesquisei mas não encontrei nada) muito inspirado pelo termo "tableless" que foi uma revolução no desenvolvimento web há uns 15/20 anos quando devs largaram a mão de montar sites com tabelas e também pelo termo "stateless" que é basicamente ter componentes agnósticos livres de manipulação de estado.&lt;/p&gt;

&lt;p&gt;E com isso o termo "positionless" veio justamente por pensar na boa prática de deixar componentes de um layout livres de qualquer regra CSS que manipule seu próprio posicionamento na viewport.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como é uma tela sem componentes "positionless"?
&lt;/h2&gt;

&lt;p&gt;Eu tenho certeza que em projetos pessoais no início de carreira ou até em projetos legados de alguma empresa que tenha trabalhado você já viu um código dessa forma com elementos posicionados hardcoded:&lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo de botão no header&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="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"header"&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;"logo.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Fale conosco&lt;span class="nt"&gt;&amp;lt;/a&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;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.header&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&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;Ou até, também, numa lista de posts de um blog:&lt;/p&gt;

&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo de lista de posts&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="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"list"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"card"&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;"card-thumb.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"card-title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Título do post&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
  &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;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.card&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&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;blockquote&gt;
&lt;p&gt;Isso tudo se ainda não estiver com o estilo inline que deixaria tudo muito pior, né?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Repare nesses trechos de código que o posicionamento/separação dos elementos &lt;code&gt;.button&lt;/code&gt; e &lt;code&gt;.card&lt;/code&gt; estão cuidando do próprio posicionamento, seja com &lt;code&gt;position&lt;/code&gt; ou com &lt;code&gt;margin&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Mas agora pensa comigo, provavelmente esse button e esse card está sendo ou poderá ser utilizado em outras partes do site, certo? E se o posicionamento ou separação for diferente em outro lugar? Você vai sobrescrever esse código de que forma? Vai criar outra folha de estilo se for em outra página? Vai usar &lt;code&gt;!important&lt;/code&gt; se for na mesma página?&lt;/p&gt;

&lt;p&gt;Por que não deixar os componentes da sua aplicação agnósticos de posicionamento? Porque o problema não é usar position/margin/etc, isso são recursos que são feitos para serem usados em determinados casos, o problema é usá-los de forma errada que pode prejudicar todo o prosseguimento do seu desenvolvimento de layout.&lt;/p&gt;

&lt;p&gt;Então que tal deixar a responsabilidade do posicionamento para o pai daquele componente específico? No exemplo do botão do header, aproveitando o HTML, podemos ao invés de usar &lt;code&gt;position&lt;/code&gt; para jogar o botão para o lado direito do header alinhado ao logo, podemos fazer com flexbox dessa forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.header&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;space-between&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;Ficando ainda melhor não só na questão de deixar a responsabilidade de posicionamento para o pai, mas também por não criar uma nova camada deixando o layout mais complexo para ser renderizado e manutenido.&lt;/p&gt;

&lt;p&gt;E no exemplo da listagem de posts, deixando a responsabilidade de separação de cards para o pai podemos usar &lt;code&gt;gap&lt;/code&gt; na lista ao invés do &lt;code&gt;margin&lt;/code&gt; diretamente nos cards que estava afetando todos os cards da aplicação, dessa forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.list&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&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;h2&gt;
  
  
  "Mas e se eu precisar estilizar um elemento específico?"
&lt;/h2&gt;

&lt;p&gt;Certo, pode ser que você realmente precise editar o posicionamento de algum elemento específico, mas pense uma forma que aquilo não afete as outras partes de seu layout e também que force tanto a especificidade, deixando tudo muito complexo.&lt;/p&gt;

&lt;p&gt;Pense que uma vez que seu componente é agnóstico, ele pode ser incluído em qualquer lugar de seu layout e o pai/container dele que ficará responsável por isso, logo podemos fazer algo no sentido lá do primeiro exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.header&lt;/span&gt; &lt;span class="nc"&gt;.button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&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;MAS CALMA LÁ! É aí que você precisa repensar se essa é a melhor forma de se fazer isso, pois mesmo não afetando outras partes do site pode ter uma forma melhor e nesse exemplo específico, vimos que não, pois conseguimos posicionar o botão da forma que gostaríamos sem criar um segundo nível de especificidade, pois zero especificidade é melhor que uma especificidade.&lt;/p&gt;

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

&lt;p&gt;Com tudo isso podemos ver o quão consistente nosso layout fica e também o tanto de recurso que economizados não tendo que sobrescrever estilos usando o horroroso &lt;code&gt;!important&lt;/code&gt; ou criando especificidades desnecessárias que poderiam ser evitadas deixando a responsabilidade ao pai do seu componente.&lt;/p&gt;

&lt;p&gt;Antes de começar a criar suas divs e seus style.css ou de começar a manutenção do site de qualquer forma, pense bem em como aquele elemento será reutilizado e no que outros lugares de sua aplicação poderá ser afetada com aquela nova edição ou adição.&lt;/p&gt;

&lt;p&gt;Eu quero ouvir a opinião de vocês sobre isso nos comentários. That's all folks!&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências para estudo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/pt-BR/docs/Web/CSS/Specificity"&gt;Especificidade na MDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/domagojvidovic/dont-use-margins-for-spacing-between-components-use-gaps-4llc"&gt;Don’t Use Margins For Spacing Between Components, Use Gaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>webdev</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Como melhorar a nota no Google Pagespeed em sites WordPress</title>
      <dc:creator>Kevin Oliveira</dc:creator>
      <pubDate>Sun, 28 May 2023 04:12:21 +0000</pubDate>
      <link>https://dev.to/kvnol/como-melhorar-a-nota-no-google-pagespeed-em-sites-wordpress-3a5f</link>
      <guid>https://dev.to/kvnol/como-melhorar-a-nota-no-google-pagespeed-em-sites-wordpress-3a5f</guid>
      <description>&lt;h2&gt;
  
  
  Fazer projetos no WordPress sempre dá muito trabalho para chegar numa nota legal no Google Pagespeed Insights, né? Se liga nessas dicas que vou passar.
&lt;/h2&gt;

&lt;p&gt;Diversos fatores são necessários para que o Google Pagespeed Insights dê uma nota boa para seu site, várias destas &lt;a href="https://developers.google.com/speed/docs/insights/release_notes"&gt;métricas são atualizadas&lt;/a&gt; em alguns momentos e mesmo com essas dicas é sempre bom estar testando seu site na ferramenta da Google de tempos em tempos.&lt;/p&gt;

&lt;p&gt;É bom ressaltar também que, além de nota no Google Pagespeed Insights, o mais importante mesmo é a experiência do usuário. E é o que a Google leva em consideração na hora de rankear seu site.&lt;/p&gt;

&lt;p&gt;Claro que boa parte dessa nota é levando em consideração boas práticas de UX (User Experience), mas é bom pensar que não adianta seu site ter nota 100 se o seu usuário não conseguir utilizar seu site.&lt;/p&gt;

&lt;p&gt;Dizendo isso, neste post vou explicar diversas dicas que utilizo diariamente em projetos WordPress para melhorar a performance e consequentemente a nota no Google Pagespeed Insights.&lt;/p&gt;

&lt;h3&gt;
  
  
  Introdução
&lt;/h3&gt;

&lt;p&gt;Antes de tudo, é importante notar que o WordPress é uma ferramenta completa mas que também dá muito espaço para fazer coisas erradas, pois é muito fácil instalar vários plugins para fazer coisas simples que no final carregam diversos &lt;em&gt;assets&lt;/em&gt; desnecessários.&lt;/p&gt;

&lt;p&gt;Então a primeira dica é &lt;strong&gt;evite usar muitos plugins&lt;/strong&gt; e quando for usar, pesquise bem o que esse plugin adiciona na raiz do seu site pois pode acabar prejudicando muito a performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Plugin de cache
&lt;/h3&gt;

&lt;p&gt;Cachear e minificar seus assets é importantíssimo para uma melhor performance em seu site WordPress.&lt;/p&gt;

&lt;p&gt;O plugin que mais dá resultado nos projetos que faço é o &lt;a href="https://br.wordpress.org/plugins/wp-fastest-cache/"&gt;WP Fastest Cache&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prefira font-face, estilos e scripts locais ao invés de CDNs
&lt;/h3&gt;

&lt;p&gt;A facilidade de só adicionar um &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; do CDN é tentadora, mas é uma requisição e quanto mais requisições mais lento seu site fica. Pensando nisso, prefira sempre:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Baixar as fontes do Google Fonts e usar o transfonter.org para criar os estilos&lt;/li&gt;
&lt;li&gt;Baixar os scripts e estilos por NPM e criar um bundle de vendors com Gulp ou Webpack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dessa forma você evita requisições externas e deixa tudo a disposição do servidor, pronto para ser usado.&lt;/p&gt;

&lt;h3&gt;
  
  
  Faça preload dos arquivos de fontes
&lt;/h3&gt;

&lt;p&gt;Importante para evitar quebras de textos no carregamento, o que gera uma piora na &lt;a href="https://web.dev/i18n/pt/cls/"&gt;nota do CLS (Cumulative Layout Shift)&lt;/a&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="nt"&gt;&amp;lt;link&lt;/span&gt;
  &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"preload"&lt;/span&gt;
  &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"Roboto-Regular.woff2"&lt;/span&gt;
  &lt;span class="na"&gt;as=&lt;/span&gt;&lt;span class="s"&gt;"font"&lt;/span&gt;
  &lt;span class="na"&gt;crossorigin=&lt;/span&gt;&lt;span class="s"&gt;"anonymous"&lt;/span&gt;
&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Lazy loading nas imagens
&lt;/h3&gt;

&lt;p&gt;Carregue suas imagens por demanda com o atributo &lt;code&gt;loading="lazy"&lt;/code&gt; em suas imagens&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;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"foto.png"&lt;/span&gt; &lt;span class="na"&gt;loading=&lt;/span&gt;&lt;span class="s"&gt;"lazy"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Adicione &lt;code&gt;width&lt;/code&gt; e &lt;code&gt;height&lt;/code&gt; nas imagens
&lt;/h3&gt;

&lt;p&gt;Para evitar pioras notas no CLS é importantíssimo falar para o navegador qual o tamanho da imagem para que aquele espaço seja reservado na renderização antes da requisição da imagem.&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;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"foto.png"&lt;/span&gt; &lt;span class="na"&gt;loading=&lt;/span&gt;&lt;span class="s"&gt;"lazy"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"800"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"600"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dessa forma o navegador já reservará os 800x600px da imagem e não ficará empurrando o conteúdo quando a imagem for requisitada.&lt;/p&gt;

&lt;h3&gt;
  
  
  Utilize imagens otimizadas e no formato webp
&lt;/h3&gt;

&lt;p&gt;O &lt;a href="https://developers.google.com/speed/webp"&gt;formato webp&lt;/a&gt; é importantíssimo para um melhor carregamento de sua página em navegadores que já tem suporte para este formato.&lt;/p&gt;

&lt;p&gt;Há alguns plugins que facilitam a conversão e otimização, os que eu mais tive resultado foram o &lt;a href="https://br.wordpress.org/plugins/webp-express/"&gt;WebP Express&lt;/a&gt; e &lt;a href="https://wordpress.org/plugins/ewww-image-optimizer/"&gt;EWWW Image Optimizer&lt;/a&gt;, este último conta com diversas possibilidades de integração com CDNs o que facilita na hora de utilizar outro servidor para hospedar suas imagens.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reduza as queries
&lt;/h3&gt;

&lt;p&gt;Muitas das funções WordPress geram queries, pois essas funções fazem buscas no banco de dados e nos retornam resultados.&lt;/p&gt;

&lt;p&gt;Para ter uma performance melhor, ao invés de por exemplo, chamar várias vezes o título de um post com o &lt;code&gt;get_the_title()&lt;/code&gt; prefira criar uma variável &lt;code&gt;$title = get_the_title()&lt;/code&gt; e reutilize. Da mesma forma, invés de puxar várias vezes uma thumbnail com &lt;code&gt;get_the_post_thumbnail_url()&lt;/code&gt;, crie uma variável &lt;code&gt;$thumbnail_url = get_the_post_thumbnail_url()&lt;/code&gt; e reutilize. E assim com diversas outras funções, dessa forma você evita chamadas desnecessárias e além disso, código repetido.&lt;/p&gt;

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

&lt;p&gt;Mas estas são apenas alguns dos pontos que deixam seu site WordPress mais leve e consequentemente com a nota melhor no Google Pagespeed Insights e para fechar saiba que cada caso é um caso, pois cada tema WordPress foi feito de um jeito, com muitos plugins ou com poucos plugins, temas comprados ou temas feitos, servidores bons e ruins.&lt;/p&gt;

&lt;p&gt;Antes de procurar uma bala de prata verifique toda a condição daquele site e procure melhorar ponto por ponto. Melhorar a performance e a nota no Google Pagespeed Insights é um trabalho de formiguinha e tire da cabeça que você fará isso em um dia, é um trabalho recorrente, por isso tenha calma e vá refatorando aos poucos.&lt;/p&gt;

&lt;p&gt;E, claro, salve este post nos favoritos pois sempre que eu descobrir coisas novas sobre performance no WordPress atualizarei este post.&lt;/p&gt;

&lt;p&gt;That's all folks!&lt;/p&gt;

</description>
      <category>performance</category>
      <category>wordpress</category>
      <category>webdev</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Evite conflitos em seus repositórios GIT</title>
      <dc:creator>Kevin Oliveira</dc:creator>
      <pubDate>Sun, 28 May 2023 04:08:10 +0000</pubDate>
      <link>https://dev.to/kvnol/evite-conflitos-em-seus-repositorios-git-3iah</link>
      <guid>https://dev.to/kvnol/evite-conflitos-em-seus-repositorios-git-3iah</guid>
      <description>&lt;h2&gt;
  
  
  Você trabalha com mais de duas branchs nos repositórios GIT e sempre acaba com conflitos quando vai fazer merge de uma nova funcionalidade/ajuste?
&lt;/h2&gt;

&lt;p&gt;Em projetos que possuem branchs para produção (geralmente "master" ou "prod) e homologação ("dev" ou "staging"), alguns cuidados devem ser tomados para criar uma funcionalidade, ou fazer um ajuste no código.&lt;/p&gt;

&lt;h3&gt;
  
  
  Crie sua nova branch a partir de master
&lt;/h3&gt;

&lt;p&gt;A primeira dica é criar a sua nova branch (por exemplo "fix-button") sempre a partir da branch de produção, que é sua branch aprovada, que está no ar e atualizada:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout master
&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; fix-button
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora sua nova branch foi criada a partir de master.&lt;/p&gt;

&lt;p&gt;A partir disso, na sua branch "fix-button" faça os ajustes necessários e comite.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suba sua nova branch para homologação
&lt;/h3&gt;

&lt;p&gt;Estando tudo ok, é hora de subir esse ajuste na branch de homologação para aprovação do cliente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout dev
&lt;span class="nv"&gt;$ &lt;/span&gt;git merge fix-button
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora seus novos ajustes estão na branch dev.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dica de ouro para evitar conflitos
&lt;/h3&gt;

&lt;p&gt;E é agora que vem a dica:&lt;/p&gt;

&lt;p&gt;Uma vez que seus ajustes foram aprovados e podem ir para o ar, iremos fazer o merge da nossa branch "fix-button" diretamente para nossa branch "master".&lt;/p&gt;

&lt;h3&gt;
  
  
  Mas por quê?
&lt;/h3&gt;

&lt;p&gt;Imagine que antes dos ajustes da branch "fix-button" tivemos outros ajustes ("fix-header", "fix-footer", etc) e todos estes ajustes estão no ambiente de homologação MAS: NÃO FORAM APROVADOS.&lt;/p&gt;

&lt;p&gt;Não podemos fazer merge de "dev" diretamente para "master".&lt;/p&gt;

&lt;p&gt;Se "dev" for para "master" diversos outros ajustes, que ainda podem estar sendo desenvolvidos ou que ainda não fora aprovados, podem acabar quebrando nosso ambiente de produção.&lt;/p&gt;

&lt;p&gt;Por isso é perigosíssimo fazer merge da branch "dev" para "master".&lt;/p&gt;

&lt;h3&gt;
  
  
  Um breve resumo
&lt;/h3&gt;

&lt;p&gt;Resumindo, prefira seguir o fluxo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;master &amp;lt;- fix-button&lt;/li&gt;
&lt;li&gt;Faça os ajustes necessários em "fix-button"&lt;/li&gt;
&lt;li&gt;fix-button -&amp;gt; dev&lt;/li&gt;
&lt;li&gt;Aprove os ajustes em homologação&lt;/li&gt;
&lt;li&gt;fix-button -&amp;gt; master&lt;/li&gt;
&lt;li&gt;Delete a branch "fix-button"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Assim seu repositório ficará limpo e livre de conflitos.&lt;/p&gt;

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

&lt;p&gt;Claro que esse fluxo de branch não vai te livrar definitivamente de todos os conflitos que podem acontecer em seus projetos.&lt;/p&gt;

&lt;p&gt;Mas ter um fluxo claro de branchs em seu repositório deixa o desenvolvimento mais organizado e consequentemente teremos um processo com menos conflitos.&lt;/p&gt;

&lt;p&gt;That's all folks!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>git</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Pedir ajuda é diferente de pedir para resolverem seu problema</title>
      <dc:creator>Kevin Oliveira</dc:creator>
      <pubDate>Sun, 28 May 2023 04:03:42 +0000</pubDate>
      <link>https://dev.to/kvnol/pedir-ajuda-e-diferente-de-pedir-para-resolverem-seu-problema-1m13</link>
      <guid>https://dev.to/kvnol/pedir-ajuda-e-diferente-de-pedir-para-resolverem-seu-problema-1m13</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Este artigo foi migrado de um post que fiz no &lt;a href="https://www.facebook.com/groups/frontendbrasil/permalink/1262790657103017/"&gt;grupo Front-End Brasil lá no Facebook&lt;/a&gt;{:target="_blank"}{:rel="noopener"}&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Participo da comunidade front-end há alguns anos, antes mesmo de entrar na área, e não há nada que me deixa mais triste do que ver grupos — onde a galera deveria estar disseminando conteúdo de altíssima qualidade, ensinando e aprendendo — sujos com posts de pedidos que dizem, basicamente, “faz isso aqui pra mim”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nzl7Nx59--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://miro.medium.com/max/600/1%2AF8EKuD8bffs5pQdYc7rjng.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nzl7Nx59--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://miro.medium.com/max/600/1%2AF8EKuD8bffs5pQdYc7rjng.gif" alt="rage time" width="600" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Antes que eu arranje mais treta que eu já tenho e vocês venham pra cima de mim igual esse ser aí em cima, quero passar um pano quente aqui dizendo que não é errado ser iniciante, aliás todos já foram e sempre serão em algo na vida — Sempre haverá aquele dia que tomaremos um banho de água fria quando acharmos que somos bons o suficiente em algo — mas deve haver o bom senso entre saber o que difere o “me ajuda” com o “faz pra mim”.&lt;/p&gt;

&lt;h3&gt;
  
  
  Copiar e colar código não fará você aprender
&lt;/h3&gt;

&lt;p&gt;É triste pensar que muita gente cola um trecho de código no grupo, depois que alguém resolve, copia e cola na sua aplicação. Mas sinto-lhe dizer, a verdade dói e copiar e colar código não fará você aprender a programar.&lt;/p&gt;

&lt;p&gt;E o que me deixa mais cabisbaixo (&lt;em&gt;aqui toca a música do Chaves sozinho quando todo mundo foi pra Acapulco&lt;/em&gt;) é perceber que muitos não tentam entender o porquê daquele código pronto funcionar para não ter que pedir ajuda novamente num caso parecido, apenas comemoram e partem para a próxima.&lt;/p&gt;

&lt;p&gt;Ou pior do que isso, antes de pedir ajuda não consegue dar uma googleada ver do que se trata o erro, como fazer aquela funcionalidade ou como ou porque aquilo funciona daquela forma.&lt;/p&gt;

&lt;p&gt;Tenho certeza que, com o básico de lógica de programação ou bom-senso, você, formulando uma pergunta realmente construtiva (que pode, depois, ajudar o seu colega que tiver o mesmo problema), teria a luz da resposta antes de perguntar:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Oi, galera! Eu queria saber como eu posso ativar uma classe só SE eu clicasse no bot…” — “se”? Eu acho que já ouvi falar disso…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Você realmente gosta de escrever códigos?
&lt;/h3&gt;

&lt;p&gt;A primeira coisa que imagino quando vejo alguém jogando um bloco de código imenso num grupo (Não façam isso! Usem o Codepen), é que a pessoa não gosta de programar ou não tem paciência para exercer aquela função que exige paciência e capacidade lógica de resolver problemas.&lt;/p&gt;

&lt;p&gt;Não sei vocês, mas a sensação orgasmática de resolver um problema sozinho sem copiar nenhuma linha de código é incrível. Pode ser a coisa mais besta, mas quem nunca resolveu algum problema sozinho e gritou “Aê p%R\$@, consegui resolver!”. Eu recomendo a vocês sentirem esse prazer pelo menos uma vez por dia.&lt;/p&gt;

&lt;h3&gt;
  
  
  “Ok, Kevin, ok. Você trouxe o problema mas e a solução?”
&lt;/h3&gt;

&lt;p&gt;É claro que eu não poderia só trazer a polêmica e sair correndo (&lt;em&gt;mas até que eu poderia…&lt;/em&gt;), por isso trago alguns links clichês para vocês consultarem antes de encherem os grupos, que deveriam ser de qualidade, de chorume e pedidos de esmola.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coma a &lt;strong&gt;MDN (Mozilla Developer Network)&lt;/strong&gt; com farinha: &lt;a href="https://developer.mozilla.org/pt-BR/"&gt;https://developer.mozilla.org/pt-BR/&lt;/a&gt;{:target="_blank"}{:rel="noopener"}&lt;/li&gt;
&lt;li&gt;Use o Codepen e não cole mais código direto nos grupos, pelo amor de Deus: &lt;a href="https://codepen.io/"&gt;https://codepen.io&lt;/a&gt;{:target="_blank"}{:rel="noopener"}&lt;/li&gt;
&lt;li&gt;Estude no apaixonante e mágico &lt;strong&gt;Codecademy&lt;/strong&gt;: &lt;a href="https://www.codecademy.com/"&gt;https://www.codecademy.com&lt;/a&gt;{:target="_blank"}{:rel="noopener"}&lt;/li&gt;
&lt;li&gt;Estude com o &lt;strong&gt;Gustavo Guanabara&lt;/strong&gt; e divirta-se aprendendo a programar: &lt;a href="http://cursoemvideo.com.br/"&gt;http://cursoemvideo.com.br/&lt;/a&gt;{:target="_blank"}{:rel="noopener"}&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Acompanhe a tradução do &lt;a href="https://www.felipefialho.com/"&gt;Felipe Fialho&lt;/a&gt;{:target="_blank"}{:rel="noopener"} sobre: &lt;a href="https://www.felipefialho.com/blog/2016/do-zero-a-heroi-do-front-end-parte-1"&gt;Como se tornar um herói Front-end&lt;/a&gt;{:target="_blank"}{:rel="noopener"}&lt;/p&gt;

&lt;p&gt;Enfim, compartilhe sua opinião sobre o assunto nos comentários e vamos lutar por uma internet com menos chorume e mais conteúdo de qualidade.&lt;/p&gt;

&lt;p&gt;That’s all folks!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>discuss</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Como NÃO ser um bom front-end</title>
      <dc:creator>Kevin Oliveira</dc:creator>
      <pubDate>Sun, 28 May 2023 04:01:44 +0000</pubDate>
      <link>https://dev.to/kvnol/como-nao-ser-um-bom-front-end-50id</link>
      <guid>https://dev.to/kvnol/como-nao-ser-um-bom-front-end-50id</guid>
      <description>&lt;h2&gt;
  
  
  Quer ser um péssimo front-end? Neste post eu elenquei diversos pontos que farão você alcançar esta desgraça na sua carreira.
&lt;/h2&gt;

&lt;p&gt;Nós, desenvolvedores, que estamos cercados por conteúdo sobre tecnologia todos os dias vemos diversas boas dicas de como nós tornarmos melhoras desenvolvedores, boas práticas e como conquistar a atenção da empresa dos sonhos. Não é mesmo?&lt;/p&gt;

&lt;p&gt;O que ninguém fala (pelo menos eu nunca vi) é como não ser um bom desenvolvedor front-end, dicas do que te torna ruim nesta profissão e tantas outras coisas.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Não use GIT
&lt;/h3&gt;

&lt;p&gt;Obviamente não usar GIT deveria estar aqui na primeira dica, por que em 2017, com tantas ferramentas cloud (leia-se Dropbox, Google Drive e One Drive), nós deveríamos utilizar um linha de comando rápida e leve que versiona nosso código com apenas três comandos? Ao invés de criar pacotes zipados e fazer o backup disso tudo na internet…&lt;/p&gt;

&lt;p&gt;Não aceite quando seu colega disser para você clonar o repositório, onde já se viu ter que ficar baixando as coisas em CDNs de alta velocidade sendo que podemos armazenar tudo em simples pendrives?&lt;/p&gt;

&lt;p&gt;E mais do que isso, nada de rodar *&lt;em&gt;git pull origin &lt;code&gt;&amp;lt;branch&amp;gt;&lt;/code&gt;&lt;/em&gt; antes de editar o projeto, faça o seu trabalho e o próximo que se vire com os conflitos.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Acessibilidade? O que é isso!?
&lt;/h3&gt;

&lt;p&gt;Ter um site acessível a todos? &lt;strong&gt;Isso é coisa de comunista!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Não se preocupar com os cegos, surdos e deficientes motores é comum, ninguém faz isso para que gastar algumas horas antes de iniciar o projeto pensando em acessibilidade? E se for necessário mesmo, vemos isso depois, não é prioridade agora…&lt;/p&gt;

&lt;p&gt;Vamos fazendo testes e &lt;strong&gt;&lt;em&gt;se alguém reclamar, implementamos&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Fique no seu mundinho
&lt;/h3&gt;

&lt;p&gt;Participar de eventos e ver gente que &lt;strong&gt;&lt;em&gt;se acha o rockstar&lt;/em&gt;&lt;/strong&gt; palestrando por quase/mais de uma hora te enche o saco, você está no caminho certo.&lt;/p&gt;

&lt;p&gt;Conversar com outros devs, aprender nas conversas e socializar tomando uma cerveja realmente não deve ser legal. Até porque, na maioria das vezes, as pessoas falam muito e ficar no silêncio do quarto escuro com o shell aberto é bem melhor.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Não fale sobre o que você sabe
&lt;/h3&gt;

&lt;p&gt;O que mais assusta você é que alguém faça você ensinar ela a fazer alguma coisa, certo? Realmente é complicado ter tantos anos de estudo e, &lt;strong&gt;&lt;em&gt;de graça&lt;/em&gt;&lt;/strong&gt;, ensinar as pessoas a saberem sobre certa tecnologia também.&lt;/p&gt;

&lt;p&gt;Até porque o conhecimento foi feito para ser guardado e não queremos correr o risco de perder nosso emprego para alguém que pode vir a saber mais do que nós, certo? Pois é, é perigoso…&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Não aceite novas tecnologias
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Todo dia um novo framework JavaScript, por que esses caras não fazem outra coisa&lt;/em&gt;&lt;/strong&gt;, não é?&lt;/p&gt;

&lt;p&gt;Não aceitar novidades do mercado faz você estar muito bem posicionado nessa lista, até porque a linguagem não deve evoluir, ela tem que servir apenas para resolver o seu problema e deixar você na sua zona de conforto do conhecimento.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Ser intolerante é engraçado
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Programação é coisa de homem&lt;/em&gt;&lt;/strong&gt;, né? Como é que pode uma mulher sair do lugar dela e &lt;strong&gt;&lt;em&gt;vir querer roubar nossos trabalhos&lt;/em&gt;&lt;/strong&gt;. Pensar assim te dá uns belos pontos nesse lista. É isso aí, você está chegando ao topo!&lt;/p&gt;

&lt;p&gt;Pessoas que não sabem tanto quanto você são inferiores, mas talvez elas consigam tomar seu emprego. Por isso é importante ter cuidado, né?&lt;/p&gt;

&lt;p&gt;Você acha que a minoria quer muitos privilégios e tratamentos especiais? Opa, chefe! Boa, ganhou uns pontos.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Reinvente a roda sempre, custe o que custar!
&lt;/h3&gt;

&lt;p&gt;Soluções criativas já foram inventadas, mas já que eu sei &lt;strong&gt;&lt;em&gt;para que vou colocar o script de outra pessoa no meu código se eu posso fazer isso?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Esse meu projeto não é open source, mas &lt;strong&gt;&lt;em&gt;vou me basear em outros para fazer um e utilizar só em projetos próprios.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Nunca programe de graça
&lt;/h3&gt;

&lt;p&gt;Programar de graça é um absurdo, não é mesmo? &lt;strong&gt;&lt;em&gt;Tantos anos investindo na minha carreira com estudos e noites mal dormidas para programar algo open source?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tudo bem que eu utilizo Linux, faço back-end com PHP e uso Atom que são programas open source, mas &lt;strong&gt;&lt;em&gt;eu não programo de graça!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;E mesmo que meu projeto open source possa me trazer visibilidade no mercado e entrar numa grande empresa, &lt;a href="https://dev.to/blog/como-contribuir-em-projetos-open-source/"&gt;open source é só para otários&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Foque nos frameworks, saber o básico é para os fracos
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://twitter.com/tapmorales/status/931517202234335233"&gt;Seguindo a dica, muito bem observada&lt;/a&gt;, do amigo &lt;a href="https://twitter.com/tapmorales/"&gt;Daniel Tapias&lt;/a&gt;, o negócio hoje em dia para estar bem rankeado como um front-end ruim é manjar de todos os novos frameworks mas não conseguir resolver um problema simples de CSS, até &lt;strong&gt;&lt;em&gt;porque saber o básico é para os fracos.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Como não é programação, CSS é coisa para quem é júnior, um &lt;strong&gt;&lt;em&gt;bom front-end precisa saber de React com flux, redux, mastrux…&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Não ajude a comunidade a crescer
&lt;/h3&gt;

&lt;p&gt;Sabe aquele seu amigo/amiga que está começando a desenvolver, dando os primeiros passos como dev? Então, para que ajudar eles? Ele só vai ser um concorrente seu, não é mesmo? Até porque quando você começou ninguém te ajudou, você é autodidata demais, nunca entrou num StackOverflow, nunca abriu um tópico num fórum com dúvidas, nunca olhou a documentação de algo na MDN (até porque a MDN se escreve sozinha). Logo, se ninguém nunca te ajudou, não tem por que ajudar os outros, né?&lt;/p&gt;

&lt;p&gt;Se quer destruir sua carreira como front-end é uma ótima dica também, complementando a dica #4, não apontar o caminho das pedras, não indicar livros nos quais você teve facilidade em aprender, não indicar vídeos nos quais as dificuldades da profissão cairam por terra, não indicar cursos que você teve outro pensamento e descobriu novas formas de fazer as coisas.&lt;/p&gt;

&lt;p&gt;Acho que esse é o caminho certo, faça isso mesmo.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;E está constatado&lt;/strong&gt;: seguindo duas ou três itens dessa lista você já será considerado um developer ruim, por isso persista e não desista!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;São bastantes os pontos que tornam você um desenvolvedor front-end ruim. E essa lista pode, e irá, aumentar!&lt;/p&gt;

&lt;p&gt;Inspirado no post &lt;a href="https://medium.com/@danielorlean/15-dicas-infal%C3%ADveis-para-destruir-implacavelmente-sua-carreira-7ce04f34a76"&gt;15 Dicas Infalíveis para Destruir Implacavelmente sua Carreira&lt;/a&gt; do &lt;a href="https://medium.com/u/c0c05f30f30f"&gt;Daniel Orlean&lt;/a&gt;, usarei a frase:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O seu "Insucesso" só depende de você!!!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>beginners</category>
      <category>discuss</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Como contribuir em projetos open source sem codar?</title>
      <dc:creator>Kevin Oliveira</dc:creator>
      <pubDate>Sun, 28 May 2023 03:57:12 +0000</pubDate>
      <link>https://dev.to/kvnol/como-contribuir-em-projetos-open-source-4lk8</link>
      <guid>https://dev.to/kvnol/como-contribuir-em-projetos-open-source-4lk8</guid>
      <description>&lt;h2&gt;
  
  
  Não é só de código que vive o dev, mas também de toda ajuda de bom coração
&lt;/h2&gt;

&lt;p&gt;Muitas vezes, principalmente quando estamos começando, é difícil conceber ideias ou contribuir com projetos open source já existentes na internet, não é mesmo? Mas saiba que &lt;strong&gt;não é só de código que vive o dev&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Eu já passei por dilemas, e ainda passo — e acho que alguns de vocês também, onde chego em um projeto top e penso:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Eu poderia contribuir com isso, né? Seria massa… Mas não tenho conhecimento com essa tecnologia.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;O GitHub é o antro de projetos que podem mudar o mundo e não contribuir com isso, de alguma forma, pode vir a ser um desserviço à comunidade open source. Por isso, se você não tem conhecimento técnico de programação, para contribuir com esses projetos vou dar algumas dicas do que você pode fazer para ajudar:&lt;/p&gt;

&lt;h3&gt;
  
  
  Contribua com as documentações
&lt;/h3&gt;

&lt;p&gt;Sabe aquele mesmo projeto sensacional que você achou? Dê uma lida no &lt;strong&gt;&lt;em&gt;readme.md&lt;/em&gt;&lt;/strong&gt; e repare se o conteúdo está escrito da melhor forma, se o documento está condizente com as funcionalidades, faça revisões de gramática, melhorias na descrição dos links, crie um sumário e veja se o mesmo não necessita de uma tradução.&lt;/p&gt;

&lt;p&gt;No caso da tradução, é fato que saber inglês é fundamental para qualquer ser humano, mas isso não quer dizer que não devemos ter conteúdos em português em projetos open source, temos que manter nosso idioma ativo e vivo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ache bugs e abra issues
&lt;/h3&gt;

&lt;p&gt;Sou do tipo que &lt;strong&gt;&lt;em&gt;“me venha com o problema, mas traga também a solução”&lt;/em&gt;&lt;/strong&gt; e acho que muitos também pensam assim.&lt;/p&gt;

&lt;p&gt;Por isso, caso você não saiba como resolver aquele bug que achou testando o app, é extremamente importante relatar isso através das issues do projeto detalhando onde e como achou aquele problema e, talvez, como aquilo poderia ser resolvido.&lt;/p&gt;

&lt;h3&gt;
  
  
  Abra discussões de como o projeto poderia evoluir
&lt;/h3&gt;

&lt;p&gt;Através das issues você também pode iniciar discussões, como num fórum (&lt;a href="https://github.com/openschoolbr/forum/issues"&gt;veja o fórum da Open School Brasil&lt;/a&gt;), de como o projeto evoluir, quais os próximos passos poderiam ser tomados, ideias de novas features, design etc. Isso daria bastante pano para mangas e, a comunidade envolvida no projeto, a possibilidade e inviabilidade de implementar tais coisas.&lt;/p&gt;

&lt;p&gt;No caso do &lt;strong&gt;design do projeto&lt;/strong&gt; tenho dois exemplos meus, onde inciei através das issues, discussões para a nova &lt;a href="https://github.com/frontendbr/sugestoes/issues/20"&gt;identidade visual da comunidade Front-end Brasil&lt;/a&gt; e a &lt;a href="https://github.com/openschoolbr/forum/issues/3"&gt;discussão para a definição da marca Open School Brasil&lt;/a&gt;. Essas discussões geraram amizades e bons frutos.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Não é só de código que vive o dev”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Escreva artigos para a comunidade
&lt;/h3&gt;

&lt;p&gt;Da mesma forma que não é só de código que vive o dev, também podemos contribuir fora do GitHub e não viver só de commits, escrevendo artigos para a comunidade.&lt;/p&gt;

&lt;p&gt;E a &lt;a href="https://github.com/frontendbr/poste-mais"&gt;iniciativa Poste mais! da comunidade Front-end Brasil&lt;/a&gt; gera muitos frutos e conteúdos para a comunidade, como este artigo que estou escrevendo com base na issue &lt;a href="https://github.com/frontendbr/poste-mais/issues/46"&gt;#46&lt;/a&gt; do &lt;a href="https://medium.com/u/253abe226c47"&gt;Danilo Vaz&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Por isso, contribua com a comunidade, escreva artigos. Siga estes passos e faça o open source crescer.&lt;/p&gt;

&lt;p&gt;That's all folks!&lt;/p&gt;

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