<?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: Erica Rodrigues</title>
    <description>The latest articles on DEV Community by Erica Rodrigues (@ericarodrigs).</description>
    <link>https://dev.to/ericarodrigs</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%2F1157204%2Fe8e28ffa-a725-4b7b-a3c7-a9dfe3d5b7f6.jpeg</url>
      <title>DEV Community: Erica Rodrigues</title>
      <link>https://dev.to/ericarodrigs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ericarodrigs"/>
    <language>en</language>
    <item>
      <title>Conventional Commits</title>
      <dc:creator>Erica Rodrigues</dc:creator>
      <pubDate>Sat, 06 Jul 2024 17:50:52 +0000</pubDate>
      <link>https://dev.to/ericarodrigs/conventional-commits-8mh</link>
      <guid>https://dev.to/ericarodrigs/conventional-commits-8mh</guid>
      <description>&lt;p&gt;Hoje vou falar um pouco sobre a importância dos &lt;em&gt;Conventional Commits&lt;/em&gt; (e &lt;em&gt;Gitmojis&lt;/em&gt;!) 💻✨&lt;/p&gt;

&lt;p&gt;Commits padronizados são essenciais para manter a qualidade e a organização do código-fonte de um projeto. A comunidade em geral recomenda seguir padrões como os &lt;em&gt;Conventional Commits&lt;/em&gt;, que especificam um formato claro para as mensagens de commit, como "tipo(scope): mensagem", onde o tipo indica o propósito do commit (ex: feat para novas funcionalidades, fix para correções de bugs) e o escopo opcional descreve a parte do código alterada.&lt;/p&gt;

&lt;p&gt;É crucial que as mensagens sejam sucintas e claras, destacando de forma resumida o que foi feito em cada commit. Isso não só melhora a compreensão do histórico do projeto, mas também facilita a colaboração entre os membros da equipe, por exemplo tornando mais fluido o processo de code review.&lt;/p&gt;

&lt;p&gt;Usar &lt;em&gt;Conventional Commits&lt;/em&gt; ajuda a padronizar as mensagens de commit, facilitando a compreensão do histórico do projeto e automatizando tarefas como geração de changelogs. Se você ainda não conhece, recomendo dar uma olhada neste guia essencial: &lt;a href="https://www.conventionalcommits.org/en/v1.0.0/" rel="noopener noreferrer"&gt;Conventional Commits Guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Além disso, também costumo usar &lt;em&gt;Gitmojis&lt;/em&gt; no início dos commits. Acho que traz uma dose extra de clareza e diversão ao nosso trabalho diário. 🎉 Para quem não sabe, os Gitmojis são emojis usados para descrever o propósito de um commit de forma visual, como uma pequena ilustração do que foi feito. Vou deixar um &lt;a href="https://gitmoji.dev/" rel="noopener noreferrer"&gt;link&lt;/a&gt; da página que uso como referência🌟&lt;/p&gt;

&lt;p&gt;✨ Dica de ouro: para facilitar ainda mais o uso de &lt;em&gt;Conventional Commits&lt;/em&gt;, eu utilizo uma extensão no VSCode chamada &lt;em&gt;Conventional Commits&lt;/em&gt;. Ela simplifica o processo e ajuda a manter a consistência nas mensagens de commit. Com certeza existe uma extensão parecida se você usa outra IDE para codar.&lt;/p&gt;

&lt;p&gt;Vamos juntos melhorar nossos fluxos de trabalho e comunicação no desenvolvimento de software! 💪🌐 &lt;/p&gt;

</description>
      <category>conventionalcommits</category>
      <category>gitmojis</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Conventional Commits</title>
      <dc:creator>Erica Rodrigues</dc:creator>
      <pubDate>Sat, 06 Jul 2024 17:50:52 +0000</pubDate>
      <link>https://dev.to/ericarodrigs/conventional-commits-5c1o</link>
      <guid>https://dev.to/ericarodrigs/conventional-commits-5c1o</guid>
      <description>&lt;p&gt;Hoje vou falar um pouco sobre a importância dos &lt;em&gt;Conventional Commits&lt;/em&gt; (e &lt;em&gt;Gitmojis&lt;/em&gt;!) 💻✨&lt;/p&gt;

