Executando verificação de segurança...
1

[DÚVIDA] Saindo do País das Maravilhas para o Mundo Real - Deploy App Node

O contexto:

Atualmente, saiu uma pesquisa do CDFTV 2023 - Impossível não conhecer - sobre o universo dos programadores. E no quesito fonte de aprendizagem, cursos onlines são apontados como os principais meios. E advinha? Foi (e é) a minha forma principal de aprendizado! A sua também é/foi?

Alice

Se não quiser ler muito, pule essa parte:

O termo "Salarial" da pesquisa já está altamente "deprecated", pois ela é riquíssima em detalhes, muito além do ponto salarial. Se você esteve em Nárnia, não viu recomendo muitíssimo que dê uma boa olhada.
Outro ponto (ainda da Pesquisa): INFELIZMENTE, o tema "Principais fontes de conhecimento, estudo e atualização" poderia estar mais segregado. Fontes de conhecimento e atualização são ao meu ver pontos diferentes. A impressão que tenho desse ponto é que cursos e video aulas ainda são as fontes principais de conhecimento nesse quesito.

O problema

Estou estudando, com ajuda de um curso online (surprise 🤯), MongoDB com NodeJS e consegui fazer uma aplicação simples - mas que me orgulhei muito, claro, com a típica oscilação dos estudantes de programação entre "eu sou um gênio" e "mds, eu sou muito burro!" -

Eis a questão: após fazer a aplicação rodar perfeitamente no mundo perfeito da minha máquina, como fazer o deploy e disponibilizar para geral? ~e ficar multimilionário (zoa essa última parte)~

Curiosamente, de todos os cursos que eu já vi NENHUM EFETIVAMENTE mostrou como fazer o deploy de uma aplicação pro mundo real.

E eu não to falando de aplicação para escalonar a like NETFLIX, alto consumo de dados e outras paradas, eu tô falando daquele CRUDZÃO B Á S I C O que provavelmente só a sua mãe e a sua tia vão ver mesmo ou só a sua mãe mesmo.

Até onde sei, uma das habilidades mais importantes na programação é aprender a pesquisar, ou seja, aprender a aprender. Mas é aí que começa a toca do coelho.

A toca do coelho

Basicamente, eu tive uma sobrecarga de informação, de todas as formas que você pode imaginar, e o pior: no final não saí do lugar.

Talvez seja esse o grande trunfo que a proposta dos "cursos online" queiram entregar: organização da informação (e outras paradas). Mas isso é um debate para outro dia.

Então queria obter de vocês, aqueles que também começaram por agora, aqueles que já estão nessa jornada a algum tempo:

  • Já aconteceu com vocês algo similar?
    • Procurar sobre um assunto e ter tanta informação e ao mesmo tempo divergência sobre um assunto que não saber como interpretar / organizar o conhecimento sobre algo.
    • E com isso, em alguns casos as coisas se intensificam tanto quando existem alguns pontos de divergência de lado A vs lado B, que se torna quase impossível - ao primeiro momento - chegar a clareza.
  • Se sim, como você lidou / organizou tanta informação?
  • Você já fez um deploy de aplicação node com mongodb? Como? (Tá, essa última foi de desespero mesmo kkkkk, mas se souber "vai que", né?)
Carregando publicação patrocinada...
1
1
1

