Tenho transformado postagens internas para o time em postagens mais abertas de forma que possamos ajudar, de alguma forma, aqueles que acompanham o blog.

O Ruby on Rails é um framework baseado em Ruby muito produtivo para web que trabalha no modelo MVC - Model View Controller. É a tecnologia que roda ou já rodou muitas startups mundo afora: Soundcloud, Linkedin, Twitter, Shopify, Github, Airbnb...

Quem me conhece sabe o meu alinhamento-afeição com a empresa 37Signals, seu CEO, o Jason Friend e o CTO, David Heinemeier Hansson (criador do Rails), visionários fora da curva. Para muito além do Basecamp, Highrise, e outros produtos que já estiveram no portfólio da empresa.

Se você é empreendedor/empresário, você precisa cair na real lendo o Get In Real, repensar muitas coisas do seu negócio e mind set lendo Reinvente Sua Empresa, entender que o trabalho remoto é uma realidade, lendo Remote, não pirar, lendo Não Precisa Ser um Trabalho Maluco e, principalmente, ser produtivo e ter entregas lendo Pare de Rodar em Círculos. Essa série de livros by 37Signals, em negrito, é sensacional. O blog, Signal vs Noise você deve acompanhar também.

Voltando ao Rails em Si

O Ruby On Rails é produtivo a ponto de permitir desenvolver um sistema de gestão simples, com umas 6 tabelas e algumas chaves externas em uma bela apresentação visual/usabilidade em pouco mais de 30 minutos.

O Rail é baseado na arquitetura MVC:

  • Model: Aqui estarão as suas regras de negócio;
  • Controller: É quem liga o view ao model;
  • View: É a interface a ser renderisada.

Falando mais sobre o funcionamento do framework e seus recursos.

Scaffold

É uma mão na roda. Aqui você gera um CRUD completo, com model, view e controller. Basta dar um nome, dizer os campos, seus tipos e o framework se encarrega de criar CRUD, os models, views, controllers

Gems

Rails trabalha com Ruby-gems que são uma espécie de aplicativos plugáveis ao framework que garantem dinamismo e produtividade na hora de extender a aplicação. Aqui.

Bundler

O Bundler fornece um ambiente consistente para projetos Ruby, rastreando e instalando as gems e versões exatas necessárias. O Bundler é uma saída do inferno das dependências e garante que as gems necessárias estejam presentes no projeto.

Rake

Rake é um executor de tarefas em Ruby. Backup do seu banco de dados, testes
coleta e geração de relatórios por exemplo. Essas são pequenas tarefas que, sem o Rake, seriam espalhadas por todo o seu projeto em arquivos diferentes.

Comandos Básicos do Zero à Aplicação Simples

Você deve seguir o tutorial da origem, ok? Aqui coloco apenas o resumão para você ver a simplicidade à criação.

Em local, para começar, você pode seguir com SQLite e, posteriormente, você faz o deploy da aplicação com o banco que preferir, Postgres por exemplo.

Primeiro passo: Instalar o Rails (sabendo que você precisa ter o Ruby instalado)

$ gem install rails

Com Rails instalado, você vai gerar sua aplicação inicial. App = nome da sua aplicação

$ rails new app

Agora você pode testar o comando Scaffold para criar uma primeira entidade.

`$ rails g scaffold person name:string bday:date age:numeric

Com esse comando você poderá criar, listar, atualizar ou deletar uma Pessoa no sistema, considerando os campos nome, aniversário e idade.

Agora, com o Scaffold feito, você roda um comando de migração

$ rake db:migrate

Agora é hora de ver a aplicação rodando, basta rodar o servidor.

$ rails s

Vá pro navegador, 127.0.0.1:3000 e teste sua aplicação.

Tá Renzo, mas Por que aprender Ruby on Rails?

"Colé Renzo, esperava ler esse post em 2007, 2008..."

Ainda em 2020, o Ruby continua sendo uma ótima opção de linguagem de desenvolvimento. Não existem linguagens de programação 'ruins' por si só; existem apenas linguagens mal escolhidas para casos de uso específicos. Portanto, se você sente que o Ruby parece ser um ótimo ajuste para você, não hesite, ele ainda está entre as principais tecnologias mais populares.

Quando o RoR entrou em cena em 2005, ele introduziu uma nova abordagem para criar aplicativos da Web. Uma das coisas que o Rails trouxe foi o paradigma de design de software de convenção sobre configuração que facilita o trabalho do desenvolvedor em vários níveis - por exemplo, eliminando a necessidade de escrever código padrão.

"O jeito Rails" liberou o dev das partes chatas do desenvolvimento, liberando-os para se concentrarem nos recursos de negócios e na lógica do aplicativo. Também aumentou a produtividade e ajudou os desenvolvedores a fornecer MVPs e aplicativos de inicialização muito mais rapidamente.

A criação de aplicativos no Rails é rápida e fácil, tornando "O CARA"se você estiver com orçamento e prazos apertados. Você coloca algo no ar rápido e se precisar evoluir não terá grandes dificuldades de encontrar profissionais remotos.

Bons desenvolvedores conseguirão surfar a onda do Rails e usar o tempo economizado para se concentrar nos recursos de negócios e ouvir as demandas dos usuários, colocando features no ar, rapidamente.

Nas mãos da turma mais senior, o Rails não seria uma melhor opção para aplicativos avançados e complexos. Aqui uma ressalva: Se você está modelando, desenhando, planejando um aplicativo complexo/grande, certamente fará uma arquitetura condizente. Essa arquitetura pode até ter Rails no meio, mas não há de se falar em apego no mundo da tecnologia... Escolha a ferramenta que se adeque melhor a cada cenário.

Em suma: Quer começar rápido, entregar valor em uma linguagem de alto nível, em um framework maduro, estável e produtivo com uma comunidade ativa, sabendo que depois de ter começado rápido você poderá seguir e crescer com essa aplicação sem muita preocupação, inclusive quando a aplicação crescer e demandar performance: vá de Rails, sem stress.

Algumas Referências Adicionais Que Possa Interessar