&lt;p&gt;Commits padronizados são essenciais para manter a qualidade e a organização do código-fonte de um projeto. A comunidade em geral recomenda seguir padrões como os &lt;em&gt;Conventional Commits&lt;/em&gt;, que especificam um formato claro para as mensagens de commit, como "tipo(scope): mensagem", onde o tipo indica o propósito do commit (ex: feat para novas funcionalidades, fix para correções de bugs) e o escopo opcional descreve a parte do código alterada.&lt;/p&gt;

&lt;p&gt;É crucial que as mensagens sejam sucintas e claras, destacando de forma resumida o que foi feito em cada commit. Isso não só melhora a compreensão do histórico do projeto, mas também facilita a colaboração entre os membros da equipe, por exemplo tornando mais fluido o processo de code review.&lt;/p&gt;

&lt;p&gt;Usar &lt;em&gt;Conventional Commits&lt;/em&gt; ajuda a padronizar as mensagens de commit, facilitando a compreensão do histórico do projeto e automatizando tarefas como geração de changelogs. Se você ainda não conhece, recomendo dar uma olhada neste guia essencial: &lt;a href="https://www.conventionalcommits.org/en/v1.0.0/" rel="noopener noreferrer"&gt;Conventional Commits Guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Além disso, também costumo usar &lt;em&gt;Gitmojis&lt;/em&gt; no início dos commits. Acho que traz uma dose extra de clareza e diversão ao nosso trabalho diário. 🎉 Para quem não sabe, os Gitmojis são emojis usados para descrever o propósito de um commit de forma visual, como uma pequena ilustração do que foi feito. Vou deixar um &lt;a href="https://gitmoji.dev/" rel="noopener noreferrer"&gt;link&lt;/a&gt; da página que uso como referência🌟&lt;/p&gt;

&lt;p&gt;✨ Dica de ouro: para facilitar ainda mais o uso de &lt;em&gt;Conventional Commits&lt;/em&gt;, eu utilizo uma extensão no VSCode chamada &lt;em&gt;Conventional Commits&lt;/em&gt;. Ela simplifica o processo e ajuda a manter a consistência nas mensagens de commit. Com certeza existe uma extensão parecida se você usa outra IDE para codar.&lt;/p&gt;

&lt;p&gt;Vamos juntos melhorar nossos fluxos de trabalho e comunicação no desenvolvimento de software! 💪🌐 &lt;/p&gt;

</description>
      <category>conventionalcommits</category>
      <category>gitmojis</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Injeção de dependência</title>
      <dc:creator>Erica Rodrigues</dc:creator>
      <pubDate>Tue, 09 Apr 2024 22:02:34 +0000</pubDate>
      <link>https://dev.to/ericarodrigs/injecao-de-dependencia-57l6</link>
      <guid>https://dev.to/ericarodrigs/injecao-de-dependencia-57l6</guid>
      <description>&lt;p&gt;A injeção de dependência é um tema fundamental para projetos desenvolvidos com as melhores práticas de mercado, pois além de ajudar a manter um código limpo e modularizado, esse tópico é responsável também por uma das letrinhas do grandioso acrônimo - SOLID, sendo o D desses princípios.&lt;/p&gt;

&lt;p&gt;O Dependency Inversion Principle, princípio da inversão de dependência, promove uma estrutura flexível onde as partes do código dependem de abstrações em vez de detalhes específicos de implementação. Dessa forma, conseguimos desenvolver uma arquitetura mais flexível e de fácil manutenção.&lt;/p&gt;

&lt;p&gt;Baseado nesse princípio, foi desenvolvida a técnica de “Injeção de Dependência” que permite que os módulos recebam as dependências de uma fonte externa em vez de criá-las internamente. Promovendo a reutilização de código, possibilidade de modularização e maior testabilidade, tendo em vista a independência das implementações específicas.&lt;/p&gt;

