<?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: Eduardo Cerioni Cappellotto</title>
    <description>The latest articles on DEV Community by Eduardo Cerioni Cappellotto (@eduardocappellotto).</description>
    <link>https://dev.to/eduardocappellotto</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%2F825529%2F87acea33-1aeb-4f95-b42c-6817f625f24c.jpeg</url>
      <title>DEV Community: Eduardo Cerioni Cappellotto</title>
      <link>https://dev.to/eduardocappellotto</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eduardocappellotto"/>
    <language>en</language>
    <item>
      <title>Onde aprender (ou revisar) conceitos importantes de Next.js?</title>
      <dc:creator>Eduardo Cerioni Cappellotto</dc:creator>
      <pubDate>Wed, 10 Jan 2024 21:15:34 +0000</pubDate>
      <link>https://dev.to/eduardocappellotto/onde-aprender-ou-revisar-conceitos-importantes-de-nextjs-568h</link>
      <guid>https://dev.to/eduardocappellotto/onde-aprender-ou-revisar-conceitos-importantes-de-nextjs-568h</guid>
      <description>&lt;p&gt;O texto de hoje é uma dica para você, desenvolvedor web que sempre teve interesse no Next.js ou que já trabalhou com ele no passado e deseja reacender sua relação com essa ferramenta queridinha da Vercel. 😊&lt;/p&gt;

&lt;h2&gt;
  
  
  Meu Contexto
&lt;/h2&gt;

&lt;p&gt;Minha primeira experiência com o Next.js aconteceu por volta de 2020, quando essa "nave espacial" 🚀 criada pela Vercel começou a decolar. Desde então, o cenário web adotou amplamente o TypeScript e abraçou de vez o server-side rendering. Profissionalmente, acabei me envolvendo mais com o lado "verde" da força (Vue + Nuxt) e foi lá onde passei os últimos 3 anos.&lt;/p&gt;

&lt;p&gt;Agora, em um novo momento da minha carreira, decidi revisitar o que o Next.js oferece e como ele funciona.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minha Escolha
&lt;/h2&gt;

&lt;p&gt;Eu poderia ter optado por fazer um curso. 📚&lt;br&gt;
Eu poderia simplesmente ler a documentação. 📖&lt;br&gt;
Eu poderia até mesmo apenas construir algo do zero. 🏗️&lt;/p&gt;

&lt;p&gt;Bem, fiz a minha escolha:&lt;/p&gt;

&lt;p&gt;Reescrevi meu site pessoal, &lt;a href="https://eduardocappellotto.com/"&gt;https://eduardocappellotto.com/&lt;/a&gt;, usando o Next.js (o código está disponível aqui: &lt;a href="https://github.com/eduardocappellotto/cappellotto-portfolio"&gt;https://github.com/eduardocappellotto/cappellotto-portfolio&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Explorando os Tutoriais da Vercel
&lt;/h2&gt;

&lt;p&gt;No entanto, também me veio um pensamento: os tutoriais do Nuxt feitos pela equipe central são tão úteis... E quanto aos tutoriais da Vercel?&lt;/p&gt;

&lt;p&gt;Acontece que os tutoriais de Next.js (e também de React.js) da Vercel são excelentes e merecem mais reconhecimento! Eles te guiam na criação de pequenos projetos, ajudando a entender pontos essenciais do framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Dica de Hoje: Tutoriais da Vercel
&lt;/h2&gt;

