As complicações técnicas de Ruby on Rails que descobri depois de alguns anos trabalhando com a linguagem

Morgana Borges
Brazilians in Tech
Published in
3 min readJan 24, 2023

Você já pegou o trem da linha Ruby on Rails? Se ainda não, se prepara, porque o post de hoje vai te mostrar um pouco das características do plano de vista de alguém que o pega por alguns anos.

Texto escrito por Morgana Borges

Fonte: Disponibilizada pela autora

Minha formação como desenvolvedora foi com Ruby on Rails e desde então toda a minha carreira tem sido construída com essa linguagem. Eu sou apaixonada por ela, quero dizer… era, porque agora eu simplesmente amo. Assim como quando estamos apaixonados e mais tendenciosos a ver as qualidades (as convenções, as mágicas do RoR, as maravilhosas gems, etc…), a medida que vamos conhecendo mais o outro, toda aquela idealização vai se dissipando e as complicações começam a aparecer.

Tanto tempo com a linguagem me fizeram ver o que não funciona muito bem em Ruby on Rails, mas que assim como num relacionamento, eu tolero, faço concessões, tento ajustar e sigo amando.

Aqui estão algumas dessas complicações técnicas de Ruby on Rails, que fui percebendo ao longo do meu trabalho com a linguagem:

  1. Convenção sobre configuração: a convenção sobre configuração é uma benção mas também uma maldição. Embora ela simplifique o desenvolvimento inicial, essa abordagem pode aumentar rapidamente a complexidade da aplicação. Em aplicações de alto tráfego, por exemplo, seguir a convenção a risca, pode impactar principalmente na performance. Quando trabalhei em um projeto que tinha requisitos específicos de performance, ter seguido as convenções acabou atrapalhando um pouco. Por exemplo, algumas convenções padrão, como o uso de callbacks e validações, podem adicionar sobrecarga desnecessária ao processamento da aplicação, diminuindo a performance. Outra questão é que as convenções podem mudar com as novas versões do Rails e seguir as convenções antigas pode afetar negativamente a performance.
  2. Gems: são uma das vantagens do desenvolvimento em Ruby on Rails, porque possuem uma grande variedade de funcionalidades já prontas e testadas para utilizarmos na aplicação. Porém, o uso excessivo de gems pode levar a problemas de complexidade e manutenção. Cada gem aumenta ainda mais a dependência da aplicação afetando no desempenho e na escalabilidade. Quem nunca encontrou uma gem descontinuada ou desatualizada? Isso também pode levar a problemas de segurança e compatibilidade.
  3. Abstração: costumamos dizer que Ruby on Rails faz mágica e isso se deve ao seu poder de abstração. Abstração é a capacidade de esconder detalhes complexos de uma implementação atrás de uma interface simples, ou seja, a linguagem faz muita coisa ‘por baixo dos panos’. Ruby on Rails usa uma série de camadas de abstração, como o ActiveRecord que seria basicamente uma interface para gerenciar o banco de dados. Com isso surge o problema de overhead de processamento, porque o código precisa ser interpretado e executado por todas essas camadas antes de chegar ao nível do sistema. O tempo e recursos adicionais necessários pra passar por essas camadas até executar uma tarefa, pode afetar negativamente o desempenho e a escalabilidade da aplicação. Também pode tornar mais difícil identificar e corrigir problemas de desempenho, já que a causa pode ser atribuída a uma camada de abstração ou ao gerenciamento de recursos adicionais.

Essas particularidades tornam Ruby on Rails o que ela é e, embora elas tragam muitas vantagens, também podem impactar negativamente a aplicação. É importante lembrar que toda linguagem de programação tem suas próprias desvantagens. Ao entender esses problemas potenciais , você pode usar Ruby on Rails para criar aplicações incríveis e atuar diretamente nesses problemas técnicos.

Para saber mais sobre mim acesse:

LinkedIn: https://www.linkedin.com/in/morganatborges/

Instagram: @morganaborges_

Migrei para a área de tecnologia durante a pandemia em busca de liberdade geográfica e uma profissão ‘lifelong learning’. Hoje sou nômade digital e desenvolvedora Ruby on Rails. Antes disso, fui barista e fazer uma xícara de café me motiva a encarar ‘aquele’ código.

--

--