&lt;p&gt;No Flutter existem algumas bibliotecas bastante presentes no mercado, onde cada uma delas traz características próprias, além de vantagens e desvantagens na sua utilização. O ideal é experimentar algumas bibliotecas para entender qual se adequa melhor ao seu projeto. Algumas das mais populares são: &lt;strong&gt;GetIt, Provider e Riverpod.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para implementar a injeção de dependências em nossos projetos precisamos seguir alguns passos que ficariam resumidamente assim:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Definir serviços e dependências&lt;/strong&gt;: criar classes para os serviços e dependências que o aplicativo precisará, por exemplo, um serviço de autenticação, um serviço de banco de dados, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Registrar as dependências&lt;/strong&gt;: temos que configurar o aplicativo para registrar as dependências necessárias. Isso pode ser feito no método &lt;strong&gt;&lt;code&gt;main()&lt;/code&gt;&lt;/strong&gt; ou em um arquivo dedicado de inicialização.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Acessar as dependências&lt;/strong&gt;: com o arquivo configurado, em qualquer lugar do aplicativo, poderemos acessar as dependências registradas com o auxílio de uma biblioteca. Por exemplo, para acessar o serviço de autenticação utilizando o GetIt, você poderia fazer algo como &lt;strong&gt;&lt;code&gt;GetIt.instance&amp;lt;AuthService&amp;gt;()&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Utilizar as dependências&lt;/strong&gt;: Use as dependências onde forem necessárias no seu código, mantendo a lógica separada da criação de objetos.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Em outras palavras é como se o nosso código se comportasse como um grande quebra-cabeça, onde cada peça é representada por um serviço ou uma funcionalidade da aplicação e ao utilizarmos a injeção de dependências estamos montamos cada uma dessas peças separadamente e vamos encaixando ao longo das funcionalidades a medida que forem necessárias. Assim conseguimos montar o quebra-cabeças bem mais rápido e de maneira mais simples.&lt;/p&gt;

</description>
      <category>dependencyinversion</category>
      <category>flutter</category>
      <category>injecaodedependencia</category>
      <category>designpatterns</category>
    </item>
    <item>
      <title>Código limpo</title>
      <dc:creator>Erica Rodrigues</dc:creator>
      <pubDate>Fri, 22 Dec 2023 17:26:08 +0000</pubDate>
      <link>https://dev.to/ericarodrigs/codigo-limpo-5fih</link>
      <guid>https://dev.to/ericarodrigs/codigo-limpo-5fih</guid>
      <description>&lt;p&gt;Nós como desenvolvedores, entregamos soluções para problemas da vida real através dos nossos códigos. Sendo assim, precisamos ter muito carinho e dedicação para entregar códigos que transcendem a funcionalidade pura, proporcionando uma base sólida para a evolução e sustentabilidade dos nossos projetos. Nesse sentido a utilização do código limpo é uma obrigação para quem quer apresentar um projeto diferenciado!&lt;/p&gt;

&lt;p&gt;Vou listar algumas vantagens de usar código limpo e passar algumas dicas para a sua aplicação. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Vantagens:&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Legibilidade e Compreensão:&lt;/strong&gt;
Quando outros desenvolvedores, ou mesmo você no futuro, revisam o código, a clareza é a chave.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manutenção Facilitada:&lt;/strong&gt;
Um código bem organizado facilita a manutenção, a correção de bugs e a implementação de novos recursos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Colaboração Eficiente:&lt;/strong&gt;
Facilita a colaboração entre desenvolvedores, permitindo uma transição suave entre equipes e promovendo um ambiente de trabalho mais coeso.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Dicas:&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Nomes Significativos:&lt;/strong&gt;
Escolha nomes que transmitam o propósito da variável, função ou classe. Opte por clareza mesmo que isso signifique nomes mais longos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Funções Concisas e Específicas:&lt;/strong&gt;
Escreva funções curtas e focadas em uma tarefa específica. Além de facilitar a compreensão, isso também permite a reutilização de código.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comentários Relevantes:&lt;/strong&gt;
Os comentários devem ser utilizados pra fornecer algum contexto adicional ou para destacar alguma área mais complexa do código e não para justificar um código bagunçado.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refatoração Contínua:&lt;/strong&gt;
Não hesite em refatorar seu código. À medida que o projeto evolui, temos que adaptar o código para refletir as novas necessidades e conhecimentos adquiridos.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Quando aplicamos a metodologia do código limpo, estamos entregando a garantia de um projeto bom, escalável, legível e de fácil manutenção. Devemos assumir esse compromisso com a qualidade e com a excelência para conseguirmos nos tornar programadores melhores.&lt;/p&gt;