&lt;p&gt;E essa é a dica de hoje: A Vercel disponibiliza ótimos tutoriais de Next.js e React.js diretamente em seu site: &lt;a href="https://nextjs.org/learn"&gt;https://nextjs.org/learn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Peço desculpas pela falta de padronização. Aqui estão as duas partes padronizadas com listas de itens em ambas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trilha de React.js - Pré-requisito para a Trilha de Next.js!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antes de mergulharmos na trilha de Next.js, é crucial adquirir uma base sólida em React. A trilha de React.js oferece uma introdução a conceitos fundamentais que você deve dominar, incluindo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O que é o DOM?&lt;/li&gt;
&lt;li&gt;Como alterar a interface do usuário com JavaScript.&lt;/li&gt;
&lt;li&gt;Como o React funciona.&lt;/li&gt;
&lt;li&gt;Trabalho com props.&lt;/li&gt;
&lt;li&gt;Uso de componentes.&lt;/li&gt;
&lt;li&gt;Gerenciamento de estado.&lt;/li&gt;
&lt;li&gt;Diferenças em relação ao Next.js.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aqui está o link para a trilha de React: &lt;a href="https://nextjs.org/learn/react-foundations"&gt;Trilha de React&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trilha de Next.js&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agora que você possui uma compreensão sólida de React, pode avançar para a trilha de Next.js, que aborda os seguintes tópicos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Estilização: Explore diferentes abordagens para estilizar sua aplicação no Next.js. 🎨&lt;/li&gt;
&lt;li&gt;Otimizações: Saiba como otimizar imagens, links e fontes para melhor desempenho. 🚀&lt;/li&gt;
&lt;li&gt;Roteamento: Crie layouts e páginas aninhadas usando o sistema de roteamento baseado em arquivos. 🌐&lt;/li&gt;
&lt;li&gt;Recuperação de Dados: Configure um banco de dados na Vercel e siga as melhores práticas para buscar e transmitir dados. 💼&lt;/li&gt;
&lt;li&gt;Pesquisa e Paginação: Implemente pesquisa e paginação utilizando Parâmetros de Pesquisa na URL. 🔍&lt;/li&gt;
&lt;li&gt;Mutação de Dados: Aprenda como modificar dados com as Ações de Servidor do React e revalide o cache do Next.js. ✏️&lt;/li&gt;
&lt;li&gt;Tratamento de Erros: Saiba como lidar com erros gerais e erros 404 não encontrados. 🚧&lt;/li&gt;
&lt;li&gt;Validação de Formulários e Acessibilidade: Realize a validação de formulários no servidor e aplique dicas para melhorar a acessibilidade. ♿&lt;/li&gt;
&lt;li&gt;Autenticação: Adicione autenticação à sua aplicação utilizando o NextAuth.js e Middlewares. 🔐&lt;/li&gt;
&lt;li&gt;Metadados: Acrescente metadados e prepare sua aplicação para compartilhamento nas redes sociais. 📊&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agora, você está pronto para explorar ou aprofundar seu conhecimento em Next.js e React.js, começando pela trilha de React.js como um sólido pré-requisito antes de avançar para a trilha de Next.js. 👨‍💻👩‍💻&lt;/p&gt;




&lt;p&gt;Portanto, se você está pronto para explorar ou aprofundar seu conhecimento em Next.js e React.js, esses tutoriais da Vercel são um recurso valioso que merece sua atenção. 👨‍💻👩‍💻&lt;/p&gt;




</description>
      <category>nextjs</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Progredindo em ambientes caóticos - a visão de um dev</title>
      <dc:creator>Eduardo Cerioni Cappellotto</dc:creator>
      <pubDate>Fri, 21 Oct 2022 04:59:59 +0000</pubDate>
      <link>https://dev.to/eduardocappellotto/progredindo-em-ambientes-caoticos-a-visao-de-um-dev-1kol</link>
      <guid>https://dev.to/eduardocappellotto/progredindo-em-ambientes-caoticos-a-visao-de-um-dev-1kol</guid>
      <description>&lt;p&gt;Em minha jornada de desenvolvimento, atuei por ambientes caóticos onde o tal caos estava presente em diferentes sabores. Nesse artigo, busco discutir sobre como você desenvolvedor pode sobreviver (e progredir) nesses ambientes e também conto um pouco de minha experiência pessoal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PKHpM619--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://media.tenor.com/iDYg-7xD7M4AAAAC/burning-office-spongebob.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PKHpM619--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://media.tenor.com/iDYg-7xD7M4AAAAC/burning-office-spongebob.gif" alt="Alt Text" width="320" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O caos pode se manifestar de diversas formas e durante diferentes períodos. Não acho que enfrentei todos (possuo uma carreira relativamente nova), mas já provei de alguns sabores de caos e com eles aprendi uma coisinha ou outra.&lt;/p&gt;

&lt;h3&gt;
  
  
  O caos nosso de sexta-feira
&lt;/h3&gt;

