<?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: Gustavo Pereira</title>
    <description>The latest articles on DEV Community by Gustavo Pereira (@oguhpereira).</description>
    <link>https://dev.to/oguhpereira</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%2F335477%2Fa1b31a5d-c7dc-4414-9214-7890db7691bd.jpg</url>
      <title>DEV Community: Gustavo Pereira</title>
      <link>https://dev.to/oguhpereira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oguhpereira"/>
    <language>en</language>
    <item>
      <title>Checklist: Revisão de pull-request's</title>
      <dc:creator>Gustavo Pereira</dc:creator>
      <pubDate>Sat, 13 May 2023 01:37:01 +0000</pubDate>
      <link>https://dev.to/oguhpereira/checklist-revisao-de-pull-requests-23e</link>
      <guid>https://dev.to/oguhpereira/checklist-revisao-de-pull-requests-23e</guid>
      <description>&lt;p&gt;A revisão de código ou também chamado (code-review) é um processo que hoje em dia faz parte da construção de um software, no qual há mais de uma pessoa desenvolvendo. O princpipal objetivo é que membros da equipe analisam e examinam o código fonte desenvolvido visando identificar erros, melhorar a qualidade do código, aumentar o engajamento entre o time.&lt;/p&gt;

&lt;p&gt;Através desse processo, é possível evitar a introdução de bugs no código-base, garantindo uma base sólida e confiável para o software. &lt;br&gt;
Buscando identificar erros lógicos, de sintaxe ou de estilo, a revisão de código permite a detecção de possíveis problemas de desempenho, segurança ou escalabilidade. Além disso existe uma grande oportunidade para os desenvolvedores compartilharem conhecimentos, como também discutirem práticas e padrões. &lt;/p&gt;

&lt;p&gt;A revisão de código é uma prática fundamental no desenvolvimento de software, embora possa ser demorada e trabalhosa. Se não for realizada de forma eficiente e direcionada, pode impactar negativamente o desempenho da equipe durante o processo de revisão. Felizmente, existem muitos recursos disponíveis atualmente que compartilham dicas e práticas para aprimorar a revisão de código.&lt;/p&gt;

&lt;p&gt;Nesta publicação, compartilharei alguns insights que adquiri ao longo da minha experiência, com o objetivo de ajudar a melhorar a eficácia do seu processo de revisão de código. Abordarei pontos importantes que podem otimizar o tempo gasto na revisão e maximizar os benefícios obtidos a partir desse processo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review lógico e Mecânico&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antes de introduzir sobre alguns pontos sobre "Review lógico e Mecânico", gostaria de detalhar o que refere quando apresento estas duas palavras:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mecânico: Seria a parte do review onde seu você faz atividades mecânicas repetitivas, ou seja, realiza uma determinada revisão quase que no automático, repetidamente. Exemplo, titulo, descrição, processo manual de teste validando funcionamento, sintaxe do código e convenções do projeto&lt;/li&gt;
&lt;li&gt;Lógico: Esta é a parte da revisão em que não há um processo pré-determinado ou uma sequência repetitiva. O lógico exige um pensamento analítico para avaliar se o que está sendo revisado está em conformidade com os seus critérios de aceitação. É nessa fase que se verifica se o código é coeso, escalavel, você entende o que a alteração impacta na aplicação, valida possiveis melhorias e pauta discussões.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Observação: Claro que nem sempre num processo de review as duas partes estarão tão presente, mas é importante eu levantar para você entender um pouco sobre "prioridade de foco"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prioridade de foco&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Uma vez vi a senguinte desenho em um artigo que me marcou muito &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pL7y5V5v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jq6kphxw4e52ae0e8aag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pL7y5V5v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jq6kphxw4e52ae0e8aag.png" alt="Image description" width="632" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esta imagem define exatamente o que quero dizer como prioridade de foco, pois a a prioridade de foco ela contribui para que ao fazer revisão você não se atrapalhe gerando sugestões que não fazem sentido. Exemplo, porque faria sentido eu debater a escalabilidade de uma função que talvez não faça sentido ir para produção. &lt;/p&gt;

&lt;p&gt;Nesse sentido, é fundamental verificar se a demanda atende às funcionalidades esperadas e, em seguida, avaliar se ela compromete a segurança do projeto. Ao abordar esses dois pontos iniciais, é possível ter uma compreensão inicial do código revisado.&lt;/p&gt;