Sim, já aconteceu comigo e ainda acontece mas com menos frequência.
Primeiro eu sempre tive contato com programação, fui um 'programador' em 2007, fiz alguns pequenos sistemas com PHP e MySQL mas deixei de lado. Agora em 2022 eu retomei os estudos focado nessa área, mais precisamente no início de dezembro de 2022.
Te passei esse histórico pra tu ter um contexto, eu não era um zero, mas não tava longe disso.
Quando comecei obviamente fui pra JS, porque com JS você faz tudo, front back e mobile, mas aí tem um problema sério, o JS tem MUITA FERRAMENTA.
Então eu fui bombardeado e parecia que nada que eu sabia e estava aprendendo era suficiene, Express, Fastify, Nest, React, Vue, Angular... Além disso vários ORMs, Sequelize, Prisma, mongoose, aí de repente você constrói algo e quer Deploy (seu caso agora), Serverless com Lambda, cloudflare workers, Google Functions, aí cloud, EC2, VPS, CI/CD, github actions e vai vai vai, infinitas palavras/termos... Parecia que eu nunca ia alcançar algo, mas tenho algo pra lhe falar e que muitos falam a todo momento, continue que vai dar certo.
Isso é verdade realmente, como a primeira vaga tava difícil decidi ir pra freela, encarei o medo 'de ser um impostor' e mandei primeira proposta, deu certo criei confiança e segui.
Toda essa história é pra falar que meu atual freela é finalmente algo mais 'complexo', integração de um sistema com várias APIs com TypeScript. Eu quase não mandava proposta com medo de não ser capaz, mas mandei e com um objetivo claro do que fazer (não era um curso guiado e nem um projeto pessoal que você fica meio perdido) eu simplesmente estou fazendo sem problemas, estou percebendo o quanto aprendi nesse tempo, o que não percebia antes por estar atolado de informação, depois de quase 4 meses sufocado e parecendo que nunca ia chegar no fim eu dei uma leve pausa pra tentar sobreviver(ganhar dinheiro) e vi que sabia muita coisa.

Então, em resumo o que quero dizer é, realmente é muita coisa, ainda mais em JS que toda hora tem uma coisa nova, ferramenta nova etc, mas existe um limite, tem uma hora que você já aprendeu a fazer uma rota no Express e seu cérebro para de gastar energia com isso e começa a tratar isso com normalidade. Siga em frente que uma hora parece que tudo encaixa.

Pelo menos pra mim o grande problema foi justamente querer se FullStack desde o início e o problema é que o JavaScript praticamente clama por isso.

1

Cara, muito obrigado mesmo pelo seu post. Sei que demorei responder, estava bem corrido nos últimos tempos, mas quando eu li seu post me ajudou muito! Sério.

Percebo que por vezes, é natural do ser humano, depois de evoluir muito, esquecer-se como é se sentir nas etapas iniciais. Mas ver seu comentário me ajudou a ver que ainda vou "chegar lá", mantendo a persistência. Desejo sucesso nos seus projetos cara!

No final, depois de todo esse tempo com a ajuda da galera daqu e pesquisando bastante também, consegui.

Agradeço novamente por sua contribuição!

1

O deploy da app com mongodg pode ser feito no site render.com por exemplo. Existem outros por aí. Já o banco mongodb pode ser "contratado" em outro site especializado. Geralmente a app e o banco de dados ficam em servidores distintos.

O "pulo do gato" nessas apps é o seguiinte: Existe um arquivo .env com a string de conexão do banco de dados. Geralmente o arquivo .env está no gitignore, pois a string de conexão JAMAIS DEVE SER COMITADA pro repositorio. Esse .env é usado SOMENTE no ambiente de desenvolvimento. Nos ambientes de produção, o .env é subsitutido pela configuração de Environment da plataforma.

Por exemplo, no render.com é aqui:

Cada plataforma tem o seu lugar de configurar isso.

Se vc ainda tiver duvidas, só perguntar !!

1

Sempre tive dúvida sobre esse lance de variáveis de ambiente, e pelo nome sempre achei muito complexo, mas movido pelo seu comentário fui pesquisar mais e cara, bem simples até! Não sabia antes como deixar protegido informações mais sensíveis.

Obrigado por compartilhar!

1

A arte de desenvolver é poder criar de diversas formas e maneiras uma solução ou solucionar uma dor.

Assim como em uma roda de família, perguntar como cada um faz seu pão com manteiga, uns na chapa outros com torradeira ou apenas margarina, até palmirinha (no céu) e Ana Maria Braga fariam diferente, mas no fim é um pão com manteiga, seja com node ou next, recheado de Mongo ou mysql.

Os cursos não vão te balizar e sim te mostrar que existem possibilidades e que o poder de decisão está na sua mão, não pare de estudar e ser crítico para usar o melhor de cada ferramenta, linguagem ou framework.

1

Perdi na palmirinha kkkkkk

Realmente, pessoal costuma falar que depois que vc domina uma linguagem e um modo de fazer as coisas, aprender outros modos/linguagens se torna fácil.

Agradeço pelo apoio Alex!