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

Quais critérios devem ser levados em considerção na hora de escolher Stacks para iniciar um projetos ?

Recentemente decidi iniciar um projeto que me desafiasse (tenho pouco tempo de estudo) pois quero algo diferente (cansei de ver aquela quantidade de projetos repetidos e que no fim seria mais um ctrlV + crtlC que não agregaria tanto nos meus estudos) em meu portfólio e vou fazer o esforço necessário para isso, o problema é: Sabendo um pouco de Front-End e nada de Back até o momento, qual a melhor forma de escolher minhas stacks ? estou usando JS e quero criar um bate-papo.

O projeto em questão exige um conhecimento fullstack e por mais que demore ou que eu tropece muito nessa caminhada, no fim, terei um ótimo aprendizado. Tenho participado ativamente aqui no TabNews e leio muito conteúdo de qualidade, por isso tomei lioberdade para pedir dicas que podem me ajudar a progredir. Desde já, muito obrigado. :)

Carregando publicação patrocinada...
1

Ué, se você é front, porque não continua com o que já tem? O Node pode cuidar das duas partes, eu acho(faz bastante tempo que não uso nem o Node nem js). Mas se quer migrar para algo diferente, agregando novo conhecimento/valor/aprendizado, vai de algum framework como Django, que é mais simples de entender.

Escolher uma stack é levar em consideração muita coisa, o tipo de projeto, qual tecnologia se sai melhor nesse projeto, o que a equipe já sabe e o que vão ter que aprender, prazos, custos, etc, etc... Você não precisa nada disso :) Se você está estudando, basta escolher a stack pelo que tem afinidade/facilidade ou foco.

Por exemplo: pra mim, inicialmente eu escolheria Java(depois de C, é o que mais domino), mas como o foco é diferenciar e aprender algo(bastante coisa) no processo, eu iria de Elixir! Elixir é otimo para sistemas distribuidos, roda sobre Erlang, então automaticamente tem grande tolerancia a falhas e foi feita pra isso mesmo (é o ambiente natural da linguagem). Tem outros pontos como sintaxe facil, é funcional, etc etc.

Por exemplo 2: também poderia escolher Golang, tem um bom desempenho, eficiencia e concorrencia, o que seria otimo para um servidor desse tipo(eu acho). Além de ter uma sintaxe facil(ainda acho elixir mais legal e bonita kkk) e a comunidade escreve bastante coisa pra ela. Além do quê é compilada e criar um servidor web é relativamente bem facil.

Mas veja só! Você é um dev Javascript(tudo bem, mesmo assim ainda gostamos de você... brincadeira kkk), sempre pode escrever o backend com o JS! Node e seus modulos/pacotes/sei_lá_oquê estão aí pra ajudar. Note que escolher Stack é mais de você e o objetivo que você quer. Qual seria melhor pra você? Javascript? Elixir ou Go? Sacou?

Bom isso é o que acho, e eu também estou aprendendo kkk então posso ter falado besteira, mas nossos amigos mais experientes podem corrigir esse comentario e nos indicar o mais correto. Boa sorte com seu projeto e tamo junto :D

1

Antes vou tomar a liberdade de responder a pergunta do título de forma genérica, depois vou lhe das algumas sugestões para a sua escolha.

__

Primeiro, é preciso escolher a ferramenta certa para o trabalho. Existem diferentes stacks por diferentes motivos.

O Php se tornou muito popular no início dos anos 2000 devido ao surgimento do stack LAMP, tornando-o a ferramenta certa para escrever código do lado do servidor para aplicativos da Web. Em seguida, surgiu o Ruby on Rails, a nova "melhor ferramenta" para escrever aplicativos da Web, e sua popularidade do Ruby cresceu astronomicamente.

Atualmente praticamente todas as linguagem oferecem variados frameworks, cada um com seu próposito, para criar back-ends. Nestes casos, claramente existe diversas ferramentas certas para o trabalho.

Após elicitar as ferramenta adequadas para seu trabalho, a decisão geralmente se resume à familiaridade da equipe com as stacks, à facilidade de contratar desenvolvedores qualificados e à disponibilidade de bibliotecas, ferramentas e suporte (ecosistema) dessa stack para o domínio do seu problema.

Recentemente, muitos back-ends Web estão sendo escritos em Javascript, simplesmente porque é mais fácil encontrar desenvolvedores de JS em comparação com qualquer outra linguagem.

--

No seu caso, que deseja se desafiar e expandir seus conhecimentos sugeriria, conhecer diferentes stacks, não existe escolha certa. Elicite os requisitos de seu projeto (um deles por exemplo é atualização do cliente com base em eventos externos e as ferramentas certas são WebSockets ou Server-sent events - pesquise quais stacks foram projetados para atender estes requisitos, explore o código de exemplos de diferentes stacks, pesquise por projetos similares ao seu no GitHub e estude implementações feitas com stacks diferentes. Se desafie a começar com uma versão simplificado de seu aplicativo utilziando 3 stacks diferentes, depois escolha a que achar mais adequada para proseguir o projeto.