<?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>Forem: Renato Vicente</title>
    <description>The latest articles on Forem by Renato Vicente (@rntvicente).</description>
    <link>https://forem.com/rntvicente</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%2F446676%2Fb8a9f0e6-1ccd-4f57-bd2c-af5602748255.png</url>
      <title>Forem: Renato Vicente</title>
      <link>https://forem.com/rntvicente</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rntvicente"/>
    <language>en</language>
    <item>
      <title>Como as IAs têm sido minhas aliadas e minhas fontes de ansiedade</title>
      <dc:creator>Renato Vicente</dc:creator>
      <pubDate>Wed, 14 May 2025 12:37:07 +0000</pubDate>
      <link>https://forem.com/rntvicente/como-as-ias-tem-sido-minhas-aliadas-e-minhas-fontes-de-ansiedade-5679</link>
      <guid>https://forem.com/rntvicente/como-as-ias-tem-sido-minhas-aliadas-e-minhas-fontes-de-ansiedade-5679</guid>
      <description>&lt;p&gt;Nos últimos meses, tenho usado IA com frequência no meu dia a dia como desenvolvedor. Não é exagero dizer que ela tem sido uma extensão da minha mente. Me ajuda a estruturar ideias, revisar código, resumir RFCs longas, explorar novas linguagens e até simular entrevistas. A produtividade dispara — aquele tempo entre pensar e produzir encurta de um jeito que ainda me surpreende.&lt;/p&gt;

&lt;p&gt;Mas nem tudo são flores (ou commits bem-sucedidos).&lt;/p&gt;

&lt;p&gt;Quanto mais uso, mais percebo que essa mesma ferramenta que me ajuda tanto também mexe com meu emocional. Surge uma ansiedade quase silenciosa:&lt;br&gt;
“Será que vou ser substituído?”&lt;br&gt;
“Se ela gera esse código em segundos, qual será meu papel daqui 2 anos?”&lt;br&gt;
“E se eu parar de entender o que está por trás porque tudo está sendo gerado por prompt?”&lt;/p&gt;

&lt;p&gt;Já vi códigos gerados com falhas graves de segurança. Já escrevi prompts que resolveram problemas, mas que criaram soluções overengineered — difíceis de manter, difíceis de explicar. E confesso: já aceitei respostas da IA sem questionar, só para depois ver que introduzi um bug no sistema.&lt;/p&gt;

&lt;p&gt;Não, eu não sou contra IA. Pelo contrário. Sou entusiasta. Mas estou aprendendo que mais do que saber usar IA, a chave está em saber quando confiar, quando revisar, quando parar e pensar. É quase como pair programming: você não entrega o teclado completamente.&lt;/p&gt;

&lt;p&gt;Talvez o futuro seja menos sobre "ser substituído" e mais sobre como nos adaptamos ao novo papel de sermos curadores, mentores e arquitetos daquilo que a IA ainda não entende: contexto, ética, empatia, propósito.&lt;/p&gt;

&lt;p&gt;E você, como tem lidado com tudo isso?&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>ai</category>
    </item>
    <item>
      <title>Destrancando o Docker: Garantindo que seu aplicativo espere pelo banco de dados com Dockerize</title>
      <dc:creator>Renato Vicente</dc:creator>
      <pubDate>Mon, 30 Oct 2023 22:08:01 +0000</pubDate>
      <link>https://forem.com/rntvicente/destrancando-o-docker-garantindo-que-seu-aplicativo-espere-pelo-banco-de-dados-com-dockerize-hp1</link>
      <guid>https://forem.com/rntvicente/destrancando-o-docker-garantindo-que-seu-aplicativo-espere-pelo-banco-de-dados-com-dockerize-hp1</guid>
      <description>&lt;p&gt;O uso do &lt;strong&gt;Dockerize&lt;/strong&gt; em combinação com o Node.js é uma prática essencial para garantir que seu aplicativo Docker aguarde serviços dependentes, como um banco de dados MongoDB, antes de iniciar. Neste guia, mostro como implementar o &lt;strong&gt;Dockerize&lt;/strong&gt; em seu projeto Node.js.&lt;/p&gt;

&lt;h2&gt;
  
  
  O Problema da Dependência entre Contêineres:
&lt;/h2&gt;