&lt;p&gt;Todo desenvolvedor já passou por um momento de caos nosso de sexta feira: &lt;strong&gt;aquele famoso deploy de sexta-feira que dá errado&lt;/strong&gt; e torna o ambiente caótico por um tempinho.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W5K4EufM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.pinimg.com/736x/a8/54/f1/a854f1e3e1cba11b1b42bf00f000e2eb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W5K4EufM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.pinimg.com/736x/a8/54/f1/a854f1e3e1cba11b1b42bf00f000e2eb.jpg" alt="Homer simpson prestes á cometer uma cagada" width="612" height="634"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Costuma ser um caos passageiro e que nos ensina lições quase que instantâneas. É durante esse momento em que nos são apresentadas as deficiências em nossos processos e a observabilidade de nosso código.~&lt;/p&gt;

&lt;p&gt;Meu(s) aprendizado(s) para sobreviver ao &lt;em&gt;caos nosso de sexta-feira:&lt;/em&gt; foi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Don't panic!... ou pelo menos não em público. Pânico, acusações de culpa e afins não vão resolver o problema. Xingue no twitter (fechado), xingue no grupo de whatsapp de seus amigos, xingue pra namoradx. No chat corporativo seja prestativo e busque informar TUDO o que está acontecendo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anote os valiosos insumos do problema que rolou. Com isso em mãos, você consegue não só estudar e propor resoluções posteriormente (caso o problema esteja em sua responsabilidade) como estudar e apoiar a criação de resoluções mais eficientes no caso de problemas em terceiros.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;(*) Esse é um extra: deploys em sextas-feiras podem realmente não ser uma boa ideia. O argumento é muito mais psicológico do que prático, mas, software é construído e utilizado por pessoas.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  O caos C4
&lt;/h3&gt;

&lt;p&gt;Existem ambientes onde o caos está presente no cotidiano: sistemas legado mal construídos e com pouquíssima documentação, tecnologias com baixa adesão no mercado... a tal &lt;strong&gt;"bomba relógio"&lt;/strong&gt; que todo dev já ouviu falar dentro de uma empresa.&lt;/p&gt;

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

&lt;p&gt;Você possui duas formas de sobreviver á projetos legado ruins: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Propõe com muito estudo e munido "habilidades de venda" a criação de um novo projeto á fim de substituir o legado&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  OU
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Aprende á lidar com as partes as quais você interage desse código legado. Eu mesmo já aprendi coisas incríveis lendo códigos legado.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  O caos darwinista
&lt;/h3&gt;

&lt;p&gt;Quando uma empresa (ou o país/mundo) passam por momentos de crise econômica por exemplo, o caos é generalizado: o CEO da empresa cobra os vices... &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;...que cobram os diretores &lt;br&gt;
...que cobram os superintendentes&lt;br&gt;
...que cobram os gerentes&lt;br&gt;
...que cobram os gestores&lt;br&gt;
...que cobram .. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bom, você entendeu: &lt;strong&gt;a cobrança torna-se generalizada.&lt;/strong&gt; . E nesse caso, você acaba sendo muito levado pela maré: Muitos sofrerão layoffs e quem sobrar fatalmente trabalhará sobrecarregado.&lt;/p&gt;

&lt;p&gt;Sinceramente, como dito no parágrafo anterior, esse caos pode te afetar muito e você possui pouca ou nenhum controle desses fatores. Mas, você consegue ao longo de sua trajetória dentro da empresa &lt;strong&gt;tentar se tornar insubstituível&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;No fim, &lt;strong&gt;ninguém é insubstituível&lt;/strong&gt;. Mas se você se envolver com os projetos da empresa e for engajado dentro de um ambiente corporativo, você se torna um alvo mais dificil de se mandar embora.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Sobre os erros na construção de um software - a visão de um desenvolvedor Júnior</title>
      <dc:creator>Eduardo Cerioni Cappellotto</dc:creator>
      <pubDate>Mon, 07 Mar 2022 19:54:04 +0000</pubDate>
      <link>https://dev.to/eduardocappellotto/sobre-os-erros-na-construcao-de-um-software-a-visao-de-um-desenvolvedor-junior-2739</link>
      <guid>https://dev.to/eduardocappellotto/sobre-os-erros-na-construcao-de-um-software-a-visao-de-um-desenvolvedor-junior-2739</guid>
      <description>&lt;p&gt;Após quase um ano atuando em um projeto desde sua concepção até sua primeira entrega, decidi "olhar pra trás" não somente para me questionar sobre tudo o que foi construído mas para também me questionar sobre onde eu e o time &lt;strong&gt;erramos&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A importância de uma arquitetura pré-estabelecida
