O que é e por que usar Ruby on Rails

Ruby on Rails Jul 06, 2021

Você sabia que o framework Rails é utilizado por quase um milhão de sites, incluindo Airbnb e GitHub? Neste texto, vamos apresentar a linguagem Ruby e o framework Rails, as vantagens da utilização de Ruby on Rails, as melhorias proporcionadas para a área de desenvolvimento e a motivação para seu uso nos projetos aqui na Caiena!

Navegue pelo conteúdo:

Escrever muito código não é criar “muito” software

Algumas pessoas desenvolvedoras têm orgulho da quantidade de linhas utilizadas para criar um software. Isso acontece por alguns motivos, mas o mais comum é a crença de que em uma estrutura descritiva, cada atributo, método ou recurso precisa ser declarado repetidamente, de forma manual, para torná-lo auto explicativo para pessoas que ingressam no projeto. Mas o resultado acaba sendo justamente o contrário. Mais código significa mais coisas para ler e para entender, consequentemente o desenvolvimento se torna confuso, demorado, e assim, os bugs começam a aparecer. Uma alternativa a esse modelo seria um desenvolvimento orientado à convenção.

Podemos utilizar um conceito conhecido como Convenção sobre Configuração para tornar o processo de desenvolvimento menos massante e mais eficiente. Esse conceito busca diminuir o número de decisões a serem tomadas durante o processo de desenvolvimento, padronizando pontos triviais. A ideia é que, ao implementar a convenção, o desenvolvedor gaste menos esforço criando e mantendo arquivos de configuração. Apenas no caso do comportamento desejado ser diferente da convenção é que se torna necessário sobrescrever o comportamento padrão. Essa é uma das bases da concepção do Ruby on Rails (RoR).

Um exemplo disso é o funcionamento do ActiveRecord: ao invés de ter uma tabela people e uma classe person, com um getter e um setter para cada campo na tabela, temos apenas a declaração dos atributos no banco de dados, via Migration. Os atributos e métodos necessários são inseridos dinamicamente na classe através de métodos internos, utilizando metaprogramação. Apesar de parecer complicado no início, é algo transparente para o desenvolvedor e acontece de forma natural. Veja o exemplo a seguir:

Exemplo de Migration, responsável pela criação da tabela no banco de dados, no Rails
Exemplo de classe de model no Rails

Não existe Rails sem Ruby, mas há Ruby sem Rails

Quando David Hansson criou o Rails, a escolha do Ruby não foi por acaso. Uma linguagem expressiva, multiparadigma, totalmente orientada a objetos, com tipagem forte, amplamente extensível e de propósito geral é o ambiente perfeito para a criação de um framework como o Rails.

Muitas pessoas costumam confundir os dois, pensando em Rails ao ouvir Ruby, mas raramente o contrário. Isso acontece pelo fato de que a maioria dos desenvolvedores Ruby usa o framework Ruby on Rails para desenvolvimento, e o Ruby só ganhou impulso como linguagem de programação após o lançamento do Ruby on Rails.

Existem outros frameworks baseados em Ruby, mas sua popularidade e o número de colaboradores ativos não se comparam ao Rails. Isso não quer dizer que outros frameworks sejam de qualidade inferior. Muito pelo contrário, eles existem para casos de uso muito específicos e frequentemente superam o Rails nesse nicho. Por conta da facilidade de inicialização, de desenvolvimento e a infinidade de recursos, o Rails acaba sendo a escolha favorita de desenvolvedores Ruby.

Seu sucesso se deve, em grande parte, às características presentes no próprio Ruby. Utilizando-se dos recursos nativos da própria linguagem, foi possível amplificar seu poder através do framework. Uma vez que o Ruby permite a sobrescrita de qualquer classe existente, foi possível agregar novos recursos a classes padrões, como Array, Data, e até mesmo String através da gem ActiveSupport.

Através da metaprogramação – que é a capacidade de um programa criar um código-fonte de forma dinâmica – é possível declarar atributos e métodos de busca de forma automática, sem a escrita de um único método. Essa característica permitiu ao Rails aplicar de forma singular o conceito de Convenção sobre Configuração.

Um framework de vários frameworks

O Rails é considerado por muitos um meta-framework, por ser um framework modularizado composto por vários outros frameworks especialistas. Sendo eles:

  • ActiveRecord - Object Relational Mapping (ORM);
  • ActiveSupport - Extensões úteis (Data, String, Hash, Array e etc);
  • ActionPack - Controller e Views;
  • ActionMailer - Envio de e-mail;
  • ActiveStorage - Upload e armazenamento de arquivos;
  • ActiveJob - Processamento em background (Workers).

Uma característica muito interessante é a possibilidade de desativar módulos que não serão utilizados no projeto, tornando o software mais otimizado e flexível. É possível ainda a agregação de novas alternativas, como a substituição do ActiveRecord pelo MongoID em projetos que façam uso do banco de dados não relacional MongoDB.

Foco em produtividade

A ideia principal por trás do Ruby on Rails é tornar o processo de desenvolvimento mais fácil e dinâmico.

Uma das inovações que o Rails trouxe foi o paradigma de design convenção sobre configuração que facilita o trabalho do desenvolvimento em diversos níveis – por exemplo, eliminando a necessidade de escrever um código clichê repetitivo.