&lt;p&gt;Uma vez que esses aspectos essenciais tenham sido analisados, é possível avançar para uma análise mais abrangente do código, considerando elementos de longo prazo. Isso inclui a avaliação da escalabilidade, resiliência, manutenibilidade, legibilidade, semântica, sintaxe e outros pontos técnicos relevantes que terão um impacto no futuro do projeto.&lt;/p&gt;

&lt;p&gt;Altamente recomendado criar um "checklist mental" durante o processo de revisão de código. Essa abordagem ajuda a validar progressivamente os pontos essenciais e garante uma revisão mais completa e eficiente.&lt;/p&gt;

&lt;p&gt;Ao desenvolver o seu "checklist mental", você pode incluir uma lista de verificação dos aspectos importantes a serem avaliados, como funcionalidades, segurança, desempenho, legibilidade, conformidade com padrões de codificação e boas práticas, entre outros.&lt;br&gt;
Aqui um exemplo de um "Checklist mental" para revisão de um pr&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Checklist logico&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ]  Eu consigo entender sobre o que o pr se trata.&lt;/li&gt;
&lt;li&gt;[ ]  Nome do pr não esta coerente com o que ele faz&lt;/li&gt;
&lt;li&gt;[ ]  Existem melhorias ou refatoração que podem ser feitas ou reportadas&lt;/li&gt;
&lt;li&gt;[ ]  Existe alguma falha de segurança, invalidade em alguns casos ou brecha no sistema&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Checklist mecânico&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ]  PR esta com bug na execução&lt;/li&gt;
&lt;li&gt;[ ]  PR com conflito&lt;/li&gt;
&lt;li&gt;[ ]  PR muito tempo desatualizado&lt;/li&gt;
&lt;li&gt;[ ]  Tem console ou debugger&lt;/li&gt;
&lt;li&gt;[ ]  Falta adicionar tipo, model ou generic type&lt;/li&gt;
&lt;li&gt;[ ]  Existe uma função sem type&lt;/li&gt;
&lt;li&gt;[ ]  Código contem erros de português ou inglês&lt;/li&gt;
&lt;li&gt;[ ]  Os nomes da função e/ou variáveis estão condizentes com o que ela faz&lt;/li&gt;
&lt;li&gt;[ ]  Titulo do pr contem Erros de português ou inglês&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hooks que você pode utilizar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Por fim, gostaria também de compartilhar algumas ajudas que você pode ta utilizando para conseguir um melhor desempenho em cada item do checklist.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Utilizar o &lt;a href="https://cli.github.com/"&gt;GH terminal&lt;/a&gt; para navegar entre os pull-request ou extensão GitHub Pull Requests.&lt;/li&gt;
&lt;li&gt;Dedicar um tempo na sua agenda para fazer essa ação.&lt;/li&gt;
&lt;li&gt;Ir marcando o que já foi revisado, não deixar para ultima hora. (Caso seja feito uma alteração muito brusca, revalide, caso contrario siga com itens que não foi revisado)&lt;/li&gt;
&lt;li&gt;Faça alinhamentos com o Dono do pull-request.

&lt;ul&gt;
&lt;li&gt;Lembre-se de atualizar a discussão que tiveram no pull-request para dar vibisibilidade caso tenham tomado uma decisão.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Evite a procura de casos de teste, sempre faça um alinhamento com quem desenvolveu ou com produto / lider, eles devem ter casos de teste para você validar.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>tutorial</category>
      <category>beginners</category>
      <category>github</category>
    </item>
    <item>
      <title>Como o React-admin pode ser útil para produtos internos</title>
      <dc:creator>Gustavo Pereira</dc:creator>
      <pubDate>Tue, 02 May 2023 09:54:05 +0000</pubDate>
      <link>https://dev.to/oguhpereira/como-o-react-admin-pode-ser-util-para-produtos-internos-3e03</link>
      <guid>https://dev.to/oguhpereira/como-o-react-admin-pode-ser-util-para-produtos-internos-3e03</guid>
      <description>&lt;p&gt;Algumas empresas que utilizam e desenvolvem produtos interno para administrar a operação com cliente, ou seja, produtos, softwares ou ferramentas criadas para o uso exclusivamente por colaboradores da empresa.&lt;/p&gt;

&lt;p&gt;O produto interno difere um pouco de um produto externo que é voltado para o cliente final, em virtude de suas necessidades específicas. Para criar um produto interno eficiente e que atenda às demandas da empresa, é preciso ter em mente algumas necessidades específicas.&lt;/p&gt;

&lt;p&gt;Em geral, um produto interno precisa lidar com a gestão de informações internas, automatização de processos, comunicação interna, gestão de projetos, segurança de informações e facilidade de uso. E é aí que o React-admin pode auxiliar.&lt;/p&gt;