</description>
      <category>cleancode</category>
      <category>softwaredevelopment</category>
      <category>bestpractices</category>
      <category>codequality</category>
    </item>
    <item>
      <title>A importância de utilizar o design atômico</title>
      <dc:creator>Erica Rodrigues</dc:creator>
      <pubDate>Tue, 28 Nov 2023 17:37:15 +0000</pubDate>
      <link>https://dev.to/ericarodrigs/a-importancia-de-utilizar-o-design-atomico-58pi</link>
      <guid>https://dev.to/ericarodrigs/a-importancia-de-utilizar-o-design-atomico-58pi</guid>
      <description>&lt;p&gt;Uns dias atrás preparei uns slides para apresentar para alguns colegas desenvolvedores, no intuito de compartilhar o conhecimento que vamos adquirindo com o passar do tempo.&lt;br&gt;
O tema escolhido foi "Atomic Design" porque eu acredito que esse é um tema bem interessante para desenvolvedores que querem sempre melhorar suas habilidades e conhecimentos.&lt;br&gt;
Originalmente o design atômico foi uma metodologia desenvolvida para auxiliar na criação de design systems, para padronizar a criação de layouts e acelerar os processos de criações.&lt;br&gt;
Porém podemos pegar essa metodologia emprestada para o desenvolvimento em geral, pois conseguimos perceber várias vantagens a partir da sua utilização, como consistência, escalabilidade e reaproveitamento.&lt;br&gt;
A proposta na metodologia é composta pela divisão em átomos, moléculas, organismos, templates e páginas. A partir de uma ordem de complexidade crescente e de envolvimento de mais ou menos subcomponentes.&lt;br&gt;
Na apresentação eu trouxe alguns detalhes sobre cada uma dessas divisões e também falo um pouco sobre as vantagens da sua utilização.&lt;br&gt;
Vou deixar aqui o link da apresentação e também o link do youtube que contém o vídeo desse momento. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://view.genial.ly/651de601c355df00103b326a/presentation-atomicdesign"&gt;Apresentação de slides&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=UVMevoj_3QI&amp;amp;ab_channel=BeeCoders"&gt;Vídeo de apresentação&lt;/a&gt;&lt;/p&gt;

</description>
      <category>atomicdesign</category>
      <category>development</category>
      <category>flutter</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Resumo: Como ser um programador melhor</title>
      <dc:creator>Erica Rodrigues</dc:creator>
      <pubDate>Sat, 09 Sep 2023 18:39:37 +0000</pubDate>
      <link>https://dev.to/ericarodrigs/resumo-como-ser-um-programador-melhor-1386</link>
      <guid>https://dev.to/ericarodrigs/resumo-como-ser-um-programador-melhor-1386</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zalvk_44--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cfpb51ibdxs36gpc8atn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zalvk_44--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cfpb51ibdxs36gpc8atn.jpg" alt="Título e capítulos do livro" width="800" height="388"&gt;&lt;/a&gt;&lt;br&gt;
Já na introducao do livro o autor fala sobre quem deve ler o livro. Nesse trecho ele menciona que todos os programadores independente de seu nível fariam bom proveito dos pensamentos contidos no livro, porém eu não coloquei muita fé no começo. Os primeiros capítulos são bastante técnicos e eu ainda tava pegando o ritmo da leitura então estava achando avançado demais para mim. &lt;/p&gt;