&lt;p&gt;Ao criar aplicativos Docker que dependem de outros serviços, como bancos de dados, é crucial garantir que o serviço esteja pronto antes que o aplicativo inicie. Ignorar essa dependência pode levar a falha.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o Dockerize:
&lt;/h2&gt;

&lt;p&gt;O Dockerize é uma ferramenta que ajuda a esperar por serviços antes de iniciar um contêiner. Ele permite que você especifique condições de espera para garantir que seu aplicativo não inicie até que os serviços estejam prontos.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Configurando o Dockerize:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Crie seu Dockerfile:&lt;br&gt;
Você começará criando um Dockerfile para seu aplicativo Node.js. Certifique-se de usar uma imagem base do Node.js que atenda às necessidades do seu aplicativo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Instale o Dockerize:&lt;br&gt;
No Dockerfile, adicione as instruções para instalar o Dockerize. Você pode usar o seguinte código:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ENV DOCKERIZE_VERSION v0.7.0

RUN apk update --no-cache \
    &amp;amp;&amp;amp; apk add --no-cache wget openssl \
    &amp;amp;&amp;amp; wget -O - https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz | tar xzf - -C /usr/local/bin \
    &amp;amp;&amp;amp; apk del wget
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Defina as Condições de Espera:
Agora, você deve definir as condições de espera no Dockerfile. Por exemplo, se seu aplicativo Node.js depende de um serviço MongoDB na porta 27017, você pode usar o seguinte código:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CMD dockerize -wait tcp://mongodb:27017 -timeout 1m node app.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exemplo Prático:
&lt;/h3&gt;

&lt;p&gt;Aqui está um exemplo prático de como usar o Dockerize com Node.js:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM node:14

WORKDIR /app

# Instale o Dockerize
ENV DOCKERIZE_VERSION v0.7.0
RUN wget -O - https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz | tar xzf - -C /usr/local/bin

# Defina as condições de espera para o MongoDB
CMD dockerize -wait tcp://mongodb:27017 -timeout 1m node app.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;A utilização do Dockerize é uma prática essencial para garantir que sua API seja robusta e confiável, evitando comportamentos indesejados e garantindo que as dependências entre contêineres sejam adequadamente gerenciadas.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Entendendo a Diferença entre JavaScript e TypeScript</title>
      <dc:creator>Renato Vicente</dc:creator>
      <pubDate>Thu, 12 Oct 2023 14:27:14 +0000</pubDate>
      <link>https://forem.com/rntvicente/entendendo-a-diferenca-entre-javascript-e-typescript-3fci</link>
      <guid>https://forem.com/rntvicente/entendendo-a-diferenca-entre-javascript-e-typescript-3fci</guid>
      <description>&lt;p&gt;JavaScript e TypeScript são duas linguagens amplamente utilizadas no desenvolvimento web e de aplicativos. Embora ambas estejam relacionadas e compartilhem semelhanças, existem diferenças fundamentais que os desenvolvedores devem entender para escolher a melhor linguagem para seus projetos. Neste artigo, exploraremos as principais diferenças entre JavaScript e TypeScript.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;O Básico&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; é uma linguagem de programação de alto nível que foi criada para tornar as páginas da web mais interativas. É uma linguagem interpretada, o que significa que o código JavaScript é executado diretamente no navegador do usuário os browsers, mas também fora dele através do NodeJS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TypeScript&lt;/strong&gt;, por outro lado, é uma linguagem de programação desenvolvida pela Microsoft. Ela é uma &lt;em&gt;superset&lt;/em&gt; para o JavaScript que adiciona recursos de tipagem estática ao código, tornando-o mais robusto e escalável. O TypeScript é compilado para JavaScript antes da execução.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tipagem&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Uma das diferenças mais marcantes entre as duas linguagens é a tipagem. JavaScript é uma linguagem de tipagem dinâmica, o que significa que as variáveis não têm tipos específicos atribuídos a elas e podem mudar durante a execução do programa. Isso pode levar a erros difíceis de rastrear em aplicativos complexos.&lt;/p&gt;

&lt;p&gt;Por outro lado, TypeScript é uma linguagem de tipagem estática. Isso significa que as variáveis devem ter tipos específicos definidos e verificados em tempo de compilação. Isso ajuda os desenvolvedores a detectar erros mais cedo e a criar código mais seguro e previsível.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Autocompletar e Verificação de Erros&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;O TypeScript oferece uma vantagem notável em termos de autocompletar e verificação de erros no ambiente de desenvolvimento. Editores de código que suportam TypeScript como VSCode são capazes de fornecer sugestões de código mais precisas e destacar erros em tempo real, tornando a codificação mais eficiente e reduzindo erros.&lt;/p&gt;