&lt;p&gt;O React-admin é um framework de administração de dados, construído com base no React e no Material UI, que oferece uma ampla gama de recursos para a criação de interfaces de usuário para produtos internos. Com a existencia de algumas componentes o React-admin, entrega abstrações podendo ser possível criar rapidamente uma interface de usuário amigável e eficiente para gerenciar informações e processos internos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BmrriKsr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/quo69xdbwe53hhlukb31.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BmrriKsr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/quo69xdbwe53hhlukb31.png" alt="Image description" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para iniciar a implementação do seu projeto sugiro inicialmente verificar o Tutorial &lt;a href="https://marmelab.com/react-admin/Tutorial.html"&gt;https://marmelab.com/react-admin/Tutorial.html&lt;/a&gt;&lt;br&gt;
Ele vai trazer um entendimento inicial sobre funcionamento.&lt;/p&gt;

&lt;p&gt;Após isso é importante entender sobre a abstração de &lt;a href="https://marmelab.com/react-admin/DataProviderIntroduction.html"&gt;data-fetch&lt;/a&gt;, e tambem sobre &lt;a href="https://marmelab.com/react-admin/FieldsForRelationships.html#referencefield"&gt;Fields e referenciamento&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dominar os termos técnicos que a framework entrega é fundamental para utilizá-la plenamente. Alguns dos termos que o React-admin utiliza incluem "record", "reference", "resource", "list", "create", "edit", "show", "field" e "inputs". &lt;/p&gt;

&lt;p&gt;O termo "record" se refere a um objeto específico que está sendo manipulado, enquanto "reference" se refere a uma relação entre dois objetos. O termo "resource" é utilizado para representar uma recurso que sera adiministrado que pode conter "list", "create", "edit" e "show" que são views que podem ser visualizada apartir destes recursos.&lt;/p&gt;

&lt;p&gt;O termo "field" se refere a componentes que exibe informações, enquanto "inputs" são os elementos de entrada utilizados para coletar dados do usuário.&lt;/p&gt;

&lt;p&gt;Compreender e utilizar esses termos pode ser uma vantagem significativa para o desenvolvimento de produtos internos eficientes, ajudando a criar interfaces de usuário amigáveis e eficientes para a gestão de informações e processos internos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Em conclusão, o react-admin é uma opção sólida e eficiente para o desenvolvimento de projetos internos, permitindo que as empresas construam aplicativos de gerenciamento de informações em poucos meses. No entanto, para aproveitar ao máximo a framework, é importante que os desenvolvedores dominem seus termos técnicos e entendam a abstração subjacente do react-admin. Isso pode ajudar a lidar com os desafios que podem surgir ao desenvolver uma aplicação de gerenciamento de informações internas.&lt;/p&gt;

&lt;p&gt;Além disso, seguir o processo sugerido e consultar a documentação em caso de dúvida é uma ótima maneira de aproveitar ao máximo as funcionalidades da framework. Em caso de necessidade de criar algo fora das abstrações fornecidas pelo react-admin, compreender como essas abstrações foram construídas pode ser útil para criar algo semelhante. Com isso em mente, é possível usar o react-admin para desenvolver produtos internos altamente eficientes e bem-sucedidos.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>programming</category>
    </item>
    <item>
      <title>Acessibilidade na Web necessidade ou dever ?</title>
      <dc:creator>Gustavo Pereira</dc:creator>
      <pubDate>Sat, 22 Apr 2023 18:26:44 +0000</pubDate>
      <link>https://dev.to/oguhpereira/acessibilidade-na-web-necessidade-ou-dever--14ic</link>
      <guid>https://dev.to/oguhpereira/acessibilidade-na-web-necessidade-ou-dever--14ic</guid>
      <description>&lt;p&gt;&lt;strong&gt;A importância de se preocupar com a acessibilidade do site, além da indexação pelo Google&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nos dias de hoje, criar um site e garantir sua indexação pelo Google é uma prioridade para quem deseja ter presença na internet. Porém, a preocupação com a qualidade de entrega do site para as pessoas e não apenas para os robôs, muitas vezes é deixada de lado.&lt;/p&gt;

&lt;p&gt;É importante lembrar que ganhar algumas posições e estar em primeiro lugar na lista de busca não deve ser a única preocupação de um desenvolvedor. A acessibilidade é um aspecto fundamental que não pode ser ignorado. Afinal, a internet não é apenas para alguns, mas sim para todos.&lt;/p&gt;