&lt;p&gt;Entretanto ao concluir a leitura eu mudei totalmente de ideia. Na minha opinião a leitura desse livro é indicada para a maioria das pessoas independente da área. Obviamente vão ter alguns termos e situações que não fazem sentido se você não é da área da tecnologia, mas em boa parte do livro ele entrega reflexões poderosas sobre nossa postura como profissional em geral, e até mesmo como seres humanos que se relacionam em diferentes aspectos.&lt;/p&gt;

&lt;p&gt;O livro é dividido em cinco partes, onde cada uma trata sobre temas específicos. Durante todos os capítulos nos deparamos com perguntas e reflexões que nos levam a pensar em situações reais que se aplicam ao descrito no livro e também é destacado uma seção de ponto chave que funciona para fixar bem determinada ideia. &lt;/p&gt;

&lt;p&gt;Na primeira parte, você.escreve(código), são abordados temas essenciais, como se fossem uma série de mandamentos da programação, que representam a base de um bom código. Nesse momento do livro encontramos alguns conselhos como: escreva menos código, remova códigos desnecessários, não ignore erros, espere pelo inesperado e realize testes. &lt;/p&gt;

&lt;p&gt;Na segunda parte, a prática leva à perfeição, podemos ver alguns conceitos mais aprofundados da programação em geral e não do código propriamente dito. São tratados tópicos como a importância do controle de versão é como essa ferramenta pode ser sua aliada no desenvolvimento de aplicações, reutilização de trechos de código ou design através de práticas de componentização e a importância de manter a simplicidade no código para que pessoas de diferentes níveis e conhecimentos consigam ler e entender nosso trabalho. &lt;/p&gt;

&lt;p&gt;A parte três, envolvendo-se pessoalmente, acredito que é a que mais me tocou, pois nesse momento o autor atinge um nível que é mais difícil de ser abordado nessa área. Trata sobre aspectos e características comportamentais que são imprescindíveis para um bom relacionamento interpessoal e para sucesso em trabalho em equipe. Nesses capítulos o autor conversa diretamente com o leitor, aconselhando como se estivesse em uma conversa informal, conversando sobre os benefícios de amar o aprendizado, apreciar o desafio, evitar o comodismo, além de trazer reflexões profundas sobre o comportamento ético de um programador. &lt;/p&gt;

&lt;p&gt;Na quarta parte, conseguir que tudo seja feito, Pete traz algumas ideias sobre o processo necessário para a vida de um projeto até sua liberação para uso, com algumas dicas para que não haja desvios no caminho ou atrasos não planejados. Nesses capítulos percebemos dicas sobre o levantamento de requisitos necessários e sobre qual a real definição de pronto. &lt;/p&gt;

&lt;p&gt;Na última parte, uma meta de pessoas, é ressaltada a relevância da comunicação para o sucesso de aplicações. Ninguém trabalha sozinho e precisamos aprender constantemente a melhorar nossas habilidades de lidar com os colegas de profissão. &lt;/p&gt;

&lt;p&gt;Realmente após concluir a leitura não é difícil entender porque o livro é tão aclamado pela nossa comunidade. Aborda várias visões e aspectos diferentes e complementares do mundo da programação e só esse motivo já seria suficiente para que alguém que quer melhorar suas habilidades lesse o livro, porém ele ainda vai além. Traz uma leitura leve, traz exemplos práticos, traz quadrinhos com piadas (que muitas vezes não são muito divertidas ou fáceis de entender kkakakakakakaka), conselhos, pontos chaves, situações reais de experiência do autor, enfim, é um bom livro. Leiam!&lt;/p&gt;

&lt;p&gt;*** Curiosidade:&lt;/p&gt;

&lt;p&gt;A capa do livro traz a imagem de um peixe voador, que eu não sabia da existência e logo depois de terminar o livro fui ver vídeos no YouTube sobre porque achei bem interessante a ideia de um peixe que voa 🤯. Essa espécie de peixe inclusive foi utilizada como modelo para estudo do desenvolvimento de aviões e possui um recorde de 45 segundos de voo.&lt;/p&gt;

</description>
      <category>development</category>
      <category>selfimprovement</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