&lt;p&gt;No JavaScript, a falta de informações de tipo pode dificultar a identificação de erros de sintaxe e lógica durante o desenvolvimento.&lt;/p&gt;

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

&lt;p&gt;A escolha entre JavaScript e TypeScript depende das necessidades do seu projeto e da preferência pessoal. JavaScript é uma linguagem versátil e amplamente utilizada que é ótima para projetos menores ou menos complexos. TypeScript, por outro lado, oferece recursos avançados de tipagem estática que podem ajudar a evitar erros e criar código mais seguro em projetos maiores e mais complexos.&lt;/p&gt;

&lt;p&gt;Espero que este artigo tenha ajudado a esclarecer as principais diferenças entre JavaScript e TypeScript. Ambas as linguagens têm seus méritos e são valiosas no cenário de desenvolvimento de software atual.&lt;/p&gt;

</description>
      <category>development</category>
      <category>typescript</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>Uma Jornada na Engenharia de Software: Minha História e Experiência</title>
      <dc:creator>Renato Vicente</dc:creator>
      <pubDate>Wed, 11 Oct 2023 19:50:17 +0000</pubDate>
      <link>https://forem.com/rntvicente/uma-jornada-na-engenharia-de-software-minha-historia-e-experiencia-jbn</link>
      <guid>https://forem.com/rntvicente/uma-jornada-na-engenharia-de-software-minha-historia-e-experiencia-jbn</guid>
      <description>&lt;p&gt;Olá, pessoal! Sejam bem-vindos ao meu espaço dedicado à engenharia de software, onde estaremos explorando juntos os princípios fundamentais, as tendências atuais e os desafios emocionantes deste campo. Meu nome é Renato, e gostaria de compartilhar um pouco da minha história e experiência na engenharia de software com vocês.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Quem Sou Eu?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Eu sou o Renato um apaixonado por tecnologia. Minha paixão pela programação me levou a escolher a engenharia de software como minha carreira. Ao longo dos anos, tive o privilégio de trabalhar em uma variedade de projetos desafiadores, aprender com grandes mentores e ajudar a criar soluções de software que impactaram positivamente empresas e usuários finais.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Minha Carreira até Agora&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Comecei minha jornada um pouco mais tarde do que alguns, aos 25 anos. Isso se deveu ao fato de que, aos 18 anos, fui convocado para o serviço militar. Após completar esse compromisso, não iniciei minha carreira diretamente na área. Na verdade, comecei trabalhando com atendimento ao público, o que me permitiu pagar minha faculdade de &lt;strong&gt;Ciências da Computação&lt;/strong&gt;, na qual me formei em 2008.&lt;/p&gt;

&lt;p&gt;Ao longo dos anos, avancei por diversas posições, desde desenvolvedor júnior até líder de equipe. Durante essa trajetória, aprimorei minhas habilidades técnicas, aprendi a liderar equipes de desenvolvimento e a enfrentar os desafios complexos dos projetos de software.&lt;/p&gt;

&lt;p&gt;Além do meu trabalho profissional, sempre mantive um interesse constante em aprendizado e crescimento. Participei de cursos, conferências e workshops para me manter atualizado com as últimas tendências da área. Também comecei a compartilhar meu conhecimento com a comunidade por meio de artigos e tutoriais online.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;O Que Esperar Neste Espaço?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Neste espaço, pretendo compartilhar minha experiência e conhecimento. Vamos explorar tópicos que vão desde o desenvolvimento de software em si até os princípios de design, práticas ágeis e muito mais. Meu objetivo é tornar a arte de engenharia de software mais acessível para iniciantes e fornecer insights valiosos para profissionais experientes.&lt;/p&gt;

&lt;p&gt;Estou empolgado para embarcar nessa jornada com vocês e estou aberto a sugestões de tópicos e perguntas que possam ter. Juntos, vamos desvendar os segredos e aprofundar nosso entendimento deste mundo incrível.&lt;/p&gt;

&lt;p&gt;Fiquem à vontade para deixar comentários, perguntas ou sugestões. &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>news</category>
      <category>career</category>
    </item>
  </channel>
</rss>