&lt;p&gt;Focar na acessibilidade traz um valor agregado para pessoas com diferentes capacidades e limitações utilizarem o site. Por exemplo, pessoas com deficiência visual ou auditiva, idosos, pessoas com mobilidade reduzida ou mesmo aquelas que estão em ambientes com ruído excessivo. Um site acessível é aquele que permite que essas pessoas tenham acesso ao conteúdo e possam utilizá-lo sem dificuldades.&lt;/p&gt;

&lt;p&gt;Por isso, além de se preocupar com a indexação pelo Google, é fundamental que os desenvolvedores se atentem à acessibilidade do site. Algumas práticas que podem ser adotadas incluem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Utilização de ferramentas de acessibilidade, como as que permitem que pessoas com deficiência visual utilizem a voz para navegar no site;&lt;/li&gt;
&lt;li&gt;Adoção de padrões de design acessíveis, como o contraste adequado entre cores;&lt;/li&gt;
&lt;li&gt;Utilização de recursos multimídia para tornar o conteúdo mais acessível;&lt;/li&gt;
&lt;li&gt;Testes com usuários com deficiência ou mobilidade reduzida para avaliar a usabilidade do site.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Além de ser uma atitude responsável, a preocupação com a acessibilidade do site pode trazer benefícios para o negócio. Por exemplo, a melhoria na usabilidade do site pode levar a um aumento na retenção de usuários e na conversão de vendas. Além disso, a inclusão e a acessibilidade são valores importantes e valorizados por muitos consumidores.&lt;/p&gt;

&lt;p&gt;Portanto, é fundamental que os desenvolvedores se preocupem não apenas com a indexação pelo Google, mas também com a acessibilidade do site. Dessa forma, além de cumprir com a responsabilidade social de tornar a internet um ambiente mais inclusivo, é possível trazer benefícios para o negócio.&lt;/p&gt;

</description>
      <category>web</category>
      <category>javascript</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Estudar a zona de conforto ou sair do convencional</title>
      <dc:creator>Gustavo Pereira</dc:creator>
      <pubDate>Wed, 19 Feb 2020 03:15:44 +0000</pubDate>
      <link>https://dev.to/oguhpereira/estudar-a-zona-de-conforto-ou-sair-do-convencional-540</link>
      <guid>https://dev.to/oguhpereira/estudar-a-zona-de-conforto-ou-sair-do-convencional-540</guid>
      <description>&lt;p&gt;Em 2018, tive a experiência de desenvolver um sistema offline para uma amiga. Este sistema não era complexo, foi simplesmente um software para cadastrar professores, alunos, aulas e fazer avaliações físicas dos clientes da academia.&lt;/p&gt;

&lt;p&gt;Devido o baixo nível de complexidade busquei sair da “zona de conforto” e produzir em uma linguagem diferente das que eu já havia desenvolvido, algo novo que eu não conhecia. Como o software deveria funcionar somente offline, muitas pessoas me recomendaram utilizar o Windows Forms da Microsoft, pois era bem mais simples para criação de sistema desktop.&lt;br&gt;
Seguindo o conselho de muitos, acabei de frente com visual studio e programando em C#. Foi uma experiencia incrível poder entender o básico de uma tecnologia que não trabalhava diariamente e realmente foi bem rápido a produção, cerca de 1 mês e meio já tinha um sistema funcional.&lt;/p&gt;

&lt;p&gt;Porem meu PC deu problema no meu HD e tive de formatar a minha máquina.Por sorte eu estava utilizando o controle de versão, mas estava com tempo, então encarei como um recomeço e decidi iniciar o mesmo projeto na “zona de conforto” utilizando uma tecnologia que na época era nova, chamada de Electron.&lt;/p&gt;

&lt;p&gt;Sem duvidas meu ganho de produtividade aumentou, isso porque já tinha alguns trechos de códigos em Javascript e HTML, o que facilitou muito na hora de produzir. Mas mesmo trabalhando em um projeto que era “zona de conforto” acabei aprendendo e me divertindo com a produção.&lt;br&gt;
Então compartilho com esse post, que de fato sair da zona de conforto é muito interessante para ampliarmos nossos horizontes e entendermos outras tecnologias, paradigmas, linguagens, frameworks…&lt;br&gt;
Mas aperfeiçoar a sua zona de conforto também pode ser benéfico para você. Pois se você gosta da tecnologia não se preocupe que a atividade vai ser compensatória. Porém ambas devem de ser prazeroso e divertido, não podem ser chato e estressante&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>csharp</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