Junto com o Django, o framework da Web mais popular para Python também lançado em 2005, o Rails propagou o uso do padrão MVC (Model View Controller) e boas práticas de desenvolvimento, como o princípio Don’t Repeat Yourself (DRY). De forma resumida, esse princípio refuta a duplicação desnecessária de trechos de código-fonte. Afinal, quanto mais código existe, em mais lugares um bug pode se esconder.

Graças à sua estrutura inovadora para a época, o Rails libertou os desenvolvedores das partes tediosas da codificação, permitindo assim que eles se concentrem na lógica da aplicação e nas regras de negócio a serem implementadas. Consequentemente, tal ação colaborou para o aumento da produtividade, ajudando programadores a entregar MVPs (Minimum Viable Product) e aplicações com muito mais rapidez.

Existem frameworks que se inspiraram na estrutura e filosofia introduzidas pelo Rails, como é o caso do Laravel.

Leia também: Quando contratar uma consultoria de projetos

Por que a Caiena utiliza?

Ruby é uma das principais linguagens de programação utilizadas pela Caiena há cerca de oito anos, juntamente do framework Ruby on Rails. Essa escolha levou em conta diversos fatores, além das características que já comentamos.

Embora a popularidade do Rails possa ter diminuído ao longo dos anos, o framework ainda é usado por quase um milhão de sites, incluindo uma série de grandes cases, como Airbnb, Shopify, GitHub, Dribbble e Hulu. Por ser utilizado por diversas empresas, de inúmeros segmentos e tamanhos, no Brasil e no mundo, esse framework web se destaca como capaz de oferecer suporte a aplicativos de tráfego intenso e como alternativa para projetos de variados tipos e tamanhos.

Além disso, a curva de aprendizagem é baixa comparado a outras tecnologias similares.

Leia também: Por que utilizamos Ruby on Rails na Caiena?

Na Caiena, as pessoas estão no centro do processo de desenvolvimento. Então, utilizando a sintaxe expressiva do Ruby on Rails, o desenvolvimento torna-se mais prazeroso e por consequência nossa equipe fica mais feliz. Além disso, tanto o framework quanto seu ecossistema possuem diversas ferramentas e convenções bem definidas. Questões de segurança, autenticação e autorização possuem alternativas consolidadas. Assim, é possível que o projeto comece focado no que realmente importa: a entrega de valor.

Um ponto muito importante é a comunidade altamente engajada. Mesmo que PHP e Python sejam ​​mais usados do que Ruby, dois de seus frameworks web mais populares, Laravel e Django, respectivamente, têm menos contribuidores do que o Rails. Um número maior de contribuidores significa que as bibliotecas (gems) são de excelente qualidade e, como diz o ditado, "existe uma gem para praticamente tudo no Rails".

O Rails é frequentemente elogiado pelo esforço de sua comunidade em criar componentes reutilizáveis ​​que encapsulam soluções para problemas comuns a vários desenvolvedores. Além disso, uma comunidade maior significa que bugs e erros comuns do desenvolvimento podem ser facilmente localizados em fóruns como o StackOverflow ou os repositórios oficiais do GitHub, o que facilita o desenvolvimento de forma considerável.

Esses pontos pesaram na decisão de tornar o Ruby on Rails uma de nossas principais ferramentas de desenvolvimento – decisão que se mostra cada vez mais apropriada!

Em nossa experiência, nenhuma ferramenta se compara à experiência de uso, qualidade técnica e produtividade do Rails. Além disso, no processo de entrega contínua, o projeto pode ir ganhando complexidade com o passar do tempo. O Rails permite que esse aumento de complexidade não se traduza na redução da qualidade técnica. Além disso, possibilita o oferecimento de respostas rápidas às diversas mudanças naturais que surgem no decorrer dos projetos.

Oportunidades no mercado

Se o Rails estivesse "morto", as equipes de talent acquisition não estariam procurando incessantemente por desenvolvedores Ruby on Rails.

Em uma breve pesquisa através dos anúncios de emprego do LinkedIn, apenas no Brasil, para Rails e Ruby existem atualmente cerca de 1.500 vagas em aberto. Isso mostra que o mercado está aquecido e faltam profissionais qualificados. Essa é uma excelente oportunidade para você se destacar e conseguir ingressar no mercado!

Graças a adoção do trabalho remoto, é possível ter acesso a ótimas oportunidades de trabalho mesmo não morando no local de origem da vaga. Inclusive, nós da Caiena estamos contratando profissionais para compor nosso time de desenvolvimento. Se você tiver interesse, basta clicar aqui e se candidatar a uma das vagas disponíveis.

Também criamos nossa própria formação em Ruby on Rails para contribuir com o aumento de mulheres trabalhando com a linguagem e o framework, a Ruby Empowers! Para saber mais clique aqui.

Daniel Moreira

Especialista em Ruby com mais de 9 anos de experiência, aprendeu Rails durante um estágio. Atualmente é Líder de Desenvolvimento na Caiena. Nas horas vagas gosta de compartilhar seu conhecimento.

LinkedIn icon Instagram icon Facebook icon Twitter icon
Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
manage cookies