Rails e Next.js: a combinação perfeita para o desenvolvimento web moderno
O Next.js, dentre outros ótimos frameworks Javascript, vem evoluindo muito durante os últimos meses. Assim como qualquer outro bom framework, a comunidade ou até empresas privadas, possuem um papel fundamental nessa evolução.
Como desenvolvedor full-stack utilizando Ruby on Rails durante mais de 10 anos, tenho me mantido atualizado e fico sempre com olhar atento nas tecnologias Javascript que sempre aparecem no mercado. Na minha posição, a grama do Javascript sempre me pareceu mais verde que a do Ruby. Acho que mais por razão do marketing do que pela eficiência. Mas quando resolvia mudar de quintal, eu começavam a me deparar com alguns buracos e pedras que de longe não eram visíveis. Sem contar que eu sempre sentia saudades da minha cadeira bonita e confortável que sempre me esperava do outro lado.
O principal motivo que me levou a achar a grama do Javascript mais verde, era a parte de componentização existente em frameworks como o React e Vue. Existe até uma ótima biblioteca em Ruby com essa mesma estrutura desenvolvida para se integrar com o Ruby on Rails, a qual você pode encontrar em https://viewcomponent.org/. Durante o uso do View Component eu só consiga me ver tentando encontrar uma forma das coisas funcionarem como funcionavam no React. Mas no final, nunca eu conseguia chegar em algo tão bom como um componente desenvolvido utilizando React.
Pra quem ainda não pode usufruir de tudo o que o React tem a oferecer e ainda não teve oportunidade de experienciar como é utilizar componentização com React, eu indico dar uma olhada nessa fantástica biblioteca de componentes https://www.radix-ui.com/. Vale muito dar uma olhada nos exemplos de uso e até no código fonte do projeto para ver como criar componentes muito bem estruturados.
Ao meu entender, a comunidade React pôde contar com vários membros especialista que tinham o mesmo objetivo de chegar onde chegaram. Enquanto os desenvolvedores Ruby deram seu melhor pra tentar acompanhar, mas não puderam contar com todo o aparato do qual a comunidade Javascript teve acesso.
Depois de alguns anos indo e vindo de um lado para o outro, resolvi que era hora de remover a cerca e usufruir dos dois quintais ao mesmo tempo.
Entendi que há muitas letras no MVC (Model, View and Controller) do Ruby on Rails e que não faria mal trocar o V por R e fazer o meu Model, React and Controller.
Então foi isso. Sentado da minha cadeira bonita, agora eu consigo ver os meus dois quintais como um só e posso andar livremente entre eles. Ainda há buracos e pedras em ambos os lados, mas agora eu consigo tirar um pouco de terra de um lado pra tampar o buraco do outro.
Outros posts da série:
- https://medium.com/@raphox/rails-e-next-js-a-combina%C3%A7%C3%A3o-perfeita-para-o-desenvolvimento-web-moderno-parte-2-5681e962adee
- https://medium.com/@raphox/rails-e-next-js-a-combina%C3%A7%C3%A3o-perfeita-para-o-desenvolvimento-web-moderno-parte-final-43003e6f0feb
NextRails
Por fim, gostaria de compartilhar e lhe convidar para participar do desenvolvimento dessa nova gem chamada NextRails.
Se você, assim como eu, acha que o Rails é muito bom para ser trocado e que a adoção de um framework para frontend, como o React, é obrigatória. Venha fazer parte do projeto e me ajudar a mostrar que a união do Rails e React pode ser algo simples e organizado.
Lembrando que a gem usa a estrutura de rotas de páginas e a geração estática do Next.js. Dessa forma, você só precisa de um servidor web para servir as rotas da API do Rails e o HTML/JS do Next.js.
Sempre fui apenas um especulador do ruby. Como sei programar já em outra linguagem se tornou simples entender como funciona o ruby e a forma de criar as estrutras de dados.
Passei então ao rails. Curti muito, mas nunca passei do Getting Started pois a questão de vagas sempre me pareceu muito menor que demais tecnologias. Inclusive pelo momento de carreira que me encontro, ja consolidado com JS me fez ter receio um pouco de investir pesado e fazer uma transição. Ruby virou um hobby pra eu treinar algoritmo e pensar um pouco fora da caixa do JS.
Na sua opinião vale a pena utilizar o rails como api e no front um vite/next ? Seria assim hoje que o mercado de rails está construindo novos projetos ?
Gostei muito da proposta. Vou dar uma estrela agora no GitHub. E claro, gostaria de contribuir para o projeto. Vou dar uma olhada e se não se importar vou abrir alguma issue se houverem dúvidas ou sujestões.