&lt;/h2&gt;

&lt;p&gt;Nesse projeto, seguimos uma &lt;strong&gt;especificação funcional&lt;/strong&gt;. Uma especificação funcional contempla as funções básicas de uma aplicação.. opa, deixe-me repetir essa palavra: &lt;em&gt;básicas&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Talvez seja muita presunção minha, mas, acredito que além de uma especificação funcional, um esboço de uma especificação arquitetural também fosse necessária. Como desenvolvedor que sempre trabalhou em startups pequenas e era recém-chegado na empresa, em muitos momentos a escala de centenas, milhares e até milhões de dados me fez cogitar saídas que, devido á escala, não eram viáveis. Não sei também em totalidade quais bancos e search engines temos á disposição ( e áo descobrirmos, muitas vezes é nosso primeiro contato com essas ferramentas ). &lt;/p&gt;

&lt;p&gt;Com uma arquitetura mais pré-estabelecida conseguimos nos preparar melhor também no que viriam á ser débitos técnicos no conhecimento de ferramentas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Por exemplo&lt;/strong&gt;: nenhum dos desenvolvedores que atuou no projeto possuía efetivamente experiências anteriores com o banco de dados utilizado, e, o foco foi em "aprender fazendo" e não "aprender e fazer". E nisso nascem más-práticas que se proliferam pelas raízes projeto.&lt;br&gt;
Dominar a linguagem e exercitar a modelagem de um banco é essencial para manter uma escala saudável no projeto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Não tornar boas práticas desde o início
&lt;/h2&gt;

&lt;p&gt;Julgo que temos uma qualidade de software mediana. Faltam muitas coisas, mas já seguimos bons padrões. Principalmente a &lt;strong&gt;falta de testes de integração&lt;/strong&gt; no back-end é algo que efetivamente me preocupa á longo prazo. &lt;/p&gt;

&lt;p&gt;Sempre fui entusiasta de testes e vejo a entrega de valor ( e a prevenção á incêndios ) que testes básicos porém bem estruturados entregam.&lt;/p&gt;

&lt;p&gt;Há também alguns débitos técnicos no front-end: componentes grandes que poderiam ser menores, lógicas pouco e/ou nada comentadas e inconsistências em seguir alguns padrões dentro do sistema.&lt;/p&gt;

&lt;h2&gt;
  
  
  A falta de documentação estruturada
&lt;/h2&gt;

&lt;p&gt;Esse aqui eu julgo ser um problema de muitas companhias: gerar documentação não gera valor efetivo pra stakeholders, mas, gera velocidade na criação de software. Até por isso, ferramentas como GraphQL que geram docs automaticamente têm seu valor intríseco.&lt;br&gt;
Mas um swaggerzinho organizado não faz mal á ninguém 😂&lt;/p&gt;

&lt;h2&gt;
  
  
  Code review "camarada"
&lt;/h2&gt;

&lt;p&gt;Julgo que aqui jaz o nosso maior erro: realizar pouquíssimos code reviews propondo efetivamente mudanças e/ou melhorias. &lt;/p&gt;

&lt;p&gt;Quem melhor poderia nos policiar de subirmos inconsistências e códigos de qualidade duvidosa somos nós mesmos, e, por opção escolhemos deixar muita coisa passar. &lt;/p&gt;

&lt;p&gt;Seja por pressa em "subir aquelas mudanças" ou em simplesmente acreditar que "isso é o jeito que ele(a) coda, não é melhor ou pior: é apenas diferente".&lt;/p&gt;

&lt;h2&gt;
  
  
  Mas.. tudo foi ruim e/ou mediano?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Não!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Na realidade, o projeto andou muito bem mesmo com as várias interpéries de um projeto realizado no mundo real. Construímos um sistema extremamente robusto e que resolve muitos problemas atuais e futuros da empresa, e sou extremamente grato por tudo que aprendi e aprendo diariamente participando da criação de um sistema do zero.&lt;/p&gt